BotHenneEasy und BotFuchsEasy funktionieren
parent
5f34fce221
commit
18e57c9319
|
@ -2,6 +2,6 @@ package domain;
|
|||
|
||||
public abstract class Bot {
|
||||
|
||||
public abstract String zugBestimmen();
|
||||
public abstract String zugBestimmen(Spiel spiel, Spielfigur spielfigur);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +1,51 @@
|
|||
package domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class BotEasyFuchs extends Bot {
|
||||
|
||||
public BotEasyFuchs() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur fuchs) {
|
||||
String zug;
|
||||
char[][] spielbrettArray = spiel.getSpielbrettArray();
|
||||
ArrayList<String> spielfigurExistiert = new ArrayList<>();
|
||||
|
||||
public String zugBestimmen() {
|
||||
for(int i = 0; i < spielbrettArray.length; i++ )
|
||||
{
|
||||
for(int k = 0; k < spielbrettArray[i].length; k++ ){
|
||||
if(spielbrettArray[i][k] == 'O') {
|
||||
spielfigurExistiert.add(i + "," + k);
|
||||
}
|
||||
}
|
||||
|
||||
if(spielfigurExistiert.size() == 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int altY, altX, neuY = 0, neuX = 0;
|
||||
Random rand = new Random();
|
||||
|
||||
return "Ich bins der Einfache Fuchs Bot";
|
||||
do {
|
||||
String random = spielfigurExistiert.get(rand.nextInt(spielfigurExistiert.size()));
|
||||
|
||||
altY = Character.getNumericValue(random.charAt(0));
|
||||
altX = Character.getNumericValue(random.charAt(2));
|
||||
|
||||
do {
|
||||
// neuY = rand.nextInt(((altY + 1) - (altY - 1)) + 1) + (altY - 1);
|
||||
// neuX = rand.nextInt(((altX + 1) - (altX - 1)) + 1) + (altX - 1);
|
||||
|
||||
neuY = rand.nextInt(9);
|
||||
neuX = rand.nextInt(9) + 1;
|
||||
|
||||
} while (neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
|
||||
|
||||
zug = altY + "," + altX + " " + neuY + "," + neuX;
|
||||
|
||||
} while(fuchs.isValidMove(altY, altX, neuY, neuX, spiel) == false);
|
||||
|
||||
return zug;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,40 +5,43 @@ import java.util.Random;
|
|||
|
||||
public class BotEasyHenne extends Bot {
|
||||
|
||||
// muss dann vielleicht noch an die neue Schreibweise des Arrays angepasst werden
|
||||
@Override
|
||||
public String zugBestimmen(Spiel spiel, Hennen henne) {
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur henne) {
|
||||
String zug;
|
||||
char[][] spielbrettArray = Spiel.getSpielbrettArray();
|
||||
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 + ")");
|
||||
spielfigurExistiert.add(i + "," + k);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int altY, altX, neuY = 0, neuX = 0;
|
||||
Random rand = new Random();
|
||||
|
||||
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;
|
||||
altY = Character.getNumericValue(random.charAt(0));
|
||||
altX = Character.getNumericValue(random.charAt(2));
|
||||
|
||||
if(var3 == var1) {
|
||||
var4 = var2 - 1;
|
||||
}
|
||||
zug = "(" + var1 + "," + var2 + ") (" + var3 + "," + var4 + ")";
|
||||
// System.out.println(zug);
|
||||
} while(Hennen.isValidMove(zug) == false);
|
||||
do {
|
||||
neuY = altY;
|
||||
neuX = rand.nextInt(((altX + 1) - (altX - 1)) + 1) + (altX - 1);
|
||||
|
||||
if(neuX == altX) {
|
||||
neuY = altY - 1;
|
||||
}
|
||||
} while (neuX == 0 || neuX == 10 || neuY == -1 || neuY == 9);
|
||||
|
||||
zug = altY + "," + altX + " " + neuY + "," + neuX;
|
||||
|
||||
} while(henne.isValidMove(altY, altX, neuY, neuX, spiel) == false);
|
||||
|
||||
return zug;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ public class BotHardFuchs extends Bot {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String zugBestimmen() {
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur spielfigur) {
|
||||
return "Ich bins der Harte Fuchs Bot";
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ public class BotHardHenne extends Bot {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String zugBestimmen() {
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur spielfigur) {
|
||||
return "Ich bins der Harte Hennen Bot";
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ public class BotMediumFuchs extends Bot {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String zugBestimmen() {
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur spielfigur) {
|
||||
return "Ich bins der Mittlere Fuchs Bot";
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ public class BotMediumHenne extends Bot {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String zugBestimmen() {
|
||||
public String zugBestimmen(Spiel spiel, Spielfigur spielfigur) {
|
||||
return "Ich bins der Mittlere Hennen Bot";
|
||||
}
|
||||
|
||||
|
|
|
@ -53,8 +53,8 @@ public class Spiel {
|
|||
spielbrettArray[2][1] = ' ';
|
||||
spielbrettArray[2][2] = ' ';
|
||||
spielbrettArray[2][3] = ' ';
|
||||
spielbrettArray[2][4] = 'X';
|
||||
spielbrettArray[2][5] = 'X';
|
||||
spielbrettArray[2][4] = '\u25A1';
|
||||
spielbrettArray[2][5] = '\u25A1';
|
||||
spielbrettArray[2][6] = '\u25A1';
|
||||
spielbrettArray[2][7] = ' ';
|
||||
spielbrettArray[2][8] = ' ';
|
||||
|
@ -90,7 +90,7 @@ public class Spiel {
|
|||
spielbrettArray[5][5] = 'X';
|
||||
spielbrettArray[5][6] = 'X';
|
||||
spielbrettArray[5][7] = 'X';
|
||||
spielbrettArray[5][8] = '\u25A1';
|
||||
spielbrettArray[5][8] = 'X';
|
||||
spielbrettArray[5][9] = 'X';
|
||||
|
||||
spielbrettArray[6][0] = '2';
|
||||
|
@ -108,7 +108,7 @@ public class Spiel {
|
|||
spielbrettArray[7][1] = ' ';
|
||||
spielbrettArray[7][2] = ' ';
|
||||
spielbrettArray[7][3] = ' ';
|
||||
spielbrettArray[7][4] = '\u25A1';
|
||||
spielbrettArray[7][4] = 'X';
|
||||
spielbrettArray[7][5] = 'X';
|
||||
spielbrettArray[7][6] = 'X';
|
||||
spielbrettArray[7][7] = ' ';
|
||||
|
|
|
@ -149,8 +149,18 @@ public class Spielsystem {
|
|||
return neueKoordinaten;
|
||||
}
|
||||
|
||||
// Noch falsche Ausgabe vom Zug (Array statt wie bei Eingabe vom Spieler) <---------------------------------------------------------------------
|
||||
public String yourMove() {
|
||||
return ki.zugBestimmen();
|
||||
String zug = ki.zugBestimmen(spiel, computer);
|
||||
|
||||
int neueStartY = Character.getNumericValue(zug.charAt(0));
|
||||
int neueStartX = Character.getNumericValue(zug.charAt(2));
|
||||
int neueZielY = Character.getNumericValue(zug.charAt(4));
|
||||
int neueZielX = Character.getNumericValue(zug.charAt(6));
|
||||
|
||||
computer.moveSpielfigur(neueStartY, neueStartX, neueZielY, neueZielX, spiel);
|
||||
|
||||
return zug;
|
||||
}
|
||||
|
||||
public void myMove(String zug) {
|
||||
|
|
|
@ -178,7 +178,6 @@ public class UI {
|
|||
System.out.println();
|
||||
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||
|
||||
spielsystem.myMove(zug);
|
||||
zugHenne = false;
|
||||
zugFuchs = true;
|
||||
}
|
||||
|
@ -243,7 +242,6 @@ public class UI {
|
|||
System.out.println();
|
||||
System.out.println("Die KI hat folgenden Zug gemacht: " + zug);
|
||||
|
||||
spielsystem.myMove(zug);
|
||||
zugHenne = true;
|
||||
zugFuchs = false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue