# # This ant won't leave the hill # He just looks for food on EDGE_MARKER, and if found picks # it up and runs it to the middle of the hill # fooddrop_marker is where to drop food # top: Goto @find_edge # go straight until you see an edge, then turn left find_edge_left: Turn Left PASS find_edge: Type 2 Sense Ahead @done_find_edge PASS Marker $edge_marker Move @find_edge @find_edge_left done_find_edge: # turn left until no marker Turn Left PASS Sense Ahead @done_find_edge @walk_first_edge Marker $edge_marker walk_first_edge: # walk the first edge to put us in a good state Sense Ahead @walk_first_edge_finish PASS Marker $edge_marker Move @walk_first_edge @walk_first_edge walk_first_edge_finish: # turn left until no marker Turn Left PASS Sense Ahead @walk_first_edge_finish @walk_edge Marker $edge_marker enter_hill_turn: Turn Left @enter_hill enter_hill: # turn until we are facing a non-edge piece of the hill Sense Ahead @enter_hill_turn PASS Marker $edge_marker Sense Ahead PASS @enter_hill_turn Home Move @find_edge REPEAT # keep the edge on our right, and if we see food there grab it walk_edge: beg_walk_edge0: # do some error checking Sense Here @enter_hill PASS Marker $edge_marker # done error checking Sense RightAhead PASS @beg_walk_edge1 Food Turn Right PASS Move PASS REPEAT PickUp PASS PASS Turn Left PASS Turn Left @goto_center beg_walk_edge1: Move PASS REPEAT Sense RightAhead PASS @beg_walk_edge2 Food Turn Right PASS Move PASS REPEAT PickUp PASS PASS Turn Left PASS Turn Left @goto_center beg_walk_edge2: Move PASS REPEAT Sense RightAhead PASS @end_walk_edge0 Food Turn Right PASS Move PASS REPEAT PickUp PASS PASS Turn Left PASS Turn Left PASS Turn Left @goto_center end_walk_edge0: Move PASS REPEAT Sense RightAhead PASS @end_walk_edge1 Food Turn Right PASS Move PASS REPEAT PickUp PASS PASS Turn Left PASS Turn Left PASS Turn Left @goto_center end_walk_edge1: Move PASS REPEAT Sense RightAhead PASS @walk_edge_done Food Turn Right PASS Move PASS REPEAT PickUp PASS PASS Turn Left PASS Turn Left PASS Turn Left @goto_center walk_edge_done: Turn Left @beg_walk_edge0 goto_center_spin: Turn Left PASS Turn Left PASS Flip 2 @goto_center PASS Turn Left @goto_center goto_center: # move until we see it Sense Ahead @hit_center PASS Marker $fooddrop_marker Sense Ahead @goto_center_spin PASS Marker $edge_marker Move @goto_center REPEAT hit_center: # see if we found the entrance Sense Ahead PASS @found_entrance Friend # nope, turn until we are paralell hit_center_turn: Turn Right PASS Sense Ahead @hit_center_turn PASS Marker $fooddrop_marker Move PASS REPEAT hit_center_turn2: Turn Left PASS Sense Ahead @goto_center @hit_center_turn2 Marker $fooddrop_marker found_entrance: Move PASS @flee_center # are we hitting it straight on? Sense Ahead PASS @enter_center Friend Sense LeftAhead PASS @enter_center_l Friend Sense RightAhead PASS @enter_center_r Friend # strange Goto @goto_center enter_center_l: Turn Left @enter_center enter_center_r: Turn Right @enter_center enter_center: Move PASS @flee_center Drop PASS Print ("Food in center",board[ant.pos]['food']) Turn Around @find_edge flee_center: Turn Around PASS Move PASS PASS Move PASS PASS Move PASS PASS Turn Around PASS Sleep 30 Move PASS PASS Move PASS PASS Move PASS PASS Move PASS PASS Move PASS PASS Move PASS PASS Goto @goto_center dummy: Type 6 Sleep 1 Goto @dummy spin: include spin.part Goto @find_edge go_center: # we should hit the center if we go straight ... should Move REPEAT REPEAT