Merge branch 'nico' of https://gitty.informatik.hs-mannheim.de/2210880/Hennen-und-Fuechse
commit
9725f74097
|
@ -1,14 +1,44 @@
|
|||
package domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class BotEasyHenne extends Bot {
|
||||
|
||||
public BotEasyHenne() {
|
||||
|
||||
}
|
||||
|
||||
// muss dann vielleicht noch an die neue Schreibweise des Arrays angepasst werden
|
||||
@Override
|
||||
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");
|
||||
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");
|
||||
return false;
|
||||
// return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,24 +6,65 @@ public class Spiel {
|
|||
private String spielname;
|
||||
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) {
|
||||
this.spielname = spielname;
|
||||
this.spielbrett = generiereSpielbrett();
|
||||
// this.spielbrett = generiereSpielbrett();
|
||||
// this.spielbrettArray = generiereSpielbrettArray();
|
||||
Spiel.spielbrettArray = generiereSpielbrettArray();
|
||||
|
||||
}
|
||||
|
||||
public void printBoard() {
|
||||
int zähler = 0;
|
||||
for (int i = 0; i < spielbrett.size(); i++) {
|
||||
if (zähler == 9) {
|
||||
System.out.println(spielbrett.get(i));
|
||||
zähler = 0;
|
||||
} else {
|
||||
System.out.print(spielbrett.get(i) + " ");
|
||||
zähler++;
|
||||
}
|
||||
}
|
||||
// int zähler = 0;
|
||||
// for (int i = 0; i < spielbrett.size(); i++) {
|
||||
// if (zähler == 9) {
|
||||
// System.out.println(spielbrett.get(i));
|
||||
// zähler = 0;
|
||||
// } else {
|
||||
// System.out.print(spielbrett.get(i) + " ");
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
public HashMap<Integer, Character> generiereSpielbrett() {
|
||||
|
|
|
@ -2,7 +2,10 @@ package domain;
|
|||
|
||||
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) {
|
||||
|
||||
|
|
|
@ -11,13 +11,17 @@ import domain.Fuchs;
|
|||
import domain.Hennen;
|
||||
import domain.Spiel;
|
||||
import domain.Spielfigur;
|
||||
import ui.UI;
|
||||
|
||||
public class Spielsystem {
|
||||
private String spielname;
|
||||
private Spiel spiel;
|
||||
private Spielfigur henne;
|
||||
private Spielfigur fuchs;
|
||||
private Spielfigur spieler;
|
||||
private Spielfigur computer;
|
||||
private Bot ki;
|
||||
private boolean aktiverSpieler;
|
||||
|
||||
public Spielsystem(String spielname) throws Exception {
|
||||
this.spiel = new Spiel(spielname);
|
||||
|
@ -25,10 +29,56 @@ public class Spielsystem {
|
|||
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() {
|
||||
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() {
|
||||
return henne;
|
||||
}
|
||||
|
@ -58,38 +108,50 @@ public class Spielsystem {
|
|||
return true;
|
||||
}
|
||||
|
||||
// public boolean isValidMove(String zug) {
|
||||
// return this.isValidMove(zug);
|
||||
// }
|
||||
// vorerst wird es ignoriert das static verlangt wird
|
||||
public boolean isValidMove(String zug) {
|
||||
if(aktiverSpieler == true) {
|
||||
return spieler.isValidMove(zug);
|
||||
} else {
|
||||
return computer.isValidMove(zug);
|
||||
}
|
||||
}
|
||||
|
||||
public String yourMove() {
|
||||
return "H";
|
||||
return ki.zugBestimmen();
|
||||
}
|
||||
|
||||
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) {
|
||||
if (kiLevel == 0 && spielerwahl == 1) {
|
||||
public void start(boolean werBeginnt, int kiLevel) {
|
||||
|
||||
if (kiLevel == 0 && computer instanceof Hennen) {
|
||||
ki = new BotEasyHenne();
|
||||
} else if ( kiLevel == 1 && spielerwahl == 1) {
|
||||
} else if ( kiLevel == 1 && computer instanceof Hennen) {
|
||||
ki = new BotMediumHenne();
|
||||
} else if (kiLevel == 2 && spielerwahl == 1) {
|
||||
} else if (kiLevel == 2 && computer instanceof Hennen) {
|
||||
ki = new BotHardHenne();
|
||||
} else if (kiLevel == 0 && spielerwahl == 2) {
|
||||
} else if (kiLevel == 0 && computer instanceof Fuchs) {
|
||||
ki = new BotEasyFuchs();
|
||||
} else if ( kiLevel == 1 && spielerwahl == 2) {
|
||||
} else if ( kiLevel == 1 && computer instanceof Fuchs) {
|
||||
ki = new BotMediumFuchs();
|
||||
} else if (kiLevel == 2 && spielerwahl == 2) {
|
||||
} else if (kiLevel == 2 && computer instanceof Fuchs) {
|
||||
ki = new BotHardFuchs();
|
||||
}else {
|
||||
//Fehleingabe
|
||||
}
|
||||
|
||||
// UI.start(werBeginnt, kiLevel);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ package infrastructure;
|
|||
|
||||
public class Persistenz {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
// public static void main(String[] args) {
|
||||
// // TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -119,6 +119,9 @@ public class UI {
|
|||
int spielerwahl = Integer.parseInt(sc.nextLine());
|
||||
System.out.println();
|
||||
|
||||
spielsystem.spielerBestimmen(spielerwahl);
|
||||
spielsystem.computerBestimmen(spielerwahl);
|
||||
|
||||
boolean werBeginnt = werBeginnt();
|
||||
|
||||
System.out.println("Auf welchen Schwierigkeitsgrad wollen Sie spielen?");
|
||||
|
@ -130,13 +133,15 @@ public class UI {
|
|||
int kiLevel = Integer.parseInt(sc.nextLine());
|
||||
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 zugHenne = false;
|
||||
boolean spielfigurComputer = spielsystem.getSpielfigurComputer();
|
||||
boolean spielfigurSpieler = spielsystem.getSpielfigurSpieler();
|
||||
boolean erfolgreicherZug;
|
||||
String zug;
|
||||
|
||||
|
@ -146,8 +151,6 @@ public class UI {
|
|||
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");
|
||||
|
@ -164,22 +167,23 @@ public class UI {
|
|||
|
||||
do {
|
||||
// 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 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);
|
||||
zug = spielsystem.yourMove();
|
||||
System.out.println();
|
||||
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||
|
||||
spielsystem.getHenne().moveSpielfigur(zug);
|
||||
spielsystem.moveSpielfigur(zug);
|
||||
zugHenne = false;
|
||||
zugFuchs = true;
|
||||
}
|
||||
|
||||
// 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("Spieler Sie sind dran");
|
||||
do {
|
||||
|
@ -188,7 +192,7 @@ public class UI {
|
|||
System.out.print("> ");
|
||||
zug = sc.nextLine();
|
||||
System.out.println();
|
||||
erfolgreicherZug = spielsystem.getHenne().isValidMove(zug);
|
||||
erfolgreicherZug = spielsystem.isValidMove(zug);
|
||||
|
||||
if (erfolgreicherZug == false) {
|
||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||
|
@ -203,7 +207,8 @@ public class UI {
|
|||
}
|
||||
|
||||
// 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("Spieler Sie sind dran");
|
||||
do {
|
||||
|
@ -212,7 +217,7 @@ public class UI {
|
|||
System.out.print("> ");
|
||||
zug = sc.nextLine();
|
||||
System.out.println();
|
||||
erfolgreicherZug = spielsystem.getFuchs().isValidMove(zug);
|
||||
erfolgreicherZug = spielsystem.isValidMove(zug);
|
||||
|
||||
if (erfolgreicherZug == false) {
|
||||
System.out.println("Ihre Zugeingabe: -" + zug + "- war leider kein valider Zug!");
|
||||
|
@ -227,16 +232,16 @@ public class UI {
|
|||
}
|
||||
|
||||
// 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 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);
|
||||
zug = spielsystem.yourMove();
|
||||
System.out.println();
|
||||
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||
|
||||
spielsystem.getFuchs().moveSpielfigur(zug);
|
||||
spielsystem.moveSpielfigur(zug);
|
||||
zugHenne = true;
|
||||
zugFuchs = false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue