aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java7
-rw-r--r--backyard/java/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java23
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) {
}
}