Hallo,
ich habe hier eine Aufgabe, bei der ich Hilfe beim richtigen Ansatz bräuchte.
Es geht um ein einfaches Tic Tac Toe Spiel, das Spielfeld ist mit den Zahlen von 0 bis 8 durchnummeriert:
0 1 2
3 4 5
6 7 8
Spieler 1 und 2 machen abwechselnd ein Kreuz oder einen Kreis und man geht davon aus, dass so lange gespielt wird, bis das Spielfeld voll ist (also auch weiterspielen, wenn ein Spieler schon gewonnen hat). Die Eingabe soll über Kommandozeilenparameter erfolgen.
Die einzige Ausgabe, die das Programm haben soll, ist, ob Spieler 1 oder Spieler 2 gewinnt, oder ob unentschieden ist.
Nun dachte ich, ich implementiere das wie folgt:
3 Klassen, einmal für das Spielfeld, einmal für die jeweilige Zelle, und einmal Main.
Das Spielfeld soll ein 2D-Array sein, bspw
int x;
int y;
int Board[][] = new int[x][y]
Alle Spielzellen werden nacheinander für Spieler 1 und Spieler 2 durchgegangen, also bspw.
if(player1 == 2){
Board[0][2] = X;
}
if(player1 == 3){
Board[1][0] = X;
}
Jetzt wüsste ich hier nur nicht, wie ich das einstellen kann, dass beide immer abwechselnd spielen. Und es soll auch nicht funktionieren, dass ein Feld zweimal besetzt werden kann. (das hätte ich mit einem boolean gemacht, der schaut, ob die Zelle leer ist oder nicht).
Könnte man das auch einfacher/schneller/übersichtlicher mit switch cases machen?
Oder mit Schleifen?
Jemand in meinem Kurs benutzt auch nur einen eindimensionalen Array, der einfach von 0 bis 8 durchnummeriert ist und da ja nur geschaut wird, wer gewinnt, könnte ich mir auch vorstellen, dass das möglich ist. Es werden sowohl objektorientiertheit als auch Übersichtlichkeit sowie Verständlichkeit und Ausführbarkeit bewertet.
Ich danke schonmal für eure Hilfe!
ich habe hier eine Aufgabe, bei der ich Hilfe beim richtigen Ansatz bräuchte.
Es geht um ein einfaches Tic Tac Toe Spiel, das Spielfeld ist mit den Zahlen von 0 bis 8 durchnummeriert:
0 1 2
3 4 5
6 7 8
Spieler 1 und 2 machen abwechselnd ein Kreuz oder einen Kreis und man geht davon aus, dass so lange gespielt wird, bis das Spielfeld voll ist (also auch weiterspielen, wenn ein Spieler schon gewonnen hat). Die Eingabe soll über Kommandozeilenparameter erfolgen.
Die einzige Ausgabe, die das Programm haben soll, ist, ob Spieler 1 oder Spieler 2 gewinnt, oder ob unentschieden ist.
Nun dachte ich, ich implementiere das wie folgt:
3 Klassen, einmal für das Spielfeld, einmal für die jeweilige Zelle, und einmal Main.
Das Spielfeld soll ein 2D-Array sein, bspw
int x;
int y;
int Board[][] = new int[x][y]
Alle Spielzellen werden nacheinander für Spieler 1 und Spieler 2 durchgegangen, also bspw.
if(player1 == 2){
Board[0][2] = X;
}
if(player1 == 3){
Board[1][0] = X;
}
Jetzt wüsste ich hier nur nicht, wie ich das einstellen kann, dass beide immer abwechselnd spielen. Und es soll auch nicht funktionieren, dass ein Feld zweimal besetzt werden kann. (das hätte ich mit einem boolean gemacht, der schaut, ob die Zelle leer ist oder nicht).
Könnte man das auch einfacher/schneller/übersichtlicher mit switch cases machen?
Oder mit Schleifen?
Jemand in meinem Kurs benutzt auch nur einen eindimensionalen Array, der einfach von 0 bis 8 durchnummeriert ist und da ja nur geschaut wird, wer gewinnt, könnte ich mir auch vorstellen, dass das möglich ist. Es werden sowohl objektorientiertheit als auch Übersichtlichkeit sowie Verständlichkeit und Ausführbarkeit bewertet.
Ich danke schonmal für eure Hilfe!