1
0
Fork 0
PR2-SS24-Heimaufgabe1/4Gewinnt/src/VierGewinnt.java

101 lines
2.2 KiB
Java
Raw Normal View History

2023-11-09 11:32:48 +01:00
import java.util.Scanner;
2023-11-08 21:44:25 +01:00
public class VierGewinnt {
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);
boolean weiter = false;
2023-11-09 11:32:48 +01:00
char spieler = 'o';
2023-11-09 10:24:46 +01:00
do {
char[][] spielfeld = spielfeldInitialisieren();
2023-11-09 10:24:46 +01:00
spielfeldAusgeben(spielfeld);
2023-11-09 10:24:46 +01:00
// Gewinner Loop
boolean gewonnen = true;
2023-11-09 10:24:46 +01:00
do {
// wer ist dran?
2023-11-09 11:57:11 +01:00
// Spielstein einwerfen
do {
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
int spalte = kb.nextInt();
2023-11-09 10:24:46 +01:00
2023-11-09 11:57:11 +01:00
if (!einwurfVerarbeiten(spielfeld, spalte, spieler))
System.err.println("Ungültige Auswahl!");
else
break;
} while(true);
2023-11-09 11:04:35 +01:00
spielfeldAusgeben(spielfeld);
2023-11-09 10:24:46 +01:00
// Gewinnerprüfung
} while(!gewonnen);
2023-11-09 10:24:46 +01:00
// Gewinnerausgabe (auch unentschieden)
} while (weiter);
System.out.println("Auf Wiedersehen!");
} // main
2023-11-09 11:32:48 +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:57:11 +01:00
public static boolean einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
spalte--; // Da die Eingabe von 1 bis 7 war.
if (spalte < 0 || spalte > 6)
return false;
2023-11-09 11:32:48 +01:00
for (int z = 0; z < spielfeld.length; z++) {
2023-11-09 11:57:11 +01:00
if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll?
return false;
2023-11-09 11:32:48 +01:00
if (spielfeld[z][spalte] != '_' || z == spielfeld.length-1) {
spielfeld[z][spalte] = stein;
2023-11-09 11:57:11 +01:00
return true;
2023-11-09 11:32:48 +01:00
}
}
2023-11-09 11:57:11 +01:00
return false;
2023-11-09 11:32:48 +01:00
}
2023-11-08 21:44:25 +01:00
}