25
7
This was inspired by a Minecraft mini-game. The rules are pretty simple: you run and jump around, and every block you step on disappears once you've stepped on it. The goal is to be the last one left.
Your bot should be a complete program. It should accept input as a command line argument. The input will be a map of the "world"; here is an example:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxx x xxxxxxxxxxxxx@xxxxxxxxxxx
xxxxxx1xxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxxxxx x x xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxx xxx xx3xxxxxxxxxx
xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
xxxxxxxxxxxxxxxxxxxxxxxxxxx xx
xxxxxxxxxxxxxxxxxxxxxxxxx 2
xxxxxxxxxxxxxxxxxxxxxxx
The legend is as follows:
x: solid block
: empty air
@: your bot
1,2,3,4,5,6,7,8,9,0: other bots
Your bot should output your move as a pair of integers. Example: -1, 2
will move 1 block to the left and 2 blocks down (coordinates origin is in the top left corner).
You may move up to four blocks, manhattan distance, from your current location. If you try to move further than that, the move is invalid. Any move that would move you past the edge will put you on the edge instead. Invalid moves will be ignored.
Once you land on a block it is removed; if you remain on the same block next turn you will fall. Two bots may land on the same block on the same turn and both survive; if this happens, both bots will only see themselves and not the other bot.
If you need to store files for persistence, please do so in a folder with the name of your bot. You may not read other bots' persistent data if any exists.
The match controller is available at https://paste.ee/p/Xf65d.
Please use languages that can be run on a standard Linux or OSX install.
Current results (100 rounds):
JumpBot 31
LookBot 27
ShyBot 26
Slow Bot 15
KnightBot 2
Moat Builder 0
UpBot 0
Random Bot 0
Similar, although a key difference here is that you can "jump" several blocks - thus you can't simply block someone in if they see what you're doing. – Skyler – 2016-05-03T18:40:44.503
you can't close as a dupe in the sandbox and I don't think it is quite one – Blue – 2016-05-03T18:41:49.913
1Are the moves simultaneous or sequential? Is the input really a newline-containing string as a command line argument? – feersum – 2016-05-03T23:06:41.183
1I would suggest calling the bot once without a world for initialization (you don't know if your state saved as file is from last round or from this round) – bauen1 – 2016-05-04T13:59:09.227
@feersum moves are simultaneous; the input is indeed a newline-containing command line argument. If you need it as stdin instead, let me know and I could probably modify the contoller to allow for either. – Skyler – 2016-05-04T14:09:11.350
"The goal is to be the last one left." How do any of the bots disappear? – flawr – 2016-05-04T16:04:36.403
@flawr if a bot lands on an empty space (or sits on a space for more than one turn) it is removed from the game. – Skyler – 2016-05-04T16:40:43.927
@bauen1 I check whether there are any spaces on the field yet, because there won't be any on the first round. – taixzo – 2016-05-05T19:56:07.193
@Skyler could you update the controller? (to include all bots and that i can get the same results as you) – bauen1 – 2016-05-07T09:26:07.563
@bauen1 updated! – Skyler – 2016-05-10T15:03:52.073
Are additional entries still permitted? – Rohan Jhunjhunwala – 2016-07-10T00:46:12.620
@RohanJhunjhunwala Yes, I will re-run the tournament with any new entries – Skyler – 2016-07-11T18:27:51.823