2023-11-09 11:32:48 +01:00
|
|
|
import java.util.Scanner;
|
|
|
|
|
2023-11-08 21:44:25 +01:00
|
|
|
public class VierGewinnt {
|
2023-11-09 10:57:16 +01:00
|
|
|
|
|
|
|
public static void main(String[] args) {
|
2023-11-08 21:44:25 +01:00
|
|
|
System.out.println("Willkommen zu 4 Gewinnt!");
|
2023-11-09 10:24:46 +01:00
|
|
|
|
|
|
|
// Game Loop
|
2023-11-09 11:32:48 +01:00
|
|
|
Scanner kb = new Scanner(System.in);
|
2023-11-09 10:57:16 +01:00
|
|
|
boolean weiter = false;
|
2023-11-09 11:32:48 +01:00
|
|
|
char spieler = 'o';
|
2023-11-09 10:24:46 +01:00
|
|
|
do {
|
2023-11-09 10:57:16 +01:00
|
|
|
char[][] spielfeld = spielfeldInitialisieren();
|
2023-11-09 10:24:46 +01:00
|
|
|
|
2023-11-09 10:57:16 +01:00
|
|
|
spielfeldAusgeben(spielfeld);
|
2023-11-09 10:24:46 +01:00
|
|
|
|
|
|
|
// Gewinner Loop
|
2023-11-09 10:57:16 +01:00
|
|
|
boolean gewonnen = true;
|
2023-11-09 10:24:46 +01:00
|
|
|
do {
|
|
|
|
// wer ist dran?
|
|
|
|
|
|
|
|
// Spielstein einwerfen -> Auswahl welche Spalte
|
2023-11-09 11:32:48 +01:00
|
|
|
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
|
|
|
|
int spalte = kb.nextInt();
|
|
|
|
|
|
|
|
einwurfVerarbeiten(spielfeld, spalte, spieler);
|
2023-11-09 10:24:46 +01:00
|
|
|
|
2023-11-09 11:04:35 +01:00
|
|
|
spielfeldAusgeben(spielfeld);
|
2023-11-09 10:24:46 +01:00
|
|
|
|
|
|
|
// Gewinnerprüfung
|
|
|
|
|
2023-11-09 10:57:16 +01:00
|
|
|
} while(!gewonnen);
|
2023-11-09 10:24:46 +01:00
|
|
|
|
|
|
|
// Gewinnerausgabe (auch unentschieden)
|
|
|
|
|
2023-11-09 10:57:16 +01:00
|
|
|
} while (weiter);
|
|
|
|
|
|
|
|
System.out.println("Auf Wiedersehen!");
|
|
|
|
} // main
|
2023-11-09 11:32:48 +01:00
|
|
|
|
2023-11-09 10:57:16 +01:00
|
|
|
public static char[][] spielfeldInitialisieren() {
|
|
|
|
char[][] spielfeld = new char[6][7];
|
|
|
|
|
|
|
|
for (int z = 0; z < spielfeld.length; z++) {
|
|
|
|
for (int s = 0; s < spielfeld[z].length; s++) {
|
|
|
|
spielfeld[z][s] = '_';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return spielfeld;
|
2023-11-08 21:44:25 +01:00
|
|
|
}
|
2023-11-09 11:04:35 +01:00
|
|
|
|
|
|
|
public static void spielfeldAusgeben(char[][] spielfeld) {
|
|
|
|
System.out.println();
|
|
|
|
|
|
|
|
// Alle Zeilen ausgeben
|
|
|
|
for (int z = 0; z < spielfeld.length; z++) {
|
|
|
|
|
|
|
|
// Alle Spalten der z-ten Zeile ausgeben
|
|
|
|
for (int s = 0; s < spielfeld[z].length; s++) {
|
|
|
|
System.out.print("| " + spielfeld[z][s] + " " );
|
|
|
|
}
|
|
|
|
System.out.println("|");
|
|
|
|
}
|
|
|
|
|
|
|
|
System.out.println();
|
|
|
|
|
|
|
|
for (int s = 0; s < spielfeld[0].length; s++) {
|
|
|
|
System.out.print("| " + (s+1) + " " );
|
|
|
|
}
|
|
|
|
|
|
|
|
System.out.println("|");
|
|
|
|
System.out.println();
|
|
|
|
}
|
2023-11-08 21:44:25 +01:00
|
|
|
|
2023-11-09 11:32:48 +01:00
|
|
|
public static void einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
|
|
|
// Was machen wir, wenn die Spalte schon voll ist?
|
|
|
|
|
|
|
|
spalte--; // Da die Eingabe von 1 bis 7 war.
|
|
|
|
|
|
|
|
for (int z = 0; z < spielfeld.length; z++) {
|
|
|
|
if (spielfeld[z][spalte] != '_' || z == spielfeld.length-1) {
|
|
|
|
spielfeld[z][spalte] = stein;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-11-08 21:44:25 +01:00
|
|
|
}
|