Added readme for completed bot
authorJustin Worthe <justin@worthe-it.co.za>
Mon, 17 Sep 2018 08:05:06 +0000 (10:05 +0200)
committerJustin Worthe <justin@worthe-it.co.za>
Mon, 17 Sep 2018 08:05:06 +0000 (10:05 +0200)
I also had to remove the readme that had been hanging around from the
sample bot.

README.md [deleted file]
license.org [new file with mode: 0644]
readme.org [new file with mode: 0644]

diff --git a/README.md b/README.md
deleted file mode 100644 (file)
index 0b97c14..0000000
--- a/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Rust Sample Bot
-
-Rust is a systems programming language, giving programmers the low
-level control that they would usually associate with a programming
-langauge like C or C++, but modern high level programming features.
-
-Rust is a compiled language, which compiles to an
-architecture-specific binary.
-
-For getting started with this bot in particular, I've done a write up
-about [writing a Rust bot for the Entelect challenge](https://www.worthe-it.co.za/programming/2018/05/02/writing-an-entelect-challenge-bot-in-rust.html).
-
-## Environment Setup
-
-The Rust compiler toolchain can be downloaded from the Rust project
-website.
-
-https://www.rust-lang.org/en-US/install.html
-
-## Compilation
-
-The bot can be built using the Rust build tool, Cargo. For the sake of
-the competition, the `--release` flag should be used.
-
-```
-cargo build --release
-```
-
-## Running
-
-After compilation, there will be an executable in
-`target/release/`.
-
-For example, this sample bot's name is
-`entelect_challenge_rust_sample`, so the executable to be run is
-`target/release/entelect_challenge_rust_sample` on Linux or
-`target/release/entelect_challenge_rust_sample.exe` on Windows.
-
diff --git a/license.org b/license.org
new file mode 100644 (file)
index 0000000..d643604
--- /dev/null
@@ -0,0 +1,22 @@
+* The MIT License
+
+Copyright 2018 Justin Worthe
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/readme.org b/readme.org
new file mode 100644 (file)
index 0000000..e947202
--- /dev/null
@@ -0,0 +1,52 @@
+* Entelect Challenge 2018 - Tower Defence - Rustbot
+
+This is the source code for my [[https://challenge.entelect.co.za/][Entelect Challenge]] 2018 bot. It did
+really well, coming in 3rd place in the finals.
+
+** How does it work?
+
+I've put together a blog post with the high level overview of how I
+got to this point and how it works [[https://www.offerzen.com/blog/coding-for-the-win-how-i-built-a-tower-defence-bot][here]]. I will be putting up more
+articles diving into the details shortly.
+
+The short explanation is that it's a Monte Carlo Tree Search. All
+possible moved I can make from the first state are generated. I then
+iterate through the list of possible moved and play random games that
+start with that move. The move that statistically wins the most random
+games is taken as the best move.
+
+** Environment Setup
+
+The Rust compiler tool-chain can be downloaded from the Rust project
+website.
+
+https://www.rust-lang.org/en-US/install.html
+
+** Compilation
+
+The bot is written in Rust, and compiled using Cargo. For the sake of
+running the bot in the tournament, you have to compile using the
+~--release~ flag (this is specified in [[./bot.json]]).
+
+#+BEGIN_SRC shell
+    cargo build --release
+#+END_SRC
+
+After compilation, there will be an executable in ~target/release/~.
+
+** Other useful commands
+
+You can find other interesting commands that I used in writing the bot
+in the [[./Makefile]]. Some notable ones are:
+
+- ~make bench~: compiles with the benchmarking feature turned on, and
+  runs my end to end benchmark.
+- ~make profile~: similar to the benchmark, but runs single threaded,
+  for a longer time, and uses ~perf~ to gather statistics on the run.
+- ~make submission.zip~: Creates the zip file to upload to the
+  Entelect Challenge servers.
+
+** License
+
+See [[./license.org]]
+