diff options
author | Camil Staps | 2015-02-18 22:06:40 +0100 |
---|---|---|
committer | Camil Staps | 2015-02-18 22:06:40 +0100 |
commit | 137bfd677035ef9dbbe17d24b6366c8f32ac8220 (patch) | |
tree | d3dfa8edf1246994fd564f1bda3af3042fce3dee | |
parent | Updated bot (diff) | |
parent | Fixed process builder (diff) |
Merge branch 'java-engine-dev' into java-bot-dev
-rw-r--r-- | backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java | 7 | ||||
-rw-r--r-- | backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java | 23 |
2 files changed, 25 insertions, 5 deletions
diff --git a/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java b/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java index 73fa1da..6fb9974 100644 --- a/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java +++ b/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java @@ -1,5 +1,6 @@ package nl.camilstaps.botleagues; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -16,10 +17,12 @@ import java.util.Collections; */ public abstract class GameController { - ArrayList<Contestant> contestants; + ArrayList<Contestant> contestants = new ArrayList<>(); - protected void addContestant(String contestant) throws IOException { + protected void addContestant(File directory, String contestant) throws IOException { + System.err.println("Adding " + contestant + " from " + directory.getAbsolutePath()); ProcessBuilder pb = new ProcessBuilder("java", contestant); + pb.directory(directory); contestants.add(new Contestant(pb.start())); } diff --git a/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java b/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java index 528200d..9b486e2 100644 --- a/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java +++ b/backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java @@ -2,6 +2,7 @@ package nl.camilstaps.botleagues; import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; @@ -23,7 +24,8 @@ public class MyGame extends GameController { public MyGame(String[] bots) { try { for (String bot : bots) { - addContestant(bot); + int i = bot.lastIndexOf("/"); + addContestant(new File(bot.substring(0, i + 1)), bot.substring(i + 1)); } scores = new int[bots.length]; @@ -41,20 +43,35 @@ public class MyGame extends GameController { Random rand = new Random(); int n = rand.nextInt(100) + 1; + System.err.println("Contestants have to guess " + n); + try { int[] guesses = new int[contestants.size()]; int i = 0; for (Contestant contestant : contestants) { Process process = contestant.getProcess(); + System.err.print("Asking contestant " + i + "..."); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream())); - writer.write("Guess"); + writer.write("Guess\n"); + writer.flush(); int answer = Integer.parseInt(reader.readLine()); guesses[i++] = Math.abs(n - answer); + System.err.println("he says " + answer + ", that's a " + guesses[i - 1] + " difference."); } - + int lowest = guesses[0]; + for (i = 0; i < guesses.length; i++) { + if (guesses[i] < lowest) { + lowest = guesses[i]; + } + } + for (i = 0; i < guesses.length; i++) { + if (guesses[i] == lowest) { + incrementScore(i); + } + } } catch (IOException e) { } } |