Merge branch 'nico' of https://gitty.informatik.hs-mannheim.de/2210880/Hennen-und-Fuechse
commit
9725f74097
|
@ -1,14 +1,44 @@
|
||||||
package domain;
|
package domain;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class BotEasyHenne extends Bot {
|
public class BotEasyHenne extends Bot {
|
||||||
|
|
||||||
public BotEasyHenne() {
|
// muss dann vielleicht noch an die neue Schreibweise des Arrays angepasst werden
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String zugBestimmen() {
|
public String zugBestimmen() {
|
||||||
return "Ich bins der Einfache Hennen Bot";
|
String zug;
|
||||||
|
char[][] spielbrettArray = Spiel.getSpielbrettArray();
|
||||||
|
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
||||||
|
|
||||||
|
for(int i = 0; i < spielbrettArray.length; i++ )
|
||||||
|
{
|
||||||
|
for(int k = 0; k < spielbrettArray[i].length; k++ ){
|
||||||
|
if(spielbrettArray[i][k] == 'X') {
|
||||||
|
spielfigurExistiert.add("(" + i + "," + k + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
Random rand = new Random();
|
||||||
|
String random = spielfigurExistiert.get(rand.nextInt(spielfigurExistiert.size()));
|
||||||
|
// System.out.println(random);
|
||||||
|
|
||||||
|
int var1 = random.charAt(1) - '0';
|
||||||
|
int var2 = random.charAt(3) - '0';
|
||||||
|
int var3 = rand.nextInt(((var1 + 1) - (var1 - 1)) + 1) + (var1 - 1);
|
||||||
|
int var4 = var2;
|
||||||
|
|
||||||
|
if(var3 == var1) {
|
||||||
|
var4 = var2 - 1;
|
||||||
|
}
|
||||||
|
zug = "(" + var1 + "," + var2 + ") (" + var3 + "," + var4 + ")";
|
||||||
|
// System.out.println(zug);
|
||||||
|
} while(Hennen.isValidMove(zug) == false);
|
||||||
|
|
||||||
|
return zug;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,9 @@ public class Fuchs extends Spielfigur {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidMove(String zug) {
|
// public boolean isValidMove(String zug) {
|
||||||
|
public static boolean isValidMove(String zug) {
|
||||||
|
|
||||||
System.out.println("Fuchsmethode aufgerufen");
|
System.out.println("Fuchsmethode aufgerufen");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,12 @@ public class Hennen extends Spielfigur {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValidMove(String zug) {
|
// generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben
|
||||||
|
public static boolean isValidMove(String zug) {
|
||||||
|
// public boolean isValidMove(String zug) {
|
||||||
|
|
||||||
System.out.println("Hennenmethode aufgerufen");
|
System.out.println("Hennenmethode aufgerufen");
|
||||||
return false;
|
// return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,23 +6,64 @@ public class Spiel {
|
||||||
private String spielname;
|
private String spielname;
|
||||||
private HashMap<Integer, Character> spielbrett = new HashMap<>();
|
private HashMap<Integer, Character> spielbrett = new HashMap<>();
|
||||||
|
|
||||||
|
// private char[][] spielbrettArray = new char[10][10];
|
||||||
|
private static char[][] spielbrettArray = new char[10][10];
|
||||||
|
|
||||||
public Spiel(String spielname) {
|
public Spiel(String spielname) {
|
||||||
this.spielname = spielname;
|
this.spielname = spielname;
|
||||||
this.spielbrett = generiereSpielbrett();
|
// this.spielbrett = generiereSpielbrett();
|
||||||
|
// this.spielbrettArray = generiereSpielbrettArray();
|
||||||
|
Spiel.spielbrettArray = generiereSpielbrettArray();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printBoard() {
|
public void printBoard() {
|
||||||
int zähler = 0;
|
// int zähler = 0;
|
||||||
for (int i = 0; i < spielbrett.size(); i++) {
|
// for (int i = 0; i < spielbrett.size(); i++) {
|
||||||
if (zähler == 9) {
|
// if (zähler == 9) {
|
||||||
System.out.println(spielbrett.get(i));
|
// System.out.println(spielbrett.get(i));
|
||||||
zähler = 0;
|
// zähler = 0;
|
||||||
} else {
|
// } else {
|
||||||
System.out.print(spielbrett.get(i) + " ");
|
// System.out.print(spielbrett.get(i) + " ");
|
||||||
zähler++;
|
// zähler++;
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
// System.out.println();
|
||||||
|
|
||||||
|
for ( int zeile = 0; zeile < spielbrettArray.length; zeile++ )
|
||||||
|
{
|
||||||
|
System.out.print("Zeile " + zeile + ": ");
|
||||||
|
for ( int spalte=0; spalte < spielbrettArray[zeile].length; spalte++ )
|
||||||
|
System.out.print( spielbrettArray[zeile][spalte] + " ");
|
||||||
|
System.out.println();
|
||||||
}
|
}
|
||||||
System.out.println();
|
}
|
||||||
|
|
||||||
|
public char[][] generiereSpielbrettArray() {
|
||||||
|
spielbrettArray[0][0] = ' ';
|
||||||
|
spielbrettArray[0][1] = '0';
|
||||||
|
spielbrettArray[0][2] = '1';
|
||||||
|
spielbrettArray[0][3] = '2';
|
||||||
|
spielbrettArray[0][4] = '3';
|
||||||
|
spielbrettArray[0][5] = '4';
|
||||||
|
spielbrettArray[0][6] = '5';
|
||||||
|
spielbrettArray[0][7] = '6';
|
||||||
|
spielbrettArray[0][8] = '7';
|
||||||
|
spielbrettArray[0][9] = '8';
|
||||||
|
spielbrettArray[1][0] = '0';
|
||||||
|
spielbrettArray[1][1] = ' ';
|
||||||
|
spielbrettArray[1][2] = 'X';
|
||||||
|
spielbrettArray[1][3] = 'X';
|
||||||
|
spielbrettArray[1][4] = 'X';
|
||||||
|
spielbrettArray[1][5] = ' ';
|
||||||
|
|
||||||
|
return spielbrettArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
// public char[][] getSpielbrettArray() {
|
||||||
|
public static char[][] getSpielbrettArray() {
|
||||||
|
|
||||||
|
return spielbrettArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Erstellung Anfangsspielbrett mithilfe von Unicode Zeichen
|
//Erstellung Anfangsspielbrett mithilfe von Unicode Zeichen
|
||||||
|
|
|
@ -2,7 +2,10 @@ package domain;
|
||||||
|
|
||||||
public abstract class Spielfigur {
|
public abstract class Spielfigur {
|
||||||
|
|
||||||
public abstract boolean isValidMove(String zug);
|
// public abstract boolean isValidMove(String zug);
|
||||||
|
public static boolean isValidMove(String zug) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public void moveSpielfigur(String zug) {
|
public void moveSpielfigur(String zug) {
|
||||||
|
|
||||||
|
|
|
@ -11,13 +11,17 @@ import domain.Fuchs;
|
||||||
import domain.Hennen;
|
import domain.Hennen;
|
||||||
import domain.Spiel;
|
import domain.Spiel;
|
||||||
import domain.Spielfigur;
|
import domain.Spielfigur;
|
||||||
|
import ui.UI;
|
||||||
|
|
||||||
public class Spielsystem {
|
public class Spielsystem {
|
||||||
private String spielname;
|
private String spielname;
|
||||||
private Spiel spiel;
|
private Spiel spiel;
|
||||||
private Spielfigur henne;
|
private Spielfigur henne;
|
||||||
private Spielfigur fuchs;
|
private Spielfigur fuchs;
|
||||||
|
private Spielfigur spieler;
|
||||||
|
private Spielfigur computer;
|
||||||
private Bot ki;
|
private Bot ki;
|
||||||
|
private boolean aktiverSpieler;
|
||||||
|
|
||||||
public Spielsystem(String spielname) throws Exception {
|
public Spielsystem(String spielname) throws Exception {
|
||||||
this.spiel = new Spiel(spielname);
|
this.spiel = new Spiel(spielname);
|
||||||
|
@ -25,10 +29,56 @@ public class Spielsystem {
|
||||||
this.fuchs = new Fuchs();
|
this.fuchs = new Fuchs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void spielerBestimmen(int spielerwahl) {
|
||||||
|
if(spielerwahl == 1) {
|
||||||
|
spieler = new Fuchs();
|
||||||
|
} else if(spielerwahl == 2) {
|
||||||
|
spieler = new Hennen();
|
||||||
|
} else {
|
||||||
|
//Scheiße
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void computerBestimmen(int spielerwahl) {
|
||||||
|
if(spielerwahl == 2) {
|
||||||
|
computer = new Fuchs();
|
||||||
|
} else if(spielerwahl == 1) {
|
||||||
|
computer = new Hennen();
|
||||||
|
} else {
|
||||||
|
//Scheiße
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAktivenSpieler(boolean überprüfung) {
|
||||||
|
if(überprüfung == true) {
|
||||||
|
// aktiverSpieler ist der Spieler
|
||||||
|
aktiverSpieler = true;
|
||||||
|
} else {
|
||||||
|
// aktiverSpieler ist der Computer
|
||||||
|
aktiverSpieler = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getSpielname() {
|
public String getSpielname() {
|
||||||
return spielname;
|
return spielname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getSpielfigurComputer() {
|
||||||
|
if(computer instanceof Hennen) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getSpielfigurSpieler() {
|
||||||
|
if(spieler instanceof Hennen) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Spielfigur getHenne() {
|
public Spielfigur getHenne() {
|
||||||
return henne;
|
return henne;
|
||||||
}
|
}
|
||||||
|
@ -58,38 +108,50 @@ public class Spielsystem {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public boolean isValidMove(String zug) {
|
// vorerst wird es ignoriert das static verlangt wird
|
||||||
// return this.isValidMove(zug);
|
public boolean isValidMove(String zug) {
|
||||||
// }
|
if(aktiverSpieler == true) {
|
||||||
|
return spieler.isValidMove(zug);
|
||||||
|
} else {
|
||||||
|
return computer.isValidMove(zug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String yourMove() {
|
public String yourMove() {
|
||||||
return "H";
|
return ki.zugBestimmen();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void myMove(String zug) {
|
public void myMove(String zug) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void moveSpielfigur(String zug) {
|
public void moveSpielfigur(String zug) {
|
||||||
//
|
if(aktiverSpieler == true) {
|
||||||
// }
|
spieler.moveSpielfigur(zug);
|
||||||
|
} else {
|
||||||
|
computer.moveSpielfigur(zug);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void kiGenerieren(int spielerwahl, int kiLevel) {
|
public void start(boolean werBeginnt, int kiLevel) {
|
||||||
if (kiLevel == 0 && spielerwahl == 1) {
|
|
||||||
|
if (kiLevel == 0 && computer instanceof Hennen) {
|
||||||
ki = new BotEasyHenne();
|
ki = new BotEasyHenne();
|
||||||
} else if ( kiLevel == 1 && spielerwahl == 1) {
|
} else if ( kiLevel == 1 && computer instanceof Hennen) {
|
||||||
ki = new BotMediumHenne();
|
ki = new BotMediumHenne();
|
||||||
} else if (kiLevel == 2 && spielerwahl == 1) {
|
} else if (kiLevel == 2 && computer instanceof Hennen) {
|
||||||
ki = new BotHardHenne();
|
ki = new BotHardHenne();
|
||||||
} else if (kiLevel == 0 && spielerwahl == 2) {
|
} else if (kiLevel == 0 && computer instanceof Fuchs) {
|
||||||
ki = new BotEasyFuchs();
|
ki = new BotEasyFuchs();
|
||||||
} else if ( kiLevel == 1 && spielerwahl == 2) {
|
} else if ( kiLevel == 1 && computer instanceof Fuchs) {
|
||||||
ki = new BotMediumFuchs();
|
ki = new BotMediumFuchs();
|
||||||
} else if (kiLevel == 2 && spielerwahl == 2) {
|
} else if (kiLevel == 2 && computer instanceof Fuchs) {
|
||||||
ki = new BotHardFuchs();
|
ki = new BotHardFuchs();
|
||||||
}else {
|
}else {
|
||||||
//Fehleingabe
|
//Fehleingabe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UI.start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@ package infrastructure;
|
||||||
|
|
||||||
public class Persistenz {
|
public class Persistenz {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
// public static void main(String[] args) {
|
||||||
// TODO Auto-generated method stub
|
// // TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,6 +119,9 @@ public class UI {
|
||||||
int spielerwahl = Integer.parseInt(sc.nextLine());
|
int spielerwahl = Integer.parseInt(sc.nextLine());
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
|
spielsystem.spielerBestimmen(spielerwahl);
|
||||||
|
spielsystem.computerBestimmen(spielerwahl);
|
||||||
|
|
||||||
boolean werBeginnt = werBeginnt();
|
boolean werBeginnt = werBeginnt();
|
||||||
|
|
||||||
System.out.println("Auf welchen Schwierigkeitsgrad wollen Sie spielen?");
|
System.out.println("Auf welchen Schwierigkeitsgrad wollen Sie spielen?");
|
||||||
|
@ -130,13 +133,15 @@ public class UI {
|
||||||
int kiLevel = Integer.parseInt(sc.nextLine());
|
int kiLevel = Integer.parseInt(sc.nextLine());
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
start(werBeginnt, spielerwahl, kiLevel);
|
spielsystem.start(werBeginnt, kiLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void start(boolean werBeginnt, int spielerwahl, 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 spielfigurSpieler = spielsystem.getSpielfigurSpieler();
|
||||||
boolean erfolgreicherZug;
|
boolean erfolgreicherZug;
|
||||||
String zug;
|
String zug;
|
||||||
|
|
||||||
|
@ -146,8 +151,6 @@ public class UI {
|
||||||
zugFuchs = true;
|
zugFuchs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
spielsystem.kiGenerieren(spielerwahl, kiLevel);
|
|
||||||
|
|
||||||
System.out.println("Das Spiel wurde gestartet!");
|
System.out.println("Das Spiel wurde gestartet!");
|
||||||
if (kiLevel == 0) {
|
if (kiLevel == 0) {
|
||||||
System.out.println("Sie haben den Schwierigkeitsgrad -easy- ausgewählt");
|
System.out.println("Sie haben den Schwierigkeitsgrad -easy- ausgewählt");
|
||||||
|
@ -164,22 +167,23 @@ public class UI {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Zug Henne KI
|
// Zug Henne KI
|
||||||
if (zugHenne == true && spielerwahl == 1) {
|
if (zugHenne == true && spielfigurComputer == true) {
|
||||||
|
spielsystem.setAktivenSpieler(false);
|
||||||
System.out.println("Die Hennen sind am Zug:");
|
System.out.println("Die Hennen sind am Zug:");
|
||||||
System.out.println("Die KI macht Ihren Zug");
|
System.out.println("Die KI macht Ihren Zug");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
zug = spielsystem.getBot().zugBestimmen();
|
zug = spielsystem.yourMove();
|
||||||
//System.out.println(zug);
|
System.out.println();
|
||||||
//Kontrolle des Zuges sollte im Bot gemacht werden
|
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||||
//erfolgreicherZug = spielsystem.getHenne().isValidMove(zug);
|
|
||||||
|
|
||||||
spielsystem.getHenne().moveSpielfigur(zug);
|
spielsystem.moveSpielfigur(zug);
|
||||||
zugHenne = false;
|
zugHenne = false;
|
||||||
zugFuchs = true;
|
zugFuchs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zug Henne Spieler
|
// Zug Henne Spieler
|
||||||
else if (zugHenne == true && spielerwahl == 2) {
|
else if (zugHenne == true && spielfigurSpieler == true) {
|
||||||
|
spielsystem.setAktivenSpieler(true);
|
||||||
System.out.println("Die Hennen sind am Zug:");
|
System.out.println("Die Hennen sind am Zug:");
|
||||||
System.out.println("Spieler Sie sind dran");
|
System.out.println("Spieler Sie sind dran");
|
||||||
do {
|
do {
|
||||||
|
@ -188,7 +192,7 @@ public class UI {
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
zug = sc.nextLine();
|
zug = sc.nextLine();
|
||||||
System.out.println();
|
System.out.println();
|
||||||
erfolgreicherZug = spielsystem.getHenne().isValidMove(zug);
|
erfolgreicherZug = spielsystem.isValidMove(zug);
|
||||||
|
|
||||||
if (erfolgreicherZug == false) {
|
if (erfolgreicherZug == false) {
|
||||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||||
|
@ -203,7 +207,8 @@ public class UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zug Fuchs Spieler
|
// Zug Fuchs Spieler
|
||||||
else if (zugFuchs == true && spielerwahl == 1) {
|
else if (zugFuchs == true && spielfigurSpieler == false) {
|
||||||
|
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("Spieler Sie sind dran");
|
||||||
do {
|
do {
|
||||||
|
@ -212,7 +217,7 @@ public class UI {
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
zug = sc.nextLine();
|
zug = sc.nextLine();
|
||||||
System.out.println();
|
System.out.println();
|
||||||
erfolgreicherZug = spielsystem.getFuchs().isValidMove(zug);
|
erfolgreicherZug = spielsystem.isValidMove(zug);
|
||||||
|
|
||||||
if (erfolgreicherZug == false) {
|
if (erfolgreicherZug == false) {
|
||||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||||
|
@ -227,16 +232,16 @@ public class UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zug Fuchs KI
|
// Zug Fuchs KI
|
||||||
else if (zugFuchs == true && spielerwahl == 2) {
|
else if (zugFuchs == true && spielfigurComputer == false) {
|
||||||
|
spielsystem.setAktivenSpieler(false);
|
||||||
System.out.println("Die Füchse sind am Zug:");
|
System.out.println("Die Füchse sind am Zug:");
|
||||||
System.out.println("Die KI macht Ihren Zug");
|
System.out.println("Die KI macht Ihren Zug");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
zug = spielsystem.getBot().zugBestimmen();
|
zug = spielsystem.yourMove();
|
||||||
//System.out.println(zug);
|
System.out.println();
|
||||||
//Kontrolle des Zuges sollte im Bot gemacht werden
|
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||||
//erfolgreicherZug = spielsystem.getFuchs().isValidMove(zug);
|
|
||||||
|
|
||||||
spielsystem.getFuchs().moveSpielfigur(zug);
|
spielsystem.moveSpielfigur(zug);
|
||||||
zugHenne = true;
|
zugHenne = true;
|
||||||
zugFuchs = false;
|
zugFuchs = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue