Hello,
ich glaub ich seh vor lauter Bäumen den Wald nicht.
Soll als Aufgabe ein Tic Tac Toe spiel machen, nun hab ich 2. Fehler
- Er wechselt nicht den Spieler
- Wenn eine Reihe voll ist gibt der den sieger nicht aus
Das Programm ist noch nicht fertig, aber wollte schonmal die einfachen Sachen testen.
Was übersehe ich? Mehere Augen sehen mehr als 2...
Der Sieger wird mit
Ermittelt und gehört zum while in main()
Der spieler soll eigentlich gewechselt werden, nach dem while in dasSpiel()
das
führt er ja aus, nach dem while... un übergibt X an die Position die man gewählt hat.
ich glaub ich seh vor lauter Bäumen den Wald nicht.
Soll als Aufgabe ein Tic Tac Toe spiel machen, nun hab ich 2. Fehler
- Er wechselt nicht den Spieler
- Wenn eine Reihe voll ist gibt der den sieger nicht aus
Code:
import java.io.*;
class TicTacToe
{
char[][] spielfeld;
public TicTacToe() {
spielfeld = new char [3][3];
spielfeld[0][0]=' ';
spielfeld[0][1]=' ';
spielfeld[0][2]=' ';
spielfeld[1][0]=' ';
spielfeld[1][1]=' ';
spielfeld[1][2]=' ';
spielfeld[2][0]=' ';
spielfeld[2][1]=' ';
spielfeld[2][2]=' ';
}
public static void main(String args[]) {
char sieger;
char Spieler;
TicTacToe spiel = new TicTacToe();
System.out.println("Willkommen bei Tic Tac Toe");
spiel.zeigeSpielfeld();
do {
spiel.dasSpiel();
spiel.zeigeSpielfeld();
}
while (spiel.Sieger() == ' ');
}
public void zeigeSpielfeld() {
System.out.println(spielfeld[0][0]+"|"+spielfeld[0][1]+"|"+spielfeld[0][2]);
System.out.println("-----");
System.out.println(spielfeld[1][0]+"|"+spielfeld[1][1]+"|"+spielfeld[1][2]);
System.out.println("-----");
System.out.println(spielfeld[2][0]+"|"+spielfeld[2][1]+"|"+spielfeld[2][2]);
System.out.println("");
}
public char Sieger() {
char sieger = ' ';
for (int i = 0; i < 3; i++)
{
if ((spielfeld[0][i] == spielfeld[1][i]) && (spielfeld[1][i] == spielfeld[2][i]))
{
sieger = spielfeld[0][i];
}
}
for (int j = 0; j < 3; j++)
{
if ((spielfeld[j][0] == spielfeld[j][1]) && (spielfeld[j][1] == spielfeld[j][2]))
{
sieger = spielfeld[j][0];
}
}
return sieger;
}
public void dasSpiel() {
int reihe;
int spalte;
int EingabeCheck = 1;
char Spieler = 'x';
String Eingabe;
int Umwandlung;
do {
System.out.println("Bitte geben sie ein Feld ein mit Zahl,Zahl.. z.B 0,2");
System.out.println("0,2 ist z.B oben Rechts, 0,1 ist oben in der Mitte und 0,0 oben Links");
System.out.println("Spieler "+Spieler+" ist am Zug");
Eingabe = getLine();
reihe = Integer.parseInt(Eingabe.substring(0,1));
spalte = Integer.parseInt(Eingabe.substring(2,3));
if (( reihe < 0 || reihe > 2 ) && ( spalte < 0 || spalte > 2 )) {
EingabeCheck = 0;
System.out.println("ungültige Eingabe, versuch es erneut");
}
if (spielfeld[reihe][spalte]!=' ' ) {
EingabeCheck = 0;
System.out.println("Spielfeld ist schon belegt");
}
}
while (EingabeCheck == 0);
spielfeld[reihe][spalte] = Spieler;
if (Spieler == 'x')
Spieler = 'o';
else
Spieler = 'x';
}
/** ******************************************
* Diese Hilfsmethode liest eine Zeile von der Konsole ein
* @return eingelesene Zeile (mit Return am Schluss!) als String
* Aufruf z.B.: String s; s = getLine(); // in s steht die Eingabe
*
************************************************/
static String getLine() {
String line ="";
try{ BufferedReader Tast = new BufferedReader(new
InputStreamReader(System.in));
line = Tast.readLine();
} catch(Exception e) { }
return line;
}
}
Das Programm ist noch nicht fertig, aber wollte schonmal die einfachen Sachen testen.
Was übersehe ich? Mehere Augen sehen mehr als 2...

Der Sieger wird mit
Code:
public char Sieger() {
char sieger = ' ';
for (int i = 0; i < 3; i++)
{
if ((spielfeld[0][i] == spielfeld[1][i]) && (spielfeld[1][i] == spielfeld[2][i]))
{
sieger = spielfeld[0][i];
}
}
for (int j = 0; j < 3; j++)
{
if ((spielfeld[j][0] == spielfeld[j][1]) && (spielfeld[j][1] == spielfeld[j][2]))
{
sieger = spielfeld[j][0];
}
}
return sieger;
}
Ermittelt und gehört zum while in main()
Der spieler soll eigentlich gewechselt werden, nach dem while in dasSpiel()
Code:
if (Spieler == 'x')
Spieler = 'o';
else
Spieler = 'x';
das
Code:
spielfeld[reihe][spalte] = Spieler;
führt er ja aus, nach dem while... un übergibt X an die Position die man gewählt hat.
Zuletzt bearbeitet: