diff options
author | Peter Ward <peteraward@gmail.com> | 2012-07-19 20:10:40 +1000 |
---|---|---|
committer | Peter Ward <peteraward@gmail.com> | 2012-07-19 20:10:40 +1000 |
commit | 3288b71967a6baf2ae77faeb244bc2332484e8d4 (patch) | |
tree | dc351d7c766f73b6e43798b477cfb8970bdb6108 /README | |
parent | 93ba106c94b7a2d2109842432fed3dbe920c3558 (diff) |
Add packaging.
Diffstat (limited to 'README')
-rw-r--r-- | README | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -0,0 +1,86 @@ +How to write a bot +================== + +guarantee code indicates something you can run which will execute without errors +if "input" refers to a valid board. + +input = { + # the object you control + + # guarantee code: + # me = input["whoami"] + # my = input["objects"][me] + # assert my["type"] == "snake" + # (see below for more guarantees) + + "whoami": "a", + + # the board is by a torus by default (wraps around horiz & vert), + # but maps will have walls on all the edges to disable this. + + # guarantee code: + # for row in input["board"]: + # for item in row: + # assert item in input["objects"] + + "board": [ + ["W", "W", "W", "W", "W", "W"], + ["W", " ", "*", " ", " ", "W"], + ["W", "a", " ", "b", "b", "W"], + ["W", " ", " ", " ", " ", "W"], + ["W", "W", "W", "W", "W", "W"] + ], + + # each object refers to a type of "thing" which can be in the board. + + # guarantee code: + # for key, thing in input["objects"].items(): + # if thing["type"] == "snake": + # assert "valid_moves" in thing + # x, y = thing["head"] + # assert input["board"][y][x] == key + # elif thing["type"] == "special": + # for effect in thing["effects"]: + # assert effect[0] in ("die", "grow") + # else: + # raise TypeError("invalid thing type") + + "objects": { + "a": { + "type": "snake", + "head": [1, 2], + "valid_moves": { + "L": [0, 2], + "R": [2, 2], + "U": [1, 1], + "D": [1, 3] + } + }, + + "b": { + "type": "snake", + "head": [4, 2], + "valid_moves": { + "L": [3, 2], + "R": [5, 2], + "U": [4, 1], + "D": [4, 3] + } + }, + + "W": { + "type": "special", + "effects": [ + ["die"] + ] + }, + + "*": { # represents an apple + "type": "special", + "effects": [ + ["grow", 1] + ] + } + } +} + |