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] ] } } }