From fb63957bc4d44d9f96b62413be2b40005b26e8b8 Mon Sep 17 00:00:00 2001 From: Sailesh Date: Wed, 19 Apr 2017 21:27:50 -0400 Subject: [PATCH] Implement evaluator that reads weights from file and returns value --- src/BaseEvaluator.java | 29 +++++++++++++++++++++++++++++ src/CheckersGameState.java | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/BaseEvaluator.java diff --git a/src/BaseEvaluator.java b/src/BaseEvaluator.java new file mode 100644 index 0000000..ed9c388 --- /dev/null +++ b/src/BaseEvaluator.java @@ -0,0 +1,29 @@ + +public class BaseEvaluator implements Evaluator{ + + WeightsParser wp; + String file; + double[] weights; + + public BaseEvaluator(String file){ + this.wp = new WeightsParser(); + this.file = file; + this.weights = this.wp.getWeights(file); + } + + private double dot(double[] a1, double[] a2){ + double res = 0; + for(int i = 0; i < a1.length; i++){ + res += (a1[i] * a2[i]); + } + return res; + } + + public double evaluate(CheckersGameState s, int player){ + double[] params = s.getFeatures(player); + return dot(this.weights, params); + } + + +} + diff --git a/src/CheckersGameState.java b/src/CheckersGameState.java index 1c3210f..fd1cca3 100644 --- a/src/CheckersGameState.java +++ b/src/CheckersGameState.java @@ -5,4 +5,5 @@ public interface CheckersGameState { CheckersGameState result ( Move x ); boolean isTerminal(); void printState (); +public double[] getFeatures(int player); }