Liebe Community
Ich habe vorhin euer Forum gefunden und mich sehr gefreut Ich hoffe, dass mir vielleicht jemand von euch weiterhelfen kann, da ich gerade anscheinend ein Brett vor dem Kopf habe und mir die Aufgabe nicht vorstellen kann.
Hier mein aktueller Code:
Hier die letzte Aufgabenstellung (siehe Zeile 67 im Code):
-> >Von der Logik her muss ich bei dem 2D Array folgendes implementieren:
spielfeld [get zeile position][get spalte position] = get Symbol;
Bei der Umsetzung dieser Lösung happert es aber irgendwie gerade und zerbreche mir wirklich enorm den Kopf .....
Für eine Rückmeldung und mögliche Erklärung wäre ich euch sehr dankbar.
LG
Alex
Ich habe vorhin euer Forum gefunden und mich sehr gefreut Ich hoffe, dass mir vielleicht jemand von euch weiterhelfen kann, da ich gerade anscheinend ein Brett vor dem Kopf habe und mir die Aufgabe nicht vorstellen kann.
Hier mein aktueller Code:
Java:
import java.util.Scanner;
public class TicTacToe {
static char [][] spielfeld = new char[3][3];
public static void main(String[] args) {
Scanner ks = new Scanner(System.in);
System.out.println("Let's Play Tic Tac Toe");
init();
printSpielfeld();
boolean spielerX = true;
for (int spielzug = 0; spielzug<9;spielzug++) {
if (spielzug%2==0) {
System.out.print("SpielerIn "+getSymbol(spielerX)+": ");
int position = ks.nextInt();
System.out.println("Zeile: "+getZeile(position)+", Spalte: "+getSpalte(position));
speichere(position, spielerX);
printSpielfeld();
}
else {
System.out.print("SpielerIn "+getSymbol(!spielerX)+": ");
int position = ks.nextInt();
System.out.println("Zeile: "+getZeile(position)+", Spalte: "+getSpalte(position));
speichere(position, spielerX);
printSpielfeld();
}
char Zeile0 = (char) ((spielfeld[0][0])+(spielfeld[0][1])+(spielfeld[0][2]));
char Zeile1 = (char) ((spielfeld[1][0])+(spielfeld[1][1])+(spielfeld[1][2]));
char Zeile2 = (char) ((spielfeld[2][0])+(spielfeld[2][1])+(spielfeld[2][2]));
char Spalte0 = (char) ((spielfeld[0][0])+(spielfeld[1][0])+(spielfeld[2][0]));
char Spalte1 = (char) ((spielfeld[0][1])+(spielfeld[0][1])+(spielfeld[0][1]));
char Spalte2 = (char) ((spielfeld[0][2])+(spielfeld[1][2])+(spielfeld[2][2]));
char Diagonaleuntenlinksobenrechts = (char) ((spielfeld[2][0])+(spielfeld[1][1])+(spielfeld[0][2]));
char Diagonaleobenlinksuntenrechts = (char) ((spielfeld[0][0])+(spielfeld[1][1])+(spielfeld[2][2]));
if (Zeile0 == 'X'+'X'+'X'|| Zeile1 == 'X'+'X'+'X' || Zeile2 == 'X'+'X'+'X' || Spalte0 == 'X'+'X'+'X' || Spalte1 == 'X'+'X'+'X'|| Spalte2 == 'X'+'X'+'X'|| Diagonaleuntenlinksobenrechts == 'X'+'X'+'X' || Diagonaleobenlinksuntenrechts == 'X'+'X'+'X') {
System.out.println("SpielerX gewinnt!");}
else if (Zeile0 == 'O'+'O'+'O'|| Zeile1 == 'O'+'O'+'O' || Zeile2 == 'O'+'O'+'O' || Spalte0 == 'O'+'O'+'O' || Spalte1 == 'O'+'O'+'O'|| Spalte2 == 'O'+'O'+'O'|| Diagonaleuntenlinksobenrechts == 'O'+'O'+'O'|| Diagonaleobenlinksuntenrechts == 'O'+'O'+'O') {
System.out.println("SpielerO gewinnt!");}
else if (spielzug == 8){
System.out.println("Untentschieden!");
}
}
ks.close();
}
static void init() {
for (int a = 0; a<3; a++) {
for (int b = 0; b<3; b++) {
spielfeld[a][b] = '.';
}
}
}
static void speichere(int position, boolean spielerX) {
//Hier müsste noch eine Speicherfunktion gem. letzter Aufgabenstellung implementiert werden. Kann ich mir jedoch leider sehr schlecht vorstellen wie das klappen sollte. Evtl. könnt ihr mir kurz Schritt für Schritt erklären wie ich das gem. Aufgabe lösen kann.
}
static int getZeile(int position) {
if (position == 1) {
return 0;}
else if (position == 2) {
return 0;}
else if (position == 3) {
return 0;}
else if (position == 4) {
return 1;}
else if (position == 5) {
return 1;}
else if (position == 6) {
return 1;}
else if (position == 7) {
return 2;}
else if (position == 8) {
return 2;}
else if (position == 9) {
return 2;}
return position;
}
static int getSpalte(int position) {
if (position == 1) {
return 0;}
else if (position == 2) {
return 1;}
else if (position == 3) {
return 2;}
else if (position == 4) {
return 0;}
else if (position == 5) {
return 1;}
else if (position == 6) {
return 2;}
else if (position == 7) {
return 0;}
else if (position == 8) {
return 1;}
else if (position == 9) {
return 2;}
return position;
}
static char getSymbol(boolean spielerX) {
if (spielerX) {
return 'X';}
else {
return 'O';}
}
static void printSpielfeld() {
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
System.out.print(spielfeld[i][j]+" ");
}
System.out.println("");}
}
}
Hier die letzte Aufgabenstellung (siehe Zeile 67 im Code):
-> >Von der Logik her muss ich bei dem 2D Array folgendes implementieren:
spielfeld [get zeile position][get spalte position] = get Symbol;
Bei der Umsetzung dieser Lösung happert es aber irgendwie gerade und zerbreche mir wirklich enorm den Kopf .....
Für eine Rückmeldung und mögliche Erklärung wäre ich euch sehr dankbar.
LG
Alex