Hi ich bin gerade dabei TicTacToe in Java zu programmieren. Der Code ist noch nicht ansatzweise fertig funktioniert allerdings jetzt schon nicht. Ich sitze nun seit mehreren Stunden dran und versuche den Fehler zu finden. Ich denke er ist offensichtlich ich weiß nur nicht wo. Also hier das Problem: Man soll eine Zahl eingeben können und daraufhin soll einem das aktuelle Feld angezeigt werden. Was allerdings passiert ist das nach dem ersten eingeben einer Zahl neunmal das Feld angezeigt wird und das Spiel somit beendet ist. Hier der Aktuelle Code. (Nicht alle print Anweisungen müssen beachtet werden manche waren nur zum testen)
Vielen Dank schon mal für alle Antworten.
Java:
package tiktactoe;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Tictactoe {
public static void main(String[] args) {
// TODO Auto-generated method stub
String field = "_|_|_\n_|_|_\n | | ";
String[][] changefield = {{"_|", "_|", "_"}, {"_|", "_|", "_"}, {" |", " |", " "}};
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println(field);
String input = null;
int number = 0;
int count = 0;
while (!(count > 9)) {
while (number <= 0 && !(number > 9)) {
try{
number = Integer.parseInt(input);
System.out.println(number);
}
catch(Exception e) {
System.out.println("Enter a number between 1 and 9!!");
try {
input = reader.readLine();
System.out.println("Number enterd");
} catch (IOException f) {
System.out.print("No number enterd");;
}
}
}
if (number == 1&& !(changefield[0][0].equals("O"))) {
changefield[0][0] = "X";
}
else if (number == 2&& !(changefield[0][1].equals("O"))) {
changefield[0][1] = "X";
}
else if (number == 3&& !(changefield[0][2].equals("O"))) {
changefield[0][2] = "X";
}
else if (number == 4&& !(changefield[1][0].equals("O"))) {
changefield[1][0] = "X";
}
else if (number == 5&& !(changefield[1][1].equals("O"))) {
changefield[1][1] = "X";
}
else if (number == 6&& !(changefield[1][2].equals("O"))) {
changefield[1][2] = "X";
}
else if (number == 7&& !(changefield[2][0].equals("O"))) {
changefield[2][0] = "X";
}
else if (number == 8&& !(changefield[2][1].equals("O"))) {
changefield[2][1] = "X";
}
else if (number == 9&& !(changefield[2][2].equals("O"))) {
changefield[2][2] = "X";
}
System.out.println(String.join("", changefield[0]) + "\n" + String.join("", changefield[1]) + "\n" + String.join("", changefield[2]));
count++;
number = 0;
}
System.out.println("Process finished");
}
}
Vielen Dank schon mal für alle Antworten.