From 93234de506b9d988435c0092e2c381edd0e02778 Mon Sep 17 00:00:00 2001 From: Elaine Tsun Date: Wed, 26 Apr 2017 14:55:32 -0400 Subject: [PATCH 1/3] Added bridge feature --- src/CheckersGameState3.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/CheckersGameState3.java b/src/CheckersGameState3.java index 6cb9155..4ab65db 100644 --- a/src/CheckersGameState3.java +++ b/src/CheckersGameState3.java @@ -521,6 +521,23 @@ private boolean isSafe(int pos){ } return false; } + /* feature: bridge pattern*/ + private boolean isBridge(int player){ + if(player == 1){ + if((this.board[0]==1) && (this.board[2]==1){ + return true; + } + } + else if(player == 2){ + if((this.board[32]==2) && this.board[34]==2){ + return true; + } + } + return false; + } + private boolean isTriangle(int player){ + return false; + } public boolean isTerminal(){ return this.actions.size() == 0; From a5dd0196e7e88e5b65cb6c92a40dbb2a5ec19284 Mon Sep 17 00:00:00 2001 From: Elaine Tsun Date: Wed, 26 Apr 2017 15:05:24 -0400 Subject: [PATCH 2/3] fixed bug --- src/CheckersGameState3.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/CheckersGameState3.java b/src/CheckersGameState3.java index 4ab65db..01fa2f7 100644 --- a/src/CheckersGameState3.java +++ b/src/CheckersGameState3.java @@ -522,23 +522,28 @@ private boolean isSafe(int pos){ return false; } /* feature: bridge pattern*/ - private boolean isBridge(int player){ + public boolean isBridge(int player){ if(player == 1){ - if((this.board[0]==1) && (this.board[2]==1){ + if((this.board[0]==1) && (this.board[2]==1)){ return true; } } else if(player == 2){ - if((this.board[32]==2) && this.board[34]==2){ + if((this.board[32]==2) && (this.board[34]==2)){ return true; } } return false; } - private boolean isTriangle(int player){ + /* feature: triangle patter*/ + public boolean isTriangle(int player){ + return false; + } + /* feature: Dog pattern*/ + public boolean isDog(int player){ + return false; } - public boolean isTerminal(){ return this.actions.size() == 0; } From eed31407ef29ae1ed2380528bbceaead4e3e4949 Mon Sep 17 00:00:00 2001 From: savannaos Date: Wed, 26 Apr 2017 15:24:50 -0400 Subject: [PATCH 3/3] end game features started --- src/CheckersGameState3.java | 48 +++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/src/CheckersGameState3.java b/src/CheckersGameState3.java index 01fa2f7..8b5ab63 100644 --- a/src/CheckersGameState3.java +++ b/src/CheckersGameState3.java @@ -430,6 +430,50 @@ else if(this.board[i] == player+2){ features[11] = numOnDiag1(player) + numOnDiag2(player); return features; } + + /* computes feature vector: + [0: piece-ratio, + 1: # of moveable pawns + 2*#of moveable kings + 2: num attacking pieces + 3: central pieces + 4: # pawns on diagonal + 2 * # kings on diagonal + 5: ^ same but for the two smaller diagonals + ] + */ + public double[] getEndGameFeatures(int player){ + double[] features = new double[6]; + double total = 0.0; + double mypieces = 0.0; + for(int i = 0; i