commit
5d957c47fe
|
@ -49,7 +49,7 @@ public class MalteAI implements Player{
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setEnemyID(int id) {
|
||||
public void setEnemyID(int enemyID) {
|
||||
this.enemyID = enemyID;
|
||||
}
|
||||
|
||||
|
@ -66,17 +66,19 @@ public class MalteAI implements Player{
|
|||
// Get options which would lead to instant win.
|
||||
Set<Integer> winningOptions = getRowCompletionOptions(options, board, id);
|
||||
for (Integer i: winningOptions) {
|
||||
// System.out.println("Choose to win");
|
||||
return i.intValue();
|
||||
}
|
||||
// Get options which would prevent an instant win of the enemy.
|
||||
enemyID = enemyID == 0 ? 1: enemyID;
|
||||
Set<Integer> preventionsOptions = getRowCompletionOptions(options, board, enemyID);
|
||||
for (Integer i: preventionsOptions) {
|
||||
// System.out.println("Choose to prevent");
|
||||
return i.intValue();
|
||||
}
|
||||
// Choose a move that will continue a sequence that already exists.
|
||||
Set<Integer> twoOfFour = getTwoOfFourOptions(options, board, id);
|
||||
for (Integer i: twoOfFour) {
|
||||
// System.out.println("Choose to progress");
|
||||
return i.intValue();
|
||||
}
|
||||
// Choose a move that will not lead to an instant win of the enemy
|
||||
|
@ -86,10 +88,12 @@ public class MalteAI implements Player{
|
|||
choosewisely.remove(i);
|
||||
int[][] fakeBoard = makeMove(copyBoard(board), i, id);
|
||||
if (getRowCompletionOptions(options, fakeBoard, enemyID).size() == 0) {
|
||||
// System.out.println("Choose random but smart");
|
||||
return i.intValue();
|
||||
}
|
||||
}
|
||||
// If nothing applies, take a random valied one.
|
||||
// System.out.println("Choose random and stupid");
|
||||
return takeRandom(options).intValue();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue