diff --git a/.classpath b/.classpath deleted file mode 100644 index f59b875..0000000 --- a/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/.gitignore b/.gitignore index 32858aa..a6f89c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1 @@ -*.class - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +/target/ \ No newline at end of file diff --git a/.project b/.project deleted file mode 100644 index 80bcd16..0000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Warlight2_public - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/README.md b/README.md index d992179..e4f12eb 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,57 @@ warlight2-engine -============ +================ This is the game engine for Warlight AI Challenge 2 at theaigames.com This version of our Warlight AI Challenge 2 engine has been set up for local use, for your own convenience. Note that this does *not* include the map generator and the visualizer. -To compile (Windows, untested): +Usage +----- - cd [project folder] - dir /b /s *.java>sources.txt - md classes - javac -d classes @sources.txt -cp lib/java-json.jar - del sources.txt +### Download -To compile (Linux): +You can download the latest version of the Warlight2 Engine here: [warlight2-engine-1.0.0.jar](https://github.com/theaigames/warlight2-engine/releases/download/v1.0.0/warlight2-engine-1.0.0.jar). Find the all downloads (including older versions) on the [release page](https://github.com/theaigames/warlight2-engine/releases). - cd [project folder] - mkdir bin/ - javac -sourcepath src/ -d bin/ -cp lib/java-json.jar `find src/ -name '*.java' -regex '^[./A-Za-z0-9]*$'` - -To run: +#### Running the jar - cd [project folder] - java -cp lib/java-json.jar:bin com.theaigames.game.warlight2.Warlight2 [map file] [your bot1] [your bot2] 2>err.txt 1>out.txt +The downloaded `.jar` file is easily run on any OS with the Java Virtual Machine (JVM) installed with the following: -[map file] is a file that contains a string representation of the map that the game will use. An example is included in this repository called "example-map.txt". For other maps, go to any Warlight AI Challenge 2 game on theaigames.com and add "/map" to the end of the URL and copy that text to a file. +``` +java -jar warlight2-engine-1.0.0.jar [map file] [your bot1] [your bot2] 2>err.txt 1>out.txt +``` -[your bot1] and [your bot2] could be any command for running a bot process. For instance "java -cp /home/dev/starterbot/bin/ main.BotStarter" or "node /home/user/bot/Bot.js" +- `[map file]` is a file that contains a string representation of the map that the game will use. An example is included in this repository called `example-map.txt`. For other maps, go to any Warlight AI Challenge 2 game on theaigames.com and add `/map` to the end of the URL and copy that text to a file. +- `[your bot1]` and `[your bot2]` could be any command for running a bot process. For instance `java -cp /home/dev/starterbot/bin/ main.BotStarter` or `node /home/user/bot/Bot.js` -Errors will be logged to err.txt, output dump will be logged to out.txt. +Errors will be logged to `err.txt`, output dump will be logged to `out.txt`. + +### Build from source + +#### Getting the source + +If you have `git` installed the easiest way to get the source is to clone the repository: + +``` +git clone https://github.com/theaigames/warlight2-engine +``` + +Alternatively, you can download the repository as a [zip](https://github.com/theaigames/warlight2-engine/archive/master.zip) or [tar.gz](https://github.com/theaigames/warlight2-engine/archive/master.tar.gz) and extract using the appropriate tools for your OS. + +#### Compiling the source + +Compilation is made simple regardless of platform through [maven](https://maven.apache.org). As long as you have [maven installed](https://maven.apache.org/download.cgi), you should be able to build it with the following: + +``` +cd warlight2-engine +mvn build +``` + +#### Running compiled jar + +After building from source, the output file will be in the `target` folder. To run you need to do the following command: + +``` +java -jar target/warlight2-engine-1.0.0-jar-with-dependencies.jar [map file] [your bot1] [your bot2] 2>err.txt 1>out.txt +``` + +For information on the run arguments, see [Run Section](#running-the-jar) diff --git a/lib/java-json.jar b/lib/java-json.jar deleted file mode 100644 index 2f211e3..0000000 Binary files a/lib/java-json.jar and /dev/null differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..59f5d7a --- /dev/null +++ b/pom.xml @@ -0,0 +1,57 @@ + + + 4.0.0 + com.theaigames + warlight2-engine + 1.0.0 + jar + + UTF-8 + 1.7 + 1.7 + + + + org.json + json + 20141113 + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + com.theaigames.game.warlight2.Warlight2 + + + + + + maven-assembly-plugin + + + + com.theaigames.game.warlight2.Warlight2 + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + + diff --git a/src/com/theaigames/engine/Engine.java b/src/main/java/com/theaigames/engine/Engine.java similarity index 100% rename from src/com/theaigames/engine/Engine.java rename to src/main/java/com/theaigames/engine/Engine.java diff --git a/src/com/theaigames/engine/Logic.java b/src/main/java/com/theaigames/engine/Logic.java similarity index 100% rename from src/com/theaigames/engine/Logic.java rename to src/main/java/com/theaigames/engine/Logic.java diff --git a/src/com/theaigames/engine/io/BotCommunication.java b/src/main/java/com/theaigames/engine/io/BotCommunication.java similarity index 100% rename from src/com/theaigames/engine/io/BotCommunication.java rename to src/main/java/com/theaigames/engine/io/BotCommunication.java diff --git a/src/com/theaigames/engine/io/IOPlayer.java b/src/main/java/com/theaigames/engine/io/IOPlayer.java similarity index 100% rename from src/com/theaigames/engine/io/IOPlayer.java rename to src/main/java/com/theaigames/engine/io/IOPlayer.java diff --git a/src/com/theaigames/engine/io/InputStreamGobbler.java b/src/main/java/com/theaigames/engine/io/InputStreamGobbler.java similarity index 100% rename from src/com/theaigames/engine/io/InputStreamGobbler.java rename to src/main/java/com/theaigames/engine/io/InputStreamGobbler.java diff --git a/src/com/theaigames/game/warlight2/IncorrectPlayerCountException.java b/src/main/java/com/theaigames/game/warlight2/IncorrectPlayerCountException.java similarity index 100% rename from src/com/theaigames/game/warlight2/IncorrectPlayerCountException.java rename to src/main/java/com/theaigames/game/warlight2/IncorrectPlayerCountException.java diff --git a/src/com/theaigames/game/warlight2/MapCreator.java b/src/main/java/com/theaigames/game/warlight2/MapCreator.java similarity index 100% rename from src/com/theaigames/game/warlight2/MapCreator.java rename to src/main/java/com/theaigames/game/warlight2/MapCreator.java diff --git a/src/com/theaigames/game/warlight2/Parser.java b/src/main/java/com/theaigames/game/warlight2/Parser.java similarity index 100% rename from src/com/theaigames/game/warlight2/Parser.java rename to src/main/java/com/theaigames/game/warlight2/Parser.java diff --git a/src/com/theaigames/game/warlight2/Player.java b/src/main/java/com/theaigames/game/warlight2/Player.java similarity index 100% rename from src/com/theaigames/game/warlight2/Player.java rename to src/main/java/com/theaigames/game/warlight2/Player.java diff --git a/src/com/theaigames/game/warlight2/Processor.java b/src/main/java/com/theaigames/game/warlight2/Processor.java similarity index 100% rename from src/com/theaigames/game/warlight2/Processor.java rename to src/main/java/com/theaigames/game/warlight2/Processor.java diff --git a/src/com/theaigames/game/warlight2/Warlight2.java b/src/main/java/com/theaigames/game/warlight2/Warlight2.java similarity index 100% rename from src/com/theaigames/game/warlight2/Warlight2.java rename to src/main/java/com/theaigames/game/warlight2/Warlight2.java diff --git a/src/com/theaigames/game/warlight2/map/Map.java b/src/main/java/com/theaigames/game/warlight2/map/Map.java similarity index 100% rename from src/com/theaigames/game/warlight2/map/Map.java rename to src/main/java/com/theaigames/game/warlight2/map/Map.java diff --git a/src/com/theaigames/game/warlight2/map/Region.java b/src/main/java/com/theaigames/game/warlight2/map/Region.java similarity index 100% rename from src/com/theaigames/game/warlight2/map/Region.java rename to src/main/java/com/theaigames/game/warlight2/map/Region.java diff --git a/src/com/theaigames/game/warlight2/map/SuperRegion.java b/src/main/java/com/theaigames/game/warlight2/map/SuperRegion.java similarity index 100% rename from src/com/theaigames/game/warlight2/map/SuperRegion.java rename to src/main/java/com/theaigames/game/warlight2/map/SuperRegion.java diff --git a/src/com/theaigames/game/warlight2/move/AttackTransferMove.java b/src/main/java/com/theaigames/game/warlight2/move/AttackTransferMove.java similarity index 100% rename from src/com/theaigames/game/warlight2/move/AttackTransferMove.java rename to src/main/java/com/theaigames/game/warlight2/move/AttackTransferMove.java diff --git a/src/com/theaigames/game/warlight2/move/Move.java b/src/main/java/com/theaigames/game/warlight2/move/Move.java similarity index 100% rename from src/com/theaigames/game/warlight2/move/Move.java rename to src/main/java/com/theaigames/game/warlight2/move/Move.java diff --git a/src/com/theaigames/game/warlight2/move/MoveQueue.java b/src/main/java/com/theaigames/game/warlight2/move/MoveQueue.java similarity index 100% rename from src/com/theaigames/game/warlight2/move/MoveQueue.java rename to src/main/java/com/theaigames/game/warlight2/move/MoveQueue.java diff --git a/src/com/theaigames/game/warlight2/move/MoveResult.java b/src/main/java/com/theaigames/game/warlight2/move/MoveResult.java similarity index 100% rename from src/com/theaigames/game/warlight2/move/MoveResult.java rename to src/main/java/com/theaigames/game/warlight2/move/MoveResult.java diff --git a/src/com/theaigames/game/warlight2/move/PlaceArmiesMove.java b/src/main/java/com/theaigames/game/warlight2/move/PlaceArmiesMove.java similarity index 100% rename from src/com/theaigames/game/warlight2/move/PlaceArmiesMove.java rename to src/main/java/com/theaigames/game/warlight2/move/PlaceArmiesMove.java