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