diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2018-09-17 10:05:06 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2018-09-17 10:05:06 +0200 |
commit | f9b39be53174f76ac7bc32ce1fd4d52d4773e056 (patch) | |
tree | 8beb078ab13be495f38216cb1d535ac2c984c2a0 | |
parent | aa0ac38266f4427727f58368958cf563513ac3ae (diff) |
Added readme for completed bot
I also had to remove the readme that had been hanging around from the
sample bot.
-rw-r--r-- | README.md | 38 | ||||
-rw-r--r-- | license.org | 22 | ||||
-rw-r--r-- | readme.org | 52 |
3 files changed, 74 insertions, 38 deletions
diff --git a/README.md b/README.md deleted file mode 100644 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 index 0000000..d643604 --- /dev/null +++ b/license.org @@ -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 index 0000000..e947202 --- /dev/null +++ b/readme.org @@ -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]] + |