From 1c14746c37ae2347b4c91849a534fcb2d3ad4f24 Mon Sep 17 00:00:00 2001 From: Joe Sweeney Date: Tue, 2 May 2017 12:58:45 -0400 Subject: [PATCH] Final parameters set --- src/CheckersAI.java | 3 +++ src/RmCheckersClient.java | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/CheckersAI.java b/src/CheckersAI.java index 14647ac..ff29d56 100644 --- a/src/CheckersAI.java +++ b/src/CheckersAI.java @@ -56,6 +56,9 @@ public class CheckersAI{ double check; Move max = null; for(Move a: s.actions()){ + if(s.actions().size() == 1) { + return a; + } check = minValue(s.result(a), alpha, beta, depth + 1, a.isJump(), min_ply); if(check > v){ v = check; diff --git a/src/RmCheckersClient.java b/src/RmCheckersClient.java index d70078a..7a87205 100644 --- a/src/RmCheckersClient.java +++ b/src/RmCheckersClient.java @@ -55,7 +55,7 @@ public class RmCheckersClient { public RmCheckersClient(){ _socket = openSocket(); //e = new Evaluator00(); - e = new BaseEvaluator("weights/beta-history.csv"); + e = new BaseEvaluator("weights/beta.csv"); endEval = new EndEvaluator("../src/weights/endbeta.csv"); currentState = new CheckersGameState3(); user = _user1; @@ -152,10 +152,10 @@ public class RmCheckersClient { } public void playGame(int player) { - int minPly = 10; - int maxPly = 13; + int minPly = 8; + int maxPly = 8; boolean switched = false; - int time = 180; + int time = 150; try { String msg = readAndEcho(); // initial message if(player == 1) { // black @@ -170,7 +170,9 @@ public class RmCheckersClient { if(currentState.isEndGame() && !switched){ minPly = maxPly; switched = true; - ai.eval = endEval; + if(currentState.pieceRatio(player) < 0.5){ + ai.eval = endEval; + } } if(time < 30) { minPly = 8; @@ -194,11 +196,11 @@ public class RmCheckersClient { break; } msg = readAndEcho(); // move query - time = parseTime(msg); if(msg.contains("Result")) { System.out.println("Done."); break; } + time = parseTime(msg); } } catch (IOException e) { System.out.println("Failed in read/close");