type layout = string * string listtype dir = | Up| Down| Left| Right
val delta : dir -> int * inttype cycle = {col : int;row : int;dir : dir;wanted : dir;mark : char;corners : (int * int) list;alive : bool;energy : int;boosting : bool;
}type round = {arena : Tilemap.t;cycles : cycle list;over : int list option;pause : int;frames : int;
}type brain = | Room of int| Search of int
type settings = {riders : int;humans : int;brain : brain;arenas : layout list;
}type game = {round : round;scores : int list;settings : settings;round_no : int;
}type scene = | Title| Playing of game| Winner of game
val initial_model : modelval winner : game -> int optionval room : Tilemap.t -> (int * int) -> int -> intval voronoi : ((int * int) -> bool) -> (int * int) -> (int * int) -> int