diff options
-rw-r--r-- | GameController/.gitignore (renamed from trunk/GameController/.gitignore) | 0 | ||||
-rw-r--r-- | GameController/src/nl/camilstaps/botleagues/Contestant.java (renamed from trunk/GameController/src/nl/camilstaps/botleagues/Contestant.java) | 0 | ||||
-rw-r--r-- | GameController/src/nl/camilstaps/botleagues/GameController.java (renamed from trunk/GameController/src/nl/camilstaps/botleagues/GameController.java) | 0 | ||||
-rw-r--r-- | trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java | 107 |
4 files changed, 0 insertions, 107 deletions
diff --git a/trunk/GameController/.gitignore b/GameController/.gitignore index 5bda502..5bda502 100644 --- a/trunk/GameController/.gitignore +++ b/GameController/.gitignore diff --git a/trunk/GameController/src/nl/camilstaps/botleagues/Contestant.java b/GameController/src/nl/camilstaps/botleagues/Contestant.java index 77fab8e..77fab8e 100644 --- a/trunk/GameController/src/nl/camilstaps/botleagues/Contestant.java +++ b/GameController/src/nl/camilstaps/botleagues/Contestant.java diff --git a/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java b/GameController/src/nl/camilstaps/botleagues/GameController.java index 1054215..1054215 100644 --- a/trunk/GameController/src/nl/camilstaps/botleagues/GameController.java +++ b/GameController/src/nl/camilstaps/botleagues/GameController.java diff --git a/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java b/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java deleted file mode 100644 index 79a9868..0000000 --- a/trunk/GameController/src/nl/camilstaps/botleagues/MyGame.java +++ /dev/null @@ -1,107 +0,0 @@ -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; -import java.util.Random; - -/** - * The idea is to let this be an example of a game controller. - * Initially, we can do all the work here. Ideally, later, we'll split that up in an abstract part (in GameController) and an extension. - * - * @author Camil Staps <info@camilstaps.nl> - */ -public class MyGame extends GameController { - - /** - * Start the game. In the command line arguments should be descriptions of the bots, as described in @see MyGame() - * - * @param args command line arguments - */ - public static void main(String[] args) { - @SuppressWarnings("unused") - MyGame game = new MyGame(args); - } - - /** - * Start a new game, and do some rounds. Print the winner. - * - * @param bots descriptions of the bots (array of strings). For example: - * - * /home/user/my-bot/com.example.mybot.MyBot - * - * Internally, this will cd to /home/user/my-bot and then execute - * - * java com.example.mybot.MyBot - * - * Arbitrarily many bots can be added - */ - public MyGame(String[] bots) { - try { - for (String bot : bots) { - int i = bot.lastIndexOf("/"); - addContestant(new File(bot.substring(0, i + 1)), bot.substring(i + 1)); - } - - for (int i = 0; i < 10; i++) { - doRound(); - } - System.out.println(getWinner()); - } catch (IOException e) { - System.err.println(e.getMessage()); - } - } - - /** - * Do a round. - * - * Take a number n in mind and let all the contestants guess. The contestants that are the closest to n get a point. - * - * @todo Maximum execution time waiting for a contestant to answer - */ - public void doRound() { - Random rand = new Random(); - int n = rand.nextInt(100) + 1; - - System.err.println("Contestants have to guess " + n); - - try { - // Let each contestant guess - // That means: send "Guess" over stdin to the contestant, and read a number from stdout - 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\n"); - writer.flush(); - - int answer = Integer.parseInt(reader.readLine()); - guesses[i++] = Math.abs(n - answer); - System.err.println("he says " + answer + ", that's " + guesses[i - 1] + " difference."); - } - - // Give every contestant that was the closest a point - 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) { - System.err.println("Point for contestant " + i); - contestants.get(i).setScore(contestants.get(i).getScore() + 1); - } - } - } catch (IOException e) { - // This shouldn't happen. - } - } - -} |