From 687dae3593eccdb9f0f47d93cf766aadeee67335 Mon Sep 17 00:00:00 2001 From: savannaos Date: Sun, 30 Apr 2017 14:23:00 -0400 Subject: [PATCH] trying new features and weights --- src/CheckersAI.java | 1 + src/CheckersGameState3.java | 46 +-- src/weights/alpha.csv | 670 +++++++++++++++++----------------- src/weights/alpha_old.csv | 483 +++++++++++++++++++++++++ src/weights/beta.csv | 5 +- src/weights/beta_old.csv | 4 + src/weights/endalpha.csv | 692 ++++++++++++++++++++++++++++++++++++ src/weights/endbeta.csv | 4 +- 8 files changed, 1544 insertions(+), 361 deletions(-) create mode 100644 src/weights/alpha_old.csv create mode 100644 src/weights/beta_old.csv diff --git a/src/CheckersAI.java b/src/CheckersAI.java index 892af3d..14647ac 100644 --- a/src/CheckersAI.java +++ b/src/CheckersAI.java @@ -1,5 +1,6 @@ import java.util.Arrays; +/* holds minimax code */ public class CheckersAI{ diff --git a/src/CheckersGameState3.java b/src/CheckersGameState3.java index bcfa0aa..8064cf7 100644 --- a/src/CheckersGameState3.java +++ b/src/CheckersGameState3.java @@ -2,6 +2,10 @@ import java.util.List; import java.util.LinkedList; import java.util.ArrayList; +/* Holds board state code for + identifying available moves, + resultant states, and board + attributes */ public class CheckersGameState3 implements CheckersGameState{ int player; @@ -387,22 +391,22 @@ public class CheckersGameState3 implements CheckersGameState{ return sum; } + private boolean isCentral(int i){ + return i == 10 || i == 11 || i == 14 || i == 15 || i == 19 || i == 20 || i == 23 || i ==24; + } + /* computes feature vector: [0: piece-ratio, - 1: loners, //toss? - 2: safes, /toss? - 3: 1*#pawns+ 2*#kings //toss? + 1: loners, + 2: safes, + 3: bridge pattern 4: # of moveable pawns + 2*#of moveable kings 5: aggregate distance of all pawns to promotion line 6: promotion line opening 7: num defending pieces - 8: num attacking pieces + 8: num attacking pieces //toss? 9: central pieces 10: # pawns on diagonal + 2 * # kings on diagonal - 11: ^ same but for the two smaller diagonals - 12: bridge pattern TODO!!! - 13: triangle pattern TODO - 14: dog pattern TODO, also take out useless features ] */ private boolean king(int piece){ @@ -410,47 +414,43 @@ public class CheckersGameState3 implements CheckersGameState{ } public double[] getFeatures(int player){ - double[] features = new double[12]; + double[] features = new double[11]; double total = 0.0; double mypieces = 0.0; for(int i = 0; i