271 lines
7.0 KiB
Java
271 lines
7.0 KiB
Java
package ui;
|
|
|
|
import java.util.Scanner;
|
|
|
|
import facade.Spielsystem;
|
|
|
|
|
|
public class UI {
|
|
private Spielsystem spielsystem;
|
|
Scanner sc = new Scanner(System.in);
|
|
|
|
public UI(Spielsystem spielsystem) {
|
|
this.spielsystem = spielsystem;
|
|
hauptmenü();
|
|
}
|
|
|
|
private void hauptmenü() {
|
|
System.out.println("Willkommen beim Spiel des Jahres: " + spielsystem.getSpielname() + "!");
|
|
|
|
mainloop:
|
|
while (true) {
|
|
System.out.println();
|
|
System.out.println("--------");
|
|
System.out.println("Hauptmenü:");
|
|
System.out.println("1 -> Neues Spiel starten");
|
|
System.out.println("2 -> Regeln anzeigen");
|
|
System.out.println("8 -> Credits anzeigen");
|
|
|
|
System.out.println("9 -> Beenden");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
|
|
int input = 0;
|
|
try {
|
|
input = Integer.parseInt(sc.nextLine());
|
|
System.out.println();
|
|
} catch (NumberFormatException nfe) {
|
|
System.out.println("\nLeider haben Sie keine Zahl eingegeben. Bitte geben Sie eine Zahl ein:");
|
|
}
|
|
|
|
try {
|
|
switch(input) {
|
|
case 1: gameloop(); break;
|
|
//case 2: spielstandLaden(); break;
|
|
case 2: regelnAnzeigen(); break;
|
|
//case 7: highscoreAnzeigen(); break;
|
|
case 8: creditsAnzeigen(); break;
|
|
case 9: break mainloop;
|
|
}
|
|
} catch (Exception e) {
|
|
System.err.println(e.getLocalizedMessage());
|
|
}
|
|
}
|
|
System.out.println("Auf Wiedersehen!");
|
|
}
|
|
|
|
|
|
// hauptmenü
|
|
// case 1:
|
|
private void gameloop() {
|
|
gameloop:
|
|
while(true) {
|
|
System.out.println();
|
|
System.out.println("--------");
|
|
System.out.println("Spielmenü:");
|
|
System.out.println("1 -> Player vs. Player");
|
|
System.out.println("2 -> Player vs. KI");
|
|
|
|
System.out.println("9 -> Zurück");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
int input = 0;
|
|
|
|
try {
|
|
input = Integer.parseInt(sc.nextLine());
|
|
System.out.println();
|
|
} catch(NumberFormatException nfe){
|
|
System.out.println("\nLeider haben Sie keine Zahl eingegeben. Bitte geben Sie eine Zahl ein:");
|
|
}
|
|
|
|
try {
|
|
switch(input) {
|
|
case 1: pVP(); break;
|
|
case 2: pVE(); break;
|
|
case 9: break gameloop;
|
|
}
|
|
} catch(Exception e) {
|
|
System.err.println(e.getLocalizedMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
// case 2:
|
|
private void regelnAnzeigen() {
|
|
|
|
}
|
|
|
|
// case 8:
|
|
private void creditsAnzeigen() {
|
|
|
|
}
|
|
|
|
|
|
// gameloop
|
|
// case 1:
|
|
private void pVP() {
|
|
boolean werBeginnt = werBeginnt();
|
|
|
|
|
|
}
|
|
|
|
// case 2:
|
|
private void pVE() {
|
|
System.out.println("Wollen Sie als Spieler die Füchse oder Hennen spielen?");
|
|
System.out.println("1 -> Füchse spielen");
|
|
System.out.println("2 -> Hennen spielen");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
int spielerwahl = Integer.parseInt(sc.nextLine());
|
|
System.out.println();
|
|
|
|
boolean werBeginnt = werBeginnt();
|
|
|
|
System.out.println("Auf welchen Schwierigkeitsgrad wollen Sie spielen?");
|
|
System.out.println("0 -> easy");
|
|
System.out.println("1 -> medium");
|
|
System.out.println("2 -> hard");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
int kiLevel = Integer.parseInt(sc.nextLine());
|
|
System.out.println();
|
|
|
|
start(werBeginnt, spielerwahl, kiLevel);
|
|
}
|
|
|
|
|
|
private void start(boolean werBeginnt, int spielerwahl, int kiLevel) {
|
|
boolean zugFuchs = false;
|
|
boolean zugHenne = false;
|
|
boolean erfolgreicherZug;
|
|
String zug;
|
|
|
|
if (werBeginnt == true) {
|
|
zugHenne = true;
|
|
} else {
|
|
zugFuchs = true;
|
|
}
|
|
|
|
spielsystem.kiGenerieren(spielerwahl, kiLevel);
|
|
|
|
System.out.println("Das Spiel wurde gestartet!");
|
|
if (kiLevel == 0) {
|
|
System.out.println("Sie haben den Schwierigkeitsgrad -easy- ausgewählt");
|
|
} else if (kiLevel == 1) {
|
|
System.out.println("Sie haben den Schwierigkeitsgrad -medium- ausgewählt");
|
|
} else if (kiLevel == 2) {
|
|
System.out.println("Sie haben den Schwierigkeitsgrad -hard- ausgewählt");
|
|
}
|
|
|
|
System.out.println();
|
|
System.out.println("Das Startspielbrett sieht wie folgt aus:");
|
|
System.out.println();
|
|
spielsystem.printBoard();
|
|
|
|
do {
|
|
// Zug Henne KI
|
|
if (zugHenne == true && spielerwahl == 1) {
|
|
System.out.println("Die Hennen sind am Zug:");
|
|
System.out.println("Die KI macht Ihren Zug");
|
|
System.out.println();
|
|
zug = spielsystem.getBot().zugBestimmen();
|
|
//System.out.println(zug);
|
|
//Kontrolle des Zuges sollte im Bot gemacht werden
|
|
//erfolgreicherZug = spielsystem.getHenne().isValidMove(zug);
|
|
|
|
spielsystem.getHenne().moveSpielfigur(zug);
|
|
zugHenne = false;
|
|
zugFuchs = true;
|
|
}
|
|
|
|
// Zug Henne Spieler
|
|
else if (zugHenne == true && spielerwahl == 2) {
|
|
System.out.println("Die Hennen sind am Zug:");
|
|
System.out.println("Spieler Sie sind dran");
|
|
do {
|
|
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
zug = sc.nextLine();
|
|
System.out.println();
|
|
erfolgreicherZug = spielsystem.getHenne().isValidMove(zug);
|
|
|
|
if (erfolgreicherZug == false) {
|
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
|
System.out.println("Sie sind weiterhin am Zug");
|
|
System.out.println();
|
|
}
|
|
} while (erfolgreicherZug == false);
|
|
|
|
spielsystem.getHenne().moveSpielfigur(zug);
|
|
zugHenne = false;
|
|
zugFuchs = true;
|
|
}
|
|
|
|
// Zug Fuchs Spieler
|
|
else if (zugFuchs == true && spielerwahl == 1) {
|
|
System.out.println("Die Füchse sind am Zug:");
|
|
System.out.println("Spieler Sie sind dran");
|
|
do {
|
|
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
zug = sc.nextLine();
|
|
System.out.println();
|
|
erfolgreicherZug = spielsystem.getFuchs().isValidMove(zug);
|
|
|
|
if (erfolgreicherZug == false) {
|
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
|
System.out.println("Sie sind weiterhin am Zug");
|
|
System.out.println();
|
|
}
|
|
} while (erfolgreicherZug == false);
|
|
|
|
spielsystem.getFuchs().moveSpielfigur(zug);
|
|
zugHenne = true;
|
|
zugFuchs = false;
|
|
}
|
|
|
|
// Zug Fuchs KI
|
|
else if (zugFuchs == true && spielerwahl == 2) {
|
|
System.out.println("Die Füchse sind am Zug:");
|
|
System.out.println("Die KI macht Ihren Zug");
|
|
System.out.println();
|
|
zug = spielsystem.getBot().zugBestimmen();
|
|
//System.out.println(zug);
|
|
//Kontrolle des Zuges sollte im Bot gemacht werden
|
|
//erfolgreicherZug = spielsystem.getFuchs().isValidMove(zug);
|
|
|
|
spielsystem.getFuchs().moveSpielfigur(zug);
|
|
zugHenne = true;
|
|
zugFuchs = false;
|
|
}
|
|
|
|
//nach jedem Zug das Spielbrett ausgeben
|
|
spielsystem.printBoard();
|
|
|
|
} while (spielsystem.isWon() == false);
|
|
|
|
}
|
|
|
|
|
|
private boolean werBeginnt() {
|
|
System.out.println("Sollen die Füchse oder Hennen beginnen?");
|
|
System.out.println("1 -> Füchse beginnen");
|
|
System.out.println("2 -> Hennen beginnen");
|
|
System.out.println();
|
|
System.out.print("> ");
|
|
int werBeginnt = Integer.parseInt(sc.nextLine());
|
|
System.out.println();
|
|
|
|
if (werBeginnt == 1) {
|
|
//Füchse starten
|
|
return false;
|
|
} else {
|
|
//Hennen starten
|
|
return true;
|
|
}
|
|
}
|
|
|
|
}
|