Aufräumarbeiten und einheitlichen Stand generiert für alle

pull/5/head
cedri 2022-11-29 13:23:12 +01:00
parent f2842fa621
commit 0ce6fe08a8
8 changed files with 33 additions and 75 deletions

View File

@ -7,7 +7,7 @@ public class BotEasyHenne extends Bot {
// muss dann vielleicht noch an die neue Schreibweise des Arrays angepasst werden // muss dann vielleicht noch an die neue Schreibweise des Arrays angepasst werden
@Override @Override
public String zugBestimmen() { public String zugBestimmen(Spiel spiel, Hennen henne) {
String zug; String zug;
char[][] spielbrettArray = Spiel.getSpielbrettArray(); char[][] spielbrettArray = Spiel.getSpielbrettArray();
ArrayList<String> spielfigurExistiert = new ArrayList<>(); ArrayList<String> spielfigurExistiert = new ArrayList<>();

View File

@ -1,13 +1,13 @@
package domain; package domain;
public class Fuchs extends Spielfigur { public class Fuchs extends Spielfigur {
public Fuchs() { public Fuchs() {
} }
// public boolean isValidMove(String zug) { public boolean isValidMove(String zug, Spiel spiel) {
public static boolean isValidMove(String zug) { // public static boolean isValidMove(String zug) {
System.out.println("Fuchsmethode aufgerufen"); System.out.println("Fuchsmethode aufgerufen");
return false; return false;

View File

@ -7,10 +7,11 @@ public class Hennen extends Spielfigur {
} }
// generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben // generell sehr fehleranfällig, mit Regex Filter Struktur vom String vorgeben
public static boolean isValidMove(String zug) { public boolean isValidMove(String zug, Spiel spiel) {
char[][] spielbrettArray = new char[10][10];;
spielbrettArray = spiel.getSpielbrettArray();
//Form vom Zug: "5,5 4,5" //Form vom Zug: "5,5 4,5"
//Zug wurde getätigt.... //Zug wurde getätigt....
//Werte als Char //Werte als Char
char startKoordinate1 = zug.charAt(0); char startKoordinate1 = zug.charAt(0);
@ -24,14 +25,18 @@ public class Hennen extends Spielfigur {
int zielKoord1 = Character.getNumericValue(zielKoordinate1); int zielKoord1 = Character.getNumericValue(zielKoordinate1);
int zielKoord2 = Character.getNumericValue(zielKoordinate2); int zielKoord2 = Character.getNumericValue(zielKoordinate2);
int[] neueStartKoords = Spiel.wandelPassendUm(startKoord1, startKoord2); int[] neueStartKoords = spiel.wandelPassendUm(startKoord1, startKoord2);
int[] neueZielKoords = Spiel.wandelPassendUm(zielKoord1, zielKoord2); int[] neueZielKoords = spiel.wandelPassendUm(zielKoord1, zielKoord2);
//Werte angepasst auf unser Board //Werte angepasst auf unser Board
int neueStartX = neueStartKoords[0]; int neueStartX = neueStartKoords[0];
int neueStartY = neueStartKoords[1]; int neueStartY = neueStartKoords[1];
int neueZielX = neueZielKoords[0]; int neueZielX = neueZielKoords[0];
int neueZielY = neueZielKoords[1]; int neueZielY = neueZielKoords[1];
//Fehler Spielsymbol beim Start oder Zeil falsch
if (spielbrettArray[neueStartX][neueStartY] != 'X')

View File

@ -2,42 +2,19 @@ package domain;
import java.util.HashMap; import java.util.HashMap;
public class Spiel { public class Spiel {
private String spielname; private String spielname;
// private char[][] spielbrettArray = new char[10][10]; // private char[][] spielbrettArray = new char[10][10];
private static char[][] spielbrettArray = new char[10][10]; private char[][] spielbrettArray = new char[10][10];
public Spiel(String spielname) { public Spiel(String spielname) {
this.spielname = spielname; this.spielname = spielname;
// this.spielbrett = generiereSpielbrett(); this.spielbrettArray = generiereSpielbrett();
// this.spielbrettArray = generiereSpielbrettArray();
Spiel.spielbrettArray = generiereSpielbrett();
} }
public void printBoard() { 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++;
// }
// }
// 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();
// }
for (int i = 0; i < spielbrettArray.length; i++) { for (int i = 0; i < spielbrettArray.length; i++) {
for (int j = 0; j < spielbrettArray[i].length; j++) { for (int j = 0; j < spielbrettArray[i].length; j++) {
System.out.print(spielbrettArray[i][j] + " "); System.out.print(spielbrettArray[i][j] + " ");
@ -48,7 +25,6 @@ public class Spiel {
public char[][] generiereSpielbrett() { public char[][] generiereSpielbrett() {
// public HashMap<Integer, Character> generiereSpielbrett() {
// O=Fuchs, X=Henne, \u25A1=ein Kasten // O=Fuchs, X=Henne, \u25A1=ein Kasten
spielbrettArray[0][0] = '8'; spielbrettArray[0][0] = '8';
@ -160,18 +136,17 @@ public class Spiel {
spielbrettArray[9][7] = '6'; spielbrettArray[9][7] = '6';
spielbrettArray[9][8] = '7'; spielbrettArray[9][8] = '7';
spielbrettArray[9][9] = '8'; spielbrettArray[9][9] = '8';
return spielbrettArray; return spielbrettArray;
} }
public static char[][] getSpielbrettArray() { public char[][] getSpielbrettArray() {
return spielbrettArray; return spielbrettArray;
} }
public static int[] wandelPassendUm(int umwandeln1, int umwandeln2) { public int[] wandelPassendUm(int umwandeln1, int umwandeln2) {
// Erlaubte Koordinaten sind: // Erlaubte Koordinaten sind:
// 3,0 / 4,0 / 5,0 - 3,1 / 4,1 / 5,1 - 3,2 / 4,2 / 5,2 // 3,0 / 4,0 / 5,0 - 3,1 / 4,1 / 5,1 - 3,2 / 4,2 / 5,2
// 0,3 / 1,3 / 2,3 / 3,3 / 4,3 / 5,3 / 6,3 / 7,3 / 8,3 // 0,3 / 1,3 / 2,3 / 3,3 / 4,3 / 5,3 / 6,3 / 7,3 / 8,3

View File

@ -2,10 +2,10 @@ package domain;
public abstract class Spielfigur { public abstract class Spielfigur {
// public abstract boolean isValidMove(String zug); public abstract boolean isValidMove(String zug, Spiel spiel);
public static boolean isValidMove(String zug) { // public static boolean isValidMove(String zug) {
return false; // return false;
} // }
public void moveSpielfigur(String zug) { public void moveSpielfigur(String zug) {

View File

@ -111,9 +111,9 @@ public class Spielsystem {
// vorerst wird es ignoriert das static verlangt wird // vorerst wird es ignoriert das static verlangt wird
public boolean isValidMove(String zug) { public boolean isValidMove(String zug) {
if(aktiverSpieler == true) { if(aktiverSpieler == true) {
return spieler.isValidMove(zug); return spieler.isValidMove(zug, spiel);
} else { } else {
return computer.isValidMove(zug); return computer.isValidMove(zug, spiel);
} }
} }
@ -122,7 +122,7 @@ public class Spielsystem {
} }
public void myMove(String zug) { public void myMove(String zug) {
} }
public void moveSpielfigur(String zug) { public void moveSpielfigur(String zug) {

View File

@ -1,6 +1,5 @@
package main; package main;
import domain.Spiel;
import facade.Spielsystem; import facade.Spielsystem;
import ui.UI; import ui.UI;
@ -8,31 +7,8 @@ public class Main {
@SuppressWarnings("unused") @SuppressWarnings("unused")
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
//Spielsystem spielsystem = new Spielsystem("Hennen und Füchse"); Spielsystem spielsystem = new Spielsystem("Hennen und Füchse");
//UI ui = new UI(spielsystem); UI ui = new UI(spielsystem);
Spiel spiel = new Spiel ("Test");
spiel.generiereSpielbrett();
spiel.printBoard();
String zug = "5,5 5,6";
char startKoordinate1 = zug.charAt(0);
char startKoordinate2 = zug.charAt(2);
char zielKoordinate1 = zug.charAt(4);
char zielKoordinate2 = zug.charAt(6);
int startKoord1 = Character.getNumericValue(startKoordinate1);
int startKoord2 = Character.getNumericValue(startKoordinate2);
int zielKoord1 = Character.getNumericValue(zielKoordinate1);
int zielKoord2 = Character.getNumericValue(zielKoordinate2);
startKoord2 = startKoord2 %8;
System.out.println(startKoord1);
System.out.println(startKoord2);
System.out.println(zielKoord1);
System.out.println(zielKoord2);
} }

View File

@ -133,7 +133,8 @@ public class UI {
int kiLevel = Integer.parseInt(sc.nextLine()); int kiLevel = Integer.parseInt(sc.nextLine());
System.out.println(); System.out.println();
spielsystem.start(werBeginnt, kiLevel); spielsystem.start(werBeginnt, kiLevel);
start(werBeginnt, kiLevel);
} }
@ -164,6 +165,7 @@ public class UI {
System.out.println("Das Startspielbrett sieht wie folgt aus:"); System.out.println("Das Startspielbrett sieht wie folgt aus:");
System.out.println(); System.out.println();
spielsystem.printBoard(); spielsystem.printBoard();
System.out.println();
do { do {
// Zug Henne KI // Zug Henne KI
@ -201,7 +203,7 @@ public class UI {
} }
} while (erfolgreicherZug == false); } while (erfolgreicherZug == false);
spielsystem.getHenne().moveSpielfigur(zug); spielsystem.moveSpielfigur(zug);
zugHenne = false; zugHenne = false;
zugFuchs = true; zugFuchs = true;
} }
@ -226,7 +228,7 @@ public class UI {
} }
} while (erfolgreicherZug == false); } while (erfolgreicherZug == false);
spielsystem.getFuchs().moveSpielfigur(zug); spielsystem.moveSpielfigur(zug);
zugHenne = true; zugHenne = true;
zugFuchs = false; zugFuchs = false;
} }