Sonderzug (Push Henne) dazu
parent
a4ed62cf8d
commit
f1a94b7b96
|
@ -40,9 +40,9 @@ public class Spiel {
|
||||||
spielbrettArray[1][1] = ' ';
|
spielbrettArray[1][1] = ' ';
|
||||||
spielbrettArray[1][2] = ' ';
|
spielbrettArray[1][2] = ' ';
|
||||||
spielbrettArray[1][3] = ' ';
|
spielbrettArray[1][3] = ' ';
|
||||||
spielbrettArray[1][4] = '\u25A1';
|
spielbrettArray[1][4] = 'O';
|
||||||
spielbrettArray[1][5] = '\u25A1';
|
spielbrettArray[1][5] = '\u25A1';
|
||||||
spielbrettArray[1][6] = '\u25A1';
|
spielbrettArray[1][6] = 'O';
|
||||||
spielbrettArray[1][7] = ' ';
|
spielbrettArray[1][7] = ' ';
|
||||||
spielbrettArray[1][8] = ' ';
|
spielbrettArray[1][8] = ' ';
|
||||||
spielbrettArray[1][9] = ' ';
|
spielbrettArray[1][9] = ' ';
|
||||||
|
@ -210,7 +210,7 @@ public class Spiel {
|
||||||
umgewandelt[1] = umwandeln2;
|
umgewandelt[1] = umwandeln2;
|
||||||
return umgewandelt;
|
return umgewandelt;
|
||||||
}
|
}
|
||||||
if (umwandeln1 == 4 && umwandeln2 == 1 ) {
|
if (umwandeln1 == 5 && umwandeln2 == 1 ) {
|
||||||
umwandeln1 = 7 ;
|
umwandeln1 = 7 ;
|
||||||
umwandeln2 = 6 ;
|
umwandeln2 = 6 ;
|
||||||
|
|
||||||
|
|
|
@ -298,4 +298,71 @@ public class Spielsystem {
|
||||||
// UI.start(werBeginnt, kiLevel);
|
// UI.start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean findeHenne(String henneGewählt) {
|
||||||
|
|
||||||
|
char[][] spielbrett = spiel.getSpielbrettArray();
|
||||||
|
|
||||||
|
char startKoordinate1 = henneGewählt.charAt(0);
|
||||||
|
char startKoordinate2 = henneGewählt.charAt(2);
|
||||||
|
|
||||||
|
// Werte als int
|
||||||
|
int koordX = Character.getNumericValue(startKoordinate1);
|
||||||
|
int koordY = Character.getNumericValue(startKoordinate2);
|
||||||
|
|
||||||
|
int[] neueKoordinaten = spiel.wandelPassendUm(koordX, koordY);
|
||||||
|
|
||||||
|
int neuesX = neueKoordinaten[1];
|
||||||
|
int neuesY = neueKoordinaten[0];
|
||||||
|
|
||||||
|
if (spielbrett[neuesY][neuesX] == 'X') {
|
||||||
|
System.out.println("Henne gefunden");
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
System.out.println("Keine Henne an der gewählten Stelle");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean findeFreiesFeld(String pushHenne) {
|
||||||
|
char[][] spielbrett = spiel.getSpielbrettArray();
|
||||||
|
|
||||||
|
char startKoordinate1 = pushHenne.charAt(0);
|
||||||
|
char startKoordinate2 = pushHenne.charAt(2);
|
||||||
|
|
||||||
|
// Werte als int
|
||||||
|
int koordX = Character.getNumericValue(startKoordinate1);
|
||||||
|
int koordY = Character.getNumericValue(startKoordinate2);
|
||||||
|
|
||||||
|
int[] neueKoordinaten = spiel.wandelPassendUm(koordX, koordY);
|
||||||
|
|
||||||
|
int neuesX = neueKoordinaten[1];
|
||||||
|
int neuesY = neueKoordinaten[0];
|
||||||
|
|
||||||
|
if (spielbrett[neuesY][neuesX] == '\u25A1') {
|
||||||
|
System.out.println("freies Feld gefunden");
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
System.out.println("Keine kein freies Feld an der gewählten Stelle");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean pushHenne(String zugPushHenne) {
|
||||||
|
char[][] spielbrett = spiel.getSpielbrettArray();
|
||||||
|
|
||||||
|
int[] neueKoordinaten = berechneRichtigeKoordinaten(zugPushHenne);
|
||||||
|
int neueStartY = neueKoordinaten[0];
|
||||||
|
int neueStartX = neueKoordinaten[1];
|
||||||
|
int neueZielY = neueKoordinaten[2];
|
||||||
|
int neueZielX = neueKoordinaten[3];
|
||||||
|
|
||||||
|
spiel.ändereWertImArray(neueZielY, neueZielX, 'X');
|
||||||
|
spiel.ändereWertImArray(neueStartY, neueStartX, '\u25A1');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
229
src/ui/UI.java
229
src/ui/UI.java
|
@ -4,7 +4,6 @@ import java.util.Scanner;
|
||||||
|
|
||||||
import facade.Spielsystem;
|
import facade.Spielsystem;
|
||||||
|
|
||||||
|
|
||||||
public class UI {
|
public class UI {
|
||||||
private Spielsystem spielsystem;
|
private Spielsystem spielsystem;
|
||||||
Scanner sc = new Scanner(System.in);
|
Scanner sc = new Scanner(System.in);
|
||||||
|
@ -17,77 +16,86 @@ public class UI {
|
||||||
private void hauptmenü() {
|
private void hauptmenü() {
|
||||||
System.out.println("Willkommen beim Spiel des Jahres: " + spielsystem.getSpielname() + "!");
|
System.out.println("Willkommen beim Spiel des Jahres: " + spielsystem.getSpielname() + "!");
|
||||||
|
|
||||||
mainloop:
|
mainloop: while (true) {
|
||||||
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();
|
System.out.println();
|
||||||
System.out.println("--------");
|
} catch (NumberFormatException nfe) {
|
||||||
System.out.println("Hauptmenü:");
|
System.out.println("\nLeider haben Sie keine Zahl eingegeben. Bitte geben Sie eine Zahl ein:");
|
||||||
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());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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!");
|
System.out.println("Auf Wiedersehen!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// hauptmenü
|
// hauptmenü
|
||||||
// case 1:
|
// case 1:
|
||||||
private void gameloop() {
|
private void gameloop() {
|
||||||
gameloop:
|
gameloop: while (true) {
|
||||||
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();
|
System.out.println();
|
||||||
System.out.println("--------");
|
} catch (NumberFormatException nfe) {
|
||||||
System.out.println("Spielmenü:");
|
System.out.println("\nLeider haben Sie keine Zahl eingegeben. Bitte geben Sie eine Zahl ein:");
|
||||||
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());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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:
|
// case 2:
|
||||||
|
@ -100,13 +108,11 @@ public class UI {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// gameloop
|
// gameloop
|
||||||
// case 1:
|
// case 1:
|
||||||
private void pVP() {
|
private void pVP() {
|
||||||
boolean werBeginnt = werBeginnt();
|
boolean werBeginnt = werBeginnt();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// case 2:
|
// case 2:
|
||||||
|
@ -137,13 +143,18 @@ public class UI {
|
||||||
start(werBeginnt, kiLevel);
|
start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void start(boolean werBeginnt, int kiLevel) {
|
public void start(boolean werBeginnt, int kiLevel) {
|
||||||
boolean zugFuchs = false;
|
boolean zugFuchs = false;
|
||||||
boolean zugHenne = false;
|
boolean zugHenne = false;
|
||||||
boolean spielfigurComputer = spielsystem.getSpielfigurComputer();
|
boolean spielfigurComputer = spielsystem.getSpielfigurComputer();
|
||||||
boolean spielfigurSpieler = spielsystem.getSpielfigurSpieler();
|
boolean spielfigurSpieler = spielsystem.getSpielfigurSpieler();
|
||||||
boolean erfolgreicherZug;
|
boolean erfolgreicherZug;
|
||||||
|
boolean erfolgreich;
|
||||||
|
boolean freiesFeld;
|
||||||
|
boolean erfolgreichGepusht;
|
||||||
|
String zugPushHenne = "";
|
||||||
|
int counter = 0;
|
||||||
|
|
||||||
String zug;
|
String zug;
|
||||||
|
|
||||||
if (werBeginnt == true) {
|
if (werBeginnt == true) {
|
||||||
|
@ -211,26 +222,75 @@ public class UI {
|
||||||
else if (zugFuchs == true && spielfigurSpieler == false) {
|
else if (zugFuchs == true && spielfigurSpieler == false) {
|
||||||
spielsystem.setAktivenSpieler(true);
|
spielsystem.setAktivenSpieler(true);
|
||||||
System.out.println("Die Füchse sind am Zug:");
|
System.out.println("Die Füchse sind am Zug:");
|
||||||
System.out.println("Spieler Sie sind dran");
|
System.out.println("Bitte wählen Sie entweder (1) normaler Zug oder (2) Sonderzug Push Henne");
|
||||||
do {
|
System.out.println("Denken Sie daran, dass Sie den Sonderzug nur - 1x - benutzen können!");
|
||||||
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
int eingabe = Integer.parseInt(sc.nextLine());
|
||||||
System.out.println();
|
switch (eingabe) {
|
||||||
System.out.print("> ");
|
case 1:
|
||||||
zug = sc.nextLine();
|
System.out.println("Spieler Sie sind dran");
|
||||||
System.out.println();
|
do {
|
||||||
erfolgreicherZug = spielsystem.isValidMove(zug);
|
System.out.println("Bitte geben Sie Ihren Zug ein:");
|
||||||
|
|
||||||
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();
|
System.out.println();
|
||||||
|
System.out.print("> ");
|
||||||
|
zug = sc.nextLine();
|
||||||
|
System.out.println();
|
||||||
|
erfolgreicherZug = spielsystem.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.myMove(zug);
|
||||||
|
|
||||||
|
zugHenne = true;
|
||||||
|
zugFuchs = false;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (counter == 1) {
|
||||||
|
System.out.println("Sonderzug wurde schon verbraucht. ");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} while (erfolgreicherZug == false);
|
do {
|
||||||
|
System.out.println("Sonderzug gewählt. ");
|
||||||
|
System.out.println("Bitte wählen Sie die Henne, die Sie bewegen möchten: ");
|
||||||
|
String henneGewählt = sc.nextLine();
|
||||||
|
erfolgreich = spielsystem.findeHenne(henneGewählt);
|
||||||
|
|
||||||
spielsystem.myMove(zug);
|
if (erfolgreich == false) {
|
||||||
|
System.out.println("Ihre Zugeingabe -" + henneGewählt + "- war leider kein valider Zug!");
|
||||||
|
System.out.println("Sie sind weiterhin am Zug");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
zugHenne = true;
|
} else if (erfolgreich == true) {
|
||||||
zugFuchs = false;
|
zugPushHenne += henneGewählt;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (erfolgreich == false);
|
||||||
|
do {
|
||||||
|
System.out.println("Henne wurde erfolgreich gewählt. Wo soll sie hingeschoben werden? ");
|
||||||
|
String pushHenne = sc.nextLine();
|
||||||
|
freiesFeld = spielsystem.findeFreiesFeld(pushHenne);
|
||||||
|
|
||||||
|
if (freiesFeld == false) {
|
||||||
|
System.out.println("Ihre Zugeingabe -" + pushHenne + "- war leider kein valider Zug!");
|
||||||
|
System.out.println("Sie sind weiterhin am Zug");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
} else if (freiesFeld == true) {
|
||||||
|
zugPushHenne += " " + pushHenne;
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (freiesFeld == false);
|
||||||
|
erfolgreichGepusht = spielsystem.pushHenne(zugPushHenne);
|
||||||
|
System.out.println("Henne wurde erfolgreich geschoben. ");
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zug Fuchs KI
|
// Zug Fuchs KI
|
||||||
|
@ -247,14 +307,13 @@ public class UI {
|
||||||
zugFuchs = false;
|
zugFuchs = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//nach jedem Zug das Spielbrett ausgeben
|
// nach jedem Zug das Spielbrett ausgeben
|
||||||
spielsystem.printBoard();
|
spielsystem.printBoard();
|
||||||
|
|
||||||
} while (spielsystem.isRunning() == true);
|
} while (spielsystem.isRunning() == true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean werBeginnt() {
|
private boolean werBeginnt() {
|
||||||
System.out.println("Sollen die Füchse oder Hennen beginnen?");
|
System.out.println("Sollen die Füchse oder Hennen beginnen?");
|
||||||
System.out.println("1 -> Füchse beginnen");
|
System.out.println("1 -> Füchse beginnen");
|
||||||
|
@ -265,10 +324,10 @@ public class UI {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
if (werBeginnt == 1) {
|
if (werBeginnt == 1) {
|
||||||
//Füchse starten
|
// Füchse starten
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
//Hennen starten
|
// Hennen starten
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue