TicTacToe
parent
8df2afc8cc
commit
e8a38a501e
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,148 @@
|
||||||
|
package Übungen.TicTac;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class TicTacToe {
|
||||||
|
static String[][] spielField = new String[3][3];
|
||||||
|
static String zufälligeZuges = "X";
|
||||||
|
static String menschlichenZuges = "O";
|
||||||
|
|
||||||
|
public static void Spielfelde() {
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
for (int j = 0; j < 3; j++)
|
||||||
|
spielField[i][j] = " ";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SpielfeldeAusgeben() {
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
for (int j = 0; j < 3; j++)
|
||||||
|
System.out.print("[" + spielField[i][j] + "]");
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void zufälligKreuz() {
|
||||||
|
Random rand = new Random();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
int x = rand.nextInt(3);
|
||||||
|
int y = rand.nextInt(3);
|
||||||
|
if (spielField[x][y].equals(" ")) {
|
||||||
|
spielField[x][y] = zufälligeZuges;
|
||||||
|
break;
|
||||||
|
} else
|
||||||
|
continue;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void menschlichenZuges(int x, int y) {
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (spielField[x][y].equals(" ")) {
|
||||||
|
spielField[x][y] = menschlichenZuges;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
System.out.println("Falsche Eingabe, Versuche bitte nochmal!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean checkGewinner() {
|
||||||
|
// Zeilen überprüfen
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
if ((spielField[i][0].equals(zufälligeZuges) && spielField[i][1].equals(zufälligeZuges)
|
||||||
|
&& spielField[i][2].equals(zufälligeZuges))
|
||||||
|
|| (spielField[i][0].equals(menschlichenZuges) && spielField[i][1].equals(menschlichenZuges)
|
||||||
|
&& spielField[i][2].equals(menschlichenZuges))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spalten überprüfen
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
if ((spielField[0][i].equals(zufälligeZuges) && spielField[1][i].equals(zufälligeZuges)
|
||||||
|
&& spielField[2][i].equals(zufälligeZuges))
|
||||||
|
|| (spielField[0][i].equals(menschlichenZuges) && spielField[1][i].equals(menschlichenZuges)
|
||||||
|
&& spielField[2][i].equals(menschlichenZuges))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Diagonalen überprüfen
|
||||||
|
if ((spielField[0][0].equals(zufälligeZuges) && spielField[1][1].equals(zufälligeZuges)
|
||||||
|
&& spielField[2][2].equals(zufälligeZuges))
|
||||||
|
|| (spielField[0][0].equals(menschlichenZuges) && spielField[1][1].equals(menschlichenZuges)
|
||||||
|
&& spielField[2][2].equals(menschlichenZuges))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if ((spielField[0][2].equals(zufälligeZuges) && spielField[1][1].equals(zufälligeZuges)
|
||||||
|
&& spielField[2][0].equals(zufälligeZuges))
|
||||||
|
|| (spielField[0][2].equals(menschlichenZuges) && spielField[1][1].equals(menschlichenZuges)
|
||||||
|
&& spielField[2][0].equals(menschlichenZuges))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean istSpielfeldVoll() {
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
for (int j = 0; j < 3; j++) {
|
||||||
|
if (spielField[i][j].equals(" ")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner scan = new Scanner(System.in);
|
||||||
|
System.out.println("<< Willkommen in Tic Tac Toe >> ");
|
||||||
|
Spielfelde();
|
||||||
|
SpielfeldeAusgeben();
|
||||||
|
|
||||||
|
boolean aktiv = true;
|
||||||
|
while (aktiv) {
|
||||||
|
System.out.println("Gib bitte Position x und Position y ein: ");
|
||||||
|
int x = scan.nextInt();
|
||||||
|
int y = scan.nextInt();
|
||||||
|
menschlichenZuges(x, y);
|
||||||
|
SpielfeldeAusgeben();
|
||||||
|
|
||||||
|
if (checkGewinner()) {
|
||||||
|
System.out.println("Spieler O hat gewonnen!");
|
||||||
|
aktiv = false;
|
||||||
|
} else if (istSpielfeldVoll()) {
|
||||||
|
System.out.println("Unentschieden!");
|
||||||
|
aktiv = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aktiv) {
|
||||||
|
System.out.println("Ein Kreuz wird zufällig gesetzt");
|
||||||
|
zufälligKreuz();
|
||||||
|
SpielfeldeAusgeben();
|
||||||
|
|
||||||
|
if (checkGewinner()) {
|
||||||
|
System.out.println("Spieler X hat gewonnen!");
|
||||||
|
aktiv = false;
|
||||||
|
} else if (istSpielfeldVoll()) {
|
||||||
|
System.out.println("Unentschieden!");
|
||||||
|
aktiv = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scan.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue