Hallo,
ich programmiere gerade TicTacToe und mir fählt nicht ein wie ich es programmieren soll so das ein feld nich neu besetzbar isst wenn es schon ein spieler ausgewählt hat.
normalerweise schreibe ich meinen Code viel schöner.
Und ich schreibe nicht jede möglichkeit normalerweise
hier der code:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
char[][] spielfeld = {{'*', '1', '2', '3', 'x' },{'1', '-', '-', '-'}, {'2', '-', '-', '-'}, {'3', '-', '-', '-'}, {'y'}};
System.out.println("Start Feld: \n");
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
int win = 1;
while (win < 2) {
System.out.println("Spieler X ist dran!");
System.out.println("Gib mit den zahlen die du oben siehst das Feld an was du besetzten möchtest! \n");
System.out.println("Gib die Zahl auf der y Reihe an!");
String zug_1_XStringx = "n/a";
String zug_1_XStringy = "n/a";
int stop = 1;
while (stop < 2) {
Scanner zug_1_Xx = new Scanner(System.in);
zug_1_XStringx = zug_1_Xx.next();
switch(zug_1_XStringx) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
System.out.println("Gib jetzt die zahl auf der x Reihe an!");
stop = 1;
while (stop < 2) {
Scanner zug_1_Xy = new Scanner(System.in);
zug_1_XStringy = zug_1_Xy.next();
switch(zug_1_XStringy) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
int zug_1_Xintx = Integer.parseInt(zug_1_XStringx);
int zug_1_Xinty = Integer.parseInt(zug_1_XStringy);
spielfeld[zug_1_Xintx][zug_1_Xinty] = 'X';
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
// Gewinner abfrage X
if (spielfeld[1][1] == 'X') {
if (spielfeld[1][2] == 'X') {
if (spielfeld[1][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[2][1] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[2][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[3][1] == 'X') {
if (spielfeld[3][2] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'X') {
if (spielfeld[2][1] == 'X') {
if (spielfeld[3][1] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][2] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][2] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'X') {
if (spielfeld[2][3] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][1] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
System.out.println("Der Spieler O ist dran");
System.out.println("Gib mit den zahlen die du oben siehst das Feld an was du besetzten möchtest! \n");
System.out.println("Gib die Zahl auf der y Reihe an!");
String zug_1_OStringx = "n/a";
String zug_1_OStringy = "n/a";
stop = 1;
while (stop < 2) {
Scanner zug_1_Ox = new Scanner(System.in);
zug_1_OStringx = zug_1_Ox.next();
switch(zug_1_OStringx) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
System.out.println("Gib jetzt die zahl auf der x Reihe an!");
stop = 1;
while (stop < 2) {
Scanner zug_1_Oy = new Scanner(System.in);
zug_1_OStringy = zug_1_Oy.next();
switch(zug_1_XStringy) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
int zug_1_Ointx = Integer.parseInt(zug_1_OStringx);
int zug_1_Ointy = Integer.parseInt(zug_1_OStringy);
spielfeld[zug_1_Ointx][zug_1_Ointy] = 'O';
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
//Gewinner abfrage O
if (spielfeld[1][1] == 'O') {
if (spielfeld[1][2] == 'O') {
if (spielfeld[1][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[2][1] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[2][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[3][1] == 'O') {
if (spielfeld[3][2] == 'O') {
if (spielfeld[3][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'O') {
if (spielfeld[2][1] == 'O') {
if (spielfeld[3][1] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][2] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][2] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'O') {
if (spielfeld[2][3] == 'O') {
if (spielfeld[3][3] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][1] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
}
}
}
ich programmiere gerade TicTacToe und mir fählt nicht ein wie ich es programmieren soll so das ein feld nich neu besetzbar isst wenn es schon ein spieler ausgewählt hat.
normalerweise schreibe ich meinen Code viel schöner.
Und ich schreibe nicht jede möglichkeit normalerweise
hier der code:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
char[][] spielfeld = {{'*', '1', '2', '3', 'x' },{'1', '-', '-', '-'}, {'2', '-', '-', '-'}, {'3', '-', '-', '-'}, {'y'}};
System.out.println("Start Feld: \n");
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
int win = 1;
while (win < 2) {
System.out.println("Spieler X ist dran!");
System.out.println("Gib mit den zahlen die du oben siehst das Feld an was du besetzten möchtest! \n");
System.out.println("Gib die Zahl auf der y Reihe an!");
String zug_1_XStringx = "n/a";
String zug_1_XStringy = "n/a";
int stop = 1;
while (stop < 2) {
Scanner zug_1_Xx = new Scanner(System.in);
zug_1_XStringx = zug_1_Xx.next();
switch(zug_1_XStringx) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
System.out.println("Gib jetzt die zahl auf der x Reihe an!");
stop = 1;
while (stop < 2) {
Scanner zug_1_Xy = new Scanner(System.in);
zug_1_XStringy = zug_1_Xy.next();
switch(zug_1_XStringy) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
int zug_1_Xintx = Integer.parseInt(zug_1_XStringx);
int zug_1_Xinty = Integer.parseInt(zug_1_XStringy);
spielfeld[zug_1_Xintx][zug_1_Xinty] = 'X';
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
// Gewinner abfrage X
if (spielfeld[1][1] == 'X') {
if (spielfeld[1][2] == 'X') {
if (spielfeld[1][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[2][1] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[2][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[3][1] == 'X') {
if (spielfeld[3][2] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'X') {
if (spielfeld[2][1] == 'X') {
if (spielfeld[3][1] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][2] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][2] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'X') {
if (spielfeld[2][3] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][3] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'X') {
if (spielfeld[2][2] == 'X') {
if (spielfeld[3][1] == 'X') {
System.out.println("X hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
System.out.println("Der Spieler O ist dran");
System.out.println("Gib mit den zahlen die du oben siehst das Feld an was du besetzten möchtest! \n");
System.out.println("Gib die Zahl auf der y Reihe an!");
String zug_1_OStringx = "n/a";
String zug_1_OStringy = "n/a";
stop = 1;
while (stop < 2) {
Scanner zug_1_Ox = new Scanner(System.in);
zug_1_OStringx = zug_1_Ox.next();
switch(zug_1_OStringx) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
System.out.println("Gib jetzt die zahl auf der x Reihe an!");
stop = 1;
while (stop < 2) {
Scanner zug_1_Oy = new Scanner(System.in);
zug_1_OStringy = zug_1_Oy.next();
switch(zug_1_XStringy) {
case "1":
stop = 3;
break;
case "2":
stop = 3;
break;
case "3":
stop = 3;
break;
default:
System.out.println("Das ist keine Zahl von 1 - 3!");
System.out.println("Tippe die zahl nochmal ein");
stop = 1;
break;
}
}
int zug_1_Ointx = Integer.parseInt(zug_1_OStringx);
int zug_1_Ointy = Integer.parseInt(zug_1_OStringy);
spielfeld[zug_1_Ointx][zug_1_Ointy] = 'O';
for (int i = 0; i < spielfeld.length; i++) {
for (int j = 0; j < spielfeld.length; j++) {
System.out.print(spielfeld[j] + " ");
}
System.out.println("\n");
}
//Gewinner abfrage O
if (spielfeld[1][1] == 'O') {
if (spielfeld[1][2] == 'O') {
if (spielfeld[1][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[2][1] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[2][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[3][1] == 'O') {
if (spielfeld[3][2] == 'O') {
if (spielfeld[3][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'O') {
if (spielfeld[2][1] == 'O') {
if (spielfeld[3][1] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][2] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][2] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'O') {
if (spielfeld[2][3] == 'O') {
if (spielfeld[3][3] == 'O'){
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][1] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][3] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
if (spielfeld[1][3] == 'O') {
if (spielfeld[2][2] == 'O') {
if (spielfeld[3][1] == 'O') {
System.out.println("O hat Gewonnen");
win = 3;
System.exit(0);
}
}
}
}
}
}