diff --git a/src/CheckersGameState3.java b/src/CheckersGameState3.java index aefb6e2..a78d660 100644 --- a/src/CheckersGameState3.java +++ b/src/CheckersGameState3.java @@ -130,7 +130,7 @@ public class CheckersGameState3 implements CheckersGameState{ if(this.player == 1){ return "black"; } - else{ + else{ //this.player == 2 return "white"; } } @@ -173,6 +173,20 @@ public class CheckersGameState3 implements CheckersGameState{ return (valid_square(orig + delta) && empty(board, orig + delta)); } + private boolean pawn_can_move(int index){ + int delta = 1; //black + if(player == 2) delta = -1; //white + return (valid_square(index+(delta*4)) && empty(board, index+(delta*4))) || + (valid_square(index+(delta*5)) && empty(board, index+(delta*5))) + } + + private boolean king_can_move(int index){ + return (valid_square(index+4) && empty(board, index+4)) || + (valid_square(index+5) && empty(board, index+5)) || + (valid_square(index-4) && empty(board, index-4)) || + (valid_square(index-5) && empty(board, index-5)) + } + private boolean can_jump(int orig, int delta, int[] board){ return (can_kill(orig+delta, board) && valid_square(orig + (2 * delta)) && empty(board, orig + 2 * delta)); } @@ -315,6 +329,7 @@ public class CheckersGameState3 implements CheckersGameState{ } } + /* does the piece belongs to the given player */ public boolean myPiece(int i, int player){ if(i == player || i == player +2){ return true; @@ -322,33 +337,60 @@ public class CheckersGameState3 implements CheckersGameState{ else{ return false; } - ///if(this.player == 1 && i == 1 || this.player == 1 && i == 3) //black - /// return true; - ///if(this.player == 0 && i == 2 || this.player == 0 && i == 4) //white - /// return true; - ///else return false; } - + //remove this method once getFeatures is up and running public double pieceRatio(int player){ double total = 0.0; double mypieces = 0.0; for(int i = 0; i