Hallo,
Ich bin im moment dabei ein TikTakToe zu programmieren und hänge seit Stunden an einem Fehler
Vielleich kann sich mal jemand den code angucken und mir helfen:
Beim nächsten Print wird das X nicht gesetzt.
Warum??
Ich bin im moment dabei ein TikTakToe zu programmieren und hänge seit Stunden an einem Fehler
Vielleich kann sich mal jemand den code angucken und mir helfen:
Java:
import java.util.Scanner;
public class TikTakToe {
public static int PlayerY;
public static int PlayerX;
public static String PlayerK;
public static String stein;
public static String stein2;
public static String PlayerSel;
public static int steinzahl = 0;
public static String win="";
public static Boolean winquest = false;
public static String[][] spielfeld={
{".",".","."},
{".",".","."},
{".",".","."}
};
public static void main(String[] args){
System.out.println("\n"+
"████████ ██ ██ ██ ████████ █████ ██ ██ ████████ ██████ ███████ "+"\n"+
" ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ "+"\n"+
" ██ ██ █████ ██ ███████ █████ ██ ██ ██ █████ "+"\n"+
" ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ "+"\n"+
" ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██████ ███████ "+"\n");
Scanner myObj = new Scanner(System.in);
System.out.println("1: O" + "\n" + "2: X " + "\n" + "Bitte waehle dein Zeichen: ");
String PlayerSel = myObj.nextLine();
if (PlayerSel.equals("1") ) {
stein = "O";
stein2 = "X";
} else {
stein = "X";
stein2 = "O";
}
System.out.println("============================");
System.out.println("Spieler 1: " + stein + "\n" + "Spieler 2: " + stein2 + "\n" + "============================");
System.out.println("So sieht das Spielfeld aus:");
String[][] spielfeldshow={
{"7","8","9"},
{"4","5","6"},
{"1","2","3"}
};
for (int y=0;y<spielfeldshow.length ;y++ ) {
for (int x=0;x<spielfeldshow[y].length ;x++ ) {
System.out.print(spielfeldshow[y][x]);
}
System.out.print("\n");
}
System.out.println("============================");
do {
if (stein == "X") {
System.out.println("| X ist dran");
} else if (stein == "O") {
System.out.println("| O ist dran");
}
Scanner MyObj = new Scanner(System.in);
System.out.println("Bitte geben Sie eine Koordinate (1 - 9) ein: ");
String PlayerK = MyObj.nextLine();
//Matrix
if (PlayerK.equals("7")) {
PlayerK = spielfeld[0][0];
}
if (PlayerK.equals("8")) {
PlayerK = spielfeld[0][1];
}
if (PlayerK.equals("9")) {
PlayerK = spielfeld[0][2];
}
if (PlayerK.equals("4")) {
PlayerK = spielfeld[1][0];
}
if (PlayerK.equals("5")) {
PlayerK = spielfeld[1][1];
}
if (PlayerK.equals("6")) {
PlayerK = spielfeld[1][2];
}
if (PlayerK.equals("1")) {
PlayerK = spielfeld[2][0];
}
if (PlayerK.equals("2")) {
PlayerK = spielfeld[2][1];
}
if (PlayerK.equals("3")) {
PlayerK = spielfeld[2][2];
}
if (PlayerK == ".") {
PlayerK = stein;
if (PlayerK == "X") {
steinzahl++;
stein = "O";
} else if (PlayerK == "O") {
steinzahl++;
stein = "X";
}
} else {
System.out.println("Bitte waehle eine andere Position.");
if (stein == "X") {
stein = "X";
} else if (stein == "O") {
stein = "O";
}
}
//Spielfeld printen
for (int y=0;y<spielfeld.length ;y++ ) {
for (int x=0;x<spielfeld[y].length ;x++ ) {
System.out.print(spielfeld[y][x]);
}
System.out.print("\n");
}
//wincases
for (int r=0; r<8 ;r++ ) {
switch (r) {
case 1 :
win = spielfeld[0][0] + spielfeld[1][0] + spielfeld[2][0];
break;
case 2 :
win = spielfeld[0][1] + spielfeld[1][1] + spielfeld[2][1];
break;
case 3:
win = spielfeld[0][2] + spielfeld[1][2] + spielfeld[2][2];
break;
case 4:
win = spielfeld[0][0] + spielfeld[0][1] + spielfeld[0][2];
break;
case 5:
win = spielfeld[1][0] + spielfeld[1][1] + spielfeld[1][2];
break;
case 6:
win = spielfeld[2][0] + spielfeld[2][1] + spielfeld[2][2];
break;
case 7:
win = spielfeld[0][0] + spielfeld[1][1] + spielfeld[2][2];
break;
case 8:
win = spielfeld[2][0] + spielfeld[1][1] + spielfeld[0][2];
break;
default:
}
if (win.equals("XXX")) {
System.out.println("X hat gewonnen!");
winquest = true;
}
if (win.equals("OOO")) {
System.out.println("O hat gewonnen");
winquest = true;
}
if (r == 9){
System.out.println("Gleichstand!");
winquest = true;
}
}
if (winquest == true) {
System.out.println("Danke fürs Spielen :)");
System.out.println("Von Amy und Noah.");
break;
}
} while (steinzahl < 9);
}
}
Beim nächsten Print wird das X nicht gesetzt.
Warum??