Code weiter aufgeräumt (engl. Refactoring).
parent
336965b91e
commit
1453ff4717
|
@ -1,41 +1,28 @@
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class VierGewinnt {
|
public class VierGewinnt {
|
||||||
|
static Scanner kb = new Scanner(System.in); // sog. Klassenvariable
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("Willkommen zu 4 Gewinnt!");
|
System.out.println("Willkommen zu 4 Gewinnt!");
|
||||||
|
|
||||||
// Game Loop
|
// Game Loop
|
||||||
Scanner kb = new Scanner(System.in);
|
|
||||||
|
|
||||||
boolean weiter = false;
|
boolean weiter = false;
|
||||||
char spieler = 'x';
|
char spieler = 'x';
|
||||||
do {
|
do {
|
||||||
char[][] spielfeld = spielfeldInitialisieren();
|
char[][] spielfeld = spielfeldInitialisieren();
|
||||||
int steineZähler = 0;
|
|
||||||
|
|
||||||
spielfeldAusgeben(spielfeld);
|
spielfeldAusgeben(spielfeld);
|
||||||
|
int steineZähler = 0;
|
||||||
|
|
||||||
// Gewinner Loop
|
// Gewinner Loop
|
||||||
boolean gewonnen = false;
|
boolean gewonnen = false;
|
||||||
do {
|
do {
|
||||||
spieler = spielerWechseln(spieler);
|
spieler = spielerWechseln(spieler);
|
||||||
|
|
||||||
// Spielstein einwerfen
|
int[] koordinate = spielsteinEinwerfen(spielfeld, spieler);
|
||||||
int spalte, zeile;
|
gewonnen = gewinnerPrüfung(spielfeld, koordinate[0], koordinate[1]);
|
||||||
do {
|
|
||||||
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
|
|
||||||
spalte = kb.nextInt() - 1; // da Spalte eins verschoben
|
|
||||||
|
|
||||||
if ((zeile = einwurfVerarbeiten(spielfeld, spalte, spieler)) == -1)
|
|
||||||
System.err.println("Ungültige Auswahl!");
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
} while(true);
|
|
||||||
|
|
||||||
spielfeldAusgeben(spielfeld);
|
spielfeldAusgeben(spielfeld);
|
||||||
|
|
||||||
gewonnen = gewinnerPrüfung(spielfeld, zeile, spalte);
|
|
||||||
} while(!gewonnen && ++steineZähler < 42);
|
} while(!gewonnen && ++steineZähler < 42);
|
||||||
|
|
||||||
if (!gewonnen && steineZähler == 42) {
|
if (!gewonnen && steineZähler == 42) {
|
||||||
|
@ -49,13 +36,6 @@ public class VierGewinnt {
|
||||||
System.out.println("Auf Wiedersehen!");
|
System.out.println("Auf Wiedersehen!");
|
||||||
} // main
|
} // main
|
||||||
|
|
||||||
public static char spielerWechseln(char spieler) {
|
|
||||||
if (spieler == 'o')
|
|
||||||
return 'x';
|
|
||||||
|
|
||||||
return 'o';
|
|
||||||
}
|
|
||||||
|
|
||||||
public static char[][] spielfeldInitialisieren() {
|
public static char[][] spielfeldInitialisieren() {
|
||||||
char[][] spielfeld = new char[6][7];
|
char[][] spielfeld = new char[6][7];
|
||||||
|
|
||||||
|
@ -67,7 +47,7 @@ public class VierGewinnt {
|
||||||
|
|
||||||
return spielfeld;
|
return spielfeld;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void spielfeldAusgeben(char[][] spielfeld) {
|
public static void spielfeldAusgeben(char[][] spielfeld) {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
|
@ -91,6 +71,29 @@ public class VierGewinnt {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static char spielerWechseln(char spieler) {
|
||||||
|
if (spieler == 'o')
|
||||||
|
return 'x';
|
||||||
|
|
||||||
|
return 'o';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] spielsteinEinwerfen(char[][] spielfeld, char spieler) {
|
||||||
|
int zeile, spalte;
|
||||||
|
|
||||||
|
do {
|
||||||
|
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
|
||||||
|
spalte = kb.nextInt() - 1; // da Spalte eins verschoben
|
||||||
|
|
||||||
|
if ((zeile = einwurfVerarbeiten(spielfeld, spalte, spieler)) == -1)
|
||||||
|
System.err.println("Ungültige Auswahl!");
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
} while(true);
|
||||||
|
|
||||||
|
return new int[] {zeile, spalte};
|
||||||
|
}
|
||||||
|
|
||||||
public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
||||||
if (spalte < 0 || spalte > 6)
|
if (spalte < 0 || spalte > 6)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -152,4 +155,5 @@ public class VierGewinnt {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
} // eof
|
Loading…
Reference in New Issue