START Mark 0 RANDM ; at start, we wanna send ants in random directions RANDM Flip 2 EXP1 ArrowRW ; 50% chance of becoming a gatherer or explorer EXP1 Flip 8 CHNG1 WALK1 ; Explorer will walk, 1/6 prob chg dir CHNG1 Flip 2 GOR1 GOL1 ; 50% chance of going left, or right... GOR1 Turn Right WALK1 ; Turn right, and continue to walk GOL1 Turn Left WALK1 ; Turn left, and continue to walk WALK1 Move DOMRK1 CHNG1 ; Actual walking; go ahead & mark, if blocked chg dir DOMRK1 Sense Ahead RotBkTA a1 Marker 0 a1 Sense Ahead RotBkTA a2 Marker 1 a2 Sense Ahead RotBkTA a3 Marker 2 a3 Sense LeftAhead RotBkTA a4 Marker 0 a4 Sense LeftAhead RotBkTA a5 Marker 1 a5 Sense LeftAhead RotBkTA a6 Marker 2 a6 Sense RightAhead RotBkTA a7 Marker 0 a7 Sense RightAhead RotBkTA a8 Marker 1 a8 Sense RightAhead RotBkTA a9 Marker 2 a9 Turn Left a10 a10 Turn Left a11 a11 Turn Left a12 a12 Sense LeftAhead BkTA a13 Marker 0 a13 Sense LeftAhead BkTA a14 Marker 1 a14 Sense LeftAhead BkTA a15 Marker 2 a15 Sense RightAhead BkTA a16 Marker 0 a16 Sense RightAhead BkTA a17 Marker 1 a17 Sense RightAhead BkTA a18 Marker 2 a18 Turn Left a19 a19 Turn Left a20 a20 Turn Left AMARK1 AMARK1 Mark 0 CHECK1 CHECK1 Sense Here GetFood EXP2 Food; Check if we see food, if so, jmp elsewhere SETFOOD3 PickUp FNDFOOD3 FNDFOOD3 EXP2 Flip 8 CHNG2 WALK2 CHNG2 Flip 2 GOR2 GOL2 GOR2 Turn Right WALK2 GOL2 Turn Left WALK2 WALK2 Move DOMRK2 CHNG2 DOMRK2 Sense Ahead RotBkTA b1 Marker 0 b1 Sense Ahead RotBkTA b2 Marker 1 b2 Sense Ahead RotBkTA b3 Marker 2 b3 Sense LeftAhead RotBkTA b4 Marker 0 b4 Sense LeftAhead RotBkTA b5 Marker 1 b5 Sense LeftAhead RotBkTA b6 Marker 2 b6 Sense RightAhead RotBkTA b7 Marker 0 b7 Sense RightAhead RotBkTA b8 Marker 1 b8 Sense RightAhead RotBkTA b9 Marker 2 b9 Turn Left b10 b10 Turn Left b11 b11 Turn Left b12 b12 Sense LeftAhead BkTA b13 Marker 0 b13 Sense LeftAhead BkTA b14 Marker 1 b14 Sense LeftAhead BkTA b15 Marker 2 b15 Sense RightAhead BkTA b16 Marker 0 b16 Sense RightAhead BkTA b17 Marker 1 b17 Sense RightAhead BkTA b18 Marker 2 b18 Turn Left b19 b19 Turn Left b20 b20 Turn Left AMARK2 AMARK2 Mark 1 CHECK2 CHECK2 Sense Here GetFood EXP3 Food; Check for food again, cntnu if !found SETFOOD1 PickUp FNDFOOD1 FNDFOOD1 EXP3 Flip 8 CHNG3 WALK3 CHNG3 Flip 2 GOR3 GOL3 GOR3 Turn Right WALK3 GOL3 Turn Left WALK3 WALK3 Move DOMRK3 CHNG3 DOMRK3 Sense Ahead RotBkTA c1 Marker 0 c1 Sense Ahead RotBkTA c2 Marker 1 c2 Sense Ahead RotBkTA c3 Marker 2 c3 Sense LeftAhead RotBkTA c4 Marker 0 c4 Sense LeftAhead RotBkTA c5 Marker 1 c5 Sense LeftAhead RotBkTA c6 Marker 2 c6 Sense RightAhead RotBkTA c7 Marker 0 c7 Sense RightAhead RotBkTA c8 Marker 1 c8 Sense RightAhead RotBkTA c9 Marker 2 c9 Turn Left c10 c10 Turn Left c11 c11 Turn Left c12 c12 Sense LeftAhead BkTA c13 Marker 0 c13 Sense LeftAhead BkTA c14 Marker 1 c14 Sense LeftAhead BkTA c15 Marker 2 c15 Sense RightAhead BkTA c16 Marker 0 c16 Sense RightAhead BkTA c17 Marker 1 c17 Sense RightAhead BkTA c18 Marker 2 c18 Turn Left c19 c19 Turn Left c20 c20 Turn Left AMARK3 AMARK3 Mark 2 CHECK3 CHECK3 Sense Here GetFood EXP1 Food ; Start marking with 1 if not found SETFOOD2 PickUp FNDFOOD2 FNDFOOD2 FNDFOOD3 Turn Left A1 ; Follow Marker 2... A1 Turn Left A2 A2 Turn Left AFF3 AFF3 Sense Ahead MOVE3 SA1 Marker 2 SA1 Sense LeftAhead MOVEL3 SA2 Marker 2 SA2 Sense RightAhead MOVER3 HomeRndWalk Marker 2 MOVE3 Mark 3 MM1 MM1 Move AFF1 AFF1 ; Can't fail... MOVEL3 Turn Left MOVELL3 MOVELL3 Mark 3 MM2 MM2 Move AFF1 AFF1 ; Can't fail... MOVER3 Turn Right MOVERR3 MOVERR3 Mark 3 MM3 MM3 Move AFF1 AFF1 ; Can't fail... FNDFOOD1 Turn Left B1 B1 Turn Left B2 B2 Turn Left AFF1 AFF1 Sense Ahead MOVE1 SB1 Marker 0 SB1 Sense LeftAhead MOVEL1 SB2 Marker 0 SB2 Sense RightAhead MOVER1 HomeRndWalk Marker 0 MOVE1 Mark 4 MM4 MM4 Move CHK! CHK! ; CHECK IF WE'RE DONE! MOVEL1 Turn Left MOVELL1 MOVELL1 Mark 4 MM5 MM5 Move CHK! CHK! MOVER1 Turn Right MOVERR1 MOVERR1 Mark 4 MM6 MM6 Move CHK! CHK! CHK! Sense Here GotHome AFF2 Home FNDFOOD2 Turn Left C1 C1 Turn Left C2 C2 Turn Left AFF2 AFF2 Sense Ahead MOVE2 SC1 Marker 1 SC1 Sense LeftAhead MOVEL2 SC2 Marker 1 SC2 Sense RightAhead MOVER2 HomeRndWalk Marker 1 MOVE2 Mark 5 MM7 MM7 Move AFF3 AFF3 MOVEL2 Turn Left MOVELL2 MOVELL2 Mark 5 MM8 MM8 Move AFF3 AFF3 MOVER2 Turn Right MOVERR2 MOVERR2 Mark 5 MM9 MM9 Move AFF3 AFF3 Screwed Move Screwed Screwed ; DESCRIPTION OF ANT GATHERER RotBkTA Turn Left RotBkTA-1 RotBkTA-1 Turn Left RotBkTA-2 RotBkTA-2 Turn Left BkTA BkTA Flip 4 FlRot MvTA MvTA Move PickTADir MvTA PickTADir Flip 2 TALeft TARight TALeft Turn Left TAL1 TAL1 Turn Left FigureTA ; TODO FigureTA TARight Turn Right TAR1 TAR1 Turn Right FigureTA ; TODO FigureTA FigureTA Sense Here WALK2 FigureTA-2 Marker 0 FigureTA-2 Sense Here WALK3 FigureTA-3 Marker 1 FigureTA-3 Sense Here WALK1 ArrowRW Marker 2 Follow Turn Left Follow ; TODO Follow FlRot Turn Right FlRot-1 FlRot-1 Turn Right FlRot-2 FlRot-2 Turn Right FlMv FlMv Move FigureFL FlMv FigureFL Sense Here FL-fwd-1 FigureFL-2 Marker 0 FigureFL-2 Sense Here FL-fwd-2 FigureFL-3 Marker 1 FigureFL-3 Sense Here FL-fwd-0 ArrowRW Marker 2 FL-fwd-0 Sense Ahead GoFwd-0 FL-fwd-0-TA Marker 0 FL-fwd-0-TA Flip 12 ArrowRW FL-fwd-0-turn FL-fwd-0-turn Turn Left FL-fwd-0 FL-fwd-1 Sense Ahead GoFwd-1 FL-fwd-1-TA Marker 1 FL-fwd-1-TA Flip 12 ArrowRW FL-fwd-1-turn FL-fwd-1-turn Turn Left FL-fwd-1 FL-fwd-2 Sense Ahead GoFwd-2 FL-fwd-2-TA Marker 2 FL-fwd-2-TA Flip 12 ArrowRW FL-fwd-2-turn FL-fwd-2-turn Turn Left FL-fwd-2 GoFwd-0 Sense Ahead MvFwd-0 Split-1 Marker 1 GoFwd-1 Sense Ahead MvFwd-1 Split-2 Marker 2 GoFwd-2 Sense Ahead MvFwd-2 Split-0 Marker 0 MvFwd-0 Move GoFwd-1 MvFwd-0 MvFwd-1 Move GoFwd-2 MvFwd-1 MVFwd-2 Move GoFwd-0 MvFwd-2 Split-0 Sense LeftAhead Split-0-a GOL1 Marker 0 Split-0-a Sense RightAhead RndWalkExp GOR1 Marker 0 Split-1 Sense LeftAhead Split-1-a GOL2 Marker 1 Split-1-a Sense RightAhead RndWalkExp GOR2 Marker 1 Split-2 Sense LeftAhead Split-2-a GOL3 Marker 2 Split-2-a Sense RightAhead RndWalkExp GOR3 Marker 2 RndWalkExp Flip 5 RWTurn RWGo RWTurn Flip 2 RWRight RWLeft RWRight Turn Right RWGo RWLeft Turn Left RWGo RWGo Move RWRnd RndWalkExp RWRnd Flip 6 FigureTA RWMoreRnd RWMoreRnd Flip 2 RndWalkExp RWChkFood RWChkFood Sense Here GetFood RWChkFdPath Food RWChkFdPath Sense Here GoFigureFD RndWalkExp Marker 3 HomeRndWalk Flip 5 HomeRWTurn HomeRWGo HomeRWTurn Flip 2 HomeRWRight HomeRWLeft HomeRWRight Turn Right HomeRWGo HomeRWLeft Turn Left HomeRWGo HomeRWGo Move HomeRWChk HomeRndWalk HomeRWChk Sense Here GotHome HomeRWPath0 Home HomeRWPath0 Sense Here FdFind2 HomeRWPath1 Marker 0 HomeRWPath1 Sense Here FdFind0 HomeRWPath2 Marker 1 HomeRWPath2 Sense Here FdFind1 HomeRndWalk Marker 2 GotHome Drop ArrowRW ArrowRW Move ArrowRW RndWalkExp GetFood PickUp GotFood ArrowRW GotFood Turn Right GotFood-1 GotFood-1 Turn Right GotFood-2 GotFood-2 Turn Right FigureFD FigureFD Sense Here FdFind2 FigureFD-2 Marker 0 FigureFD-2 Sense Here FdFind0 FigureFD-3 Marker 1 FigureFD-3 Sense Here FdFind1 FdChkNearPath Marker 2 FdChkNearPath Sense Ahead FdMkPath1 FdChkNearPath1 Marker 0 FdChkNearPath1 Sense LeftAhead FdMkPath1 FdChkNearPath2 Marker 0 FdChkNearPath2 Sense RightAhead FdMkPath1 FdChkNearPath3 Marker 0 FdChkNearPath3 Sense Ahead FdMkPath2 FdChkNearPath4 Marker 1 FdChkNearPath4 Sense LeftAhead FdMkPath2 FdChkNearPath5 Marker 1 FdChkNearPath5 Sense RightAhead FdMkPath2 FdChkNearPath6 Marker 1 FdChkNearPath6 Sense Ahead FdMkPath0 FdChkNearPath7 Marker 2 FdChkNearPath7 Sense LeftAhead FdMkPath0 FdChkNearPath8 Marker 2 FdChkNearPath8 Sense RightAhead FdMkPath0 FdChkNearPath9 Marker 2 FdChkNearPath9 Turn Right FdChkNearPath10 FdChkNearPath10 Turn Right FdChkNearPath11 FdChkNearPath11 Turn Right FdChkNearPath12 FdChkNearPath12 Sense Ahead FdMkPath1 FdChkNearPath13 Marker 0 FdChkNearPath13 Sense LeftAhead FdMkPath1 FdChkNearPath14 Marker 0 FdChkNearPath14 Sense RightAhead FdMkPath1 FdChkNearPath15 Marker 0 FdChkNearPath15 Sense Ahead FdMkPath2 FdChkNearPath16 Marker 1 FdChkNearPath16 Sense LeftAhead FdMkPath2 FdChkNearPath17 Marker 1 FdChkNearPath17 Sense RightAhead FdMkPath2 FdChkNearPath18 Marker 1 FdChkNearPath18 Sense Ahead FdMkPath0 FdChkNearPath19 Marker 2 FdChkNearPath19 Sense LeftAhead FdMkPath0 FdChkNearPath20 Marker 2 FdChkNearPath20 Sense RightAhead FdMkPath0 HomeRndWalk Marker 2 FdMkPath0 Mark 0 FdMkPathCommon FdMkPath1 Mark 1 FdMkPathCommon FdMkPath2 Mark 2 FdMkPathCommon FdMkPathCommon Mark 3 FigureFD FdFind0 Sense Ahead FdFwd0 FdFind0L Marker 0 FdFind0L Sense LeftAhead FdLeft0 FdFind0R Marker 0 FdFind0R Sense RightAhead FdRight0 FdFind0Rot Marker 0 FdLeft0 Turn Left FdFwd0 FdRight0 Turn Right FdFwd0 FdFind0Rot Turn Left FdFind0Rot-1 FdFind0Rot-1 Turn Left FdFind0Rot-2 FdFind0Rot-2 Turn Left FdFind0B FdFind0B Sense Ahead FdFwd0 FdFind0BL Marker 0 FdFind0BL Sense LeftAhead FdLeft0 FdFind0BR Marker 0 FdFind0BR Sense RightAhead FdRight0 HomeRndWalk Marker 0 FdFwd0 Move FdMark0 FdFwd0 FdMark0 Mark 3 FdHome0 FdHome0 Sense Here GotHome FdFind2 Home FdFind1 Sense Ahead FdFwd1 FdFind1L Marker 1 FdFind1L Sense LeftAhead FdLeft1 FdFind1R Marker 1 FdFind1R Sense RightAhead FdRight1 FdFind1Rot Marker 1 FdLeft1 Turn Left FdFwd1 FdRight1 Turn Right FdFwd1 FdFind1Rot Turn Left FdFind1Rot-1 FdFind1Rot-1 Turn Left FdFind1Rot-2 FdFind1Rot-2 Turn Left FdFind1B FdFind1B Sense Ahead FdFwd1 FdFind1BL Marker 1 FdFind1BL Sense LeftAhead FdLeft1 FdFind1BR Marker 1 FdFind1BR Sense RightAhead FdRight1 HomeRndWalk Marker 1 FdFwd1 Move FdMark1 FdFwd1 FdMark1 Mark 3 FdFind0 FdFind2 Sense Ahead FdFwd2 FdFind2L Marker 2 FdFind2L Sense LeftAhead FdLeft2 FdFind2R Marker 2 FdFind2R Sense RightAhead FdRight2 FdFind2Rot Marker 2 FdLeft2 Turn Left FdFwd2 FdRight2 Turn Right FdFwd2 FdFind2Rot Turn Left FdFind2Rot-1 FdFind2Rot-1 Turn Left FdFind2Rot-2 FdFind2Rot-2 Turn Left FdFind2B FdFind2B Sense Ahead FdFwd2 FdFind2BL Marker 2 FdFind2BL Sense LeftAhead FdLeft2 FdFind2BR Marker 2 FdFind2BR Sense RightAhead FdRight2 HomeRndWalk Marker 2 FdFwd2 Move FdMark2 FdFwd2 FdMark2 Mark 3 FdFind1 GoFigureFD Sense Here GoFdFind1 GoFigureFD-2 Marker 0 GoFigureFD-2 Sense Here GoFdFind2 GoFigureFD-3 Marker 1 GoFigureFD-3 Sense Here GoFdFind0 RndWalkExp Marker 2 GoFdFind0 Sense Ahead GoFdFwd0a GoFdFind0L Marker 0 GoFdFind0L Sense LeftAhead GoFdLeft0a GoFdFind0R Marker 0 GoFdFind0R Sense RightAhead GoFdRight0a GoFdFind0Rot Marker 0 GoFdFwd0a Sense Ahead GoFdFwd0 GoFdFind0L Marker 3 GoFdLeft0a Sense LeftAhead GoFdLeft0 GoFdFind0R Marker 3 GoFdRight0a Sense RightAhead GoFdRight0 GoFdFind0Rot Marker 3 GoFdLeft0 Turn Left GoFdFwd0 GoFdRight0 Turn Right GoFdFwd0 GoFdFind0Rot Turn Left GoFdFind0Rot-1 GoFdFind0Rot-1 Turn Left GoFdFind0Rot-2 GoFdFind0Rot-2 Turn Left GoFdFind0B GoFdFind0B Sense Ahead GoFdFwd0b GoFdFind0BL Marker 0 GoFdFind0BL Sense LeftAhead GoFdLeft0b GoFdFind0BR Marker 0 GoFdFind0BR Sense RightAhead GoFdRight0b RndWalkExp Marker 0 GoFdFwd0b Sense Ahead GoFdFwd0 GoFdFind0BL Marker 3 GoFdLeft0b Sense LeftAhead GoFdLeft0 GoFdFind0BR Marker 3 GoFdRight0b Sense RightAhead GoFdRight0 RndWalkExp Marker 3 GoFdFwd0 Move GoFdFind1 RndWalkExp GoFdFind1 Sense Ahead GoFdFwd1a GoFdFind1L Marker 1 GoFdFind1L Sense LeftAhead GoFdLeft1a GoFdFind1R Marker 1 GoFdFind1R Sense RightAhead GoFdRight1a GoFdFind1Rot Marker 1 GoFdFwd1a Sense Ahead GoFdFwd1 GoFdFind1L Marker 3 GoFdLeft1a Sense LeftAhead GoFdLeft1 GoFdFind1R Marker 3 GoFdRight1a Sense RightAhead GoFdRight1 GoFdFind1Rot Marker 3 GoFdLeft1 Turn Left GoFdFwd1 GoFdRight1 Turn Right GoFdFwd1 GoFdFind1Rot Turn Left GoFdFind1Rot-1 GoFdFind1Rot-1 Turn Left GoFdFind1Rot-2 GoFdFind1Rot-2 Turn Left GoFdFind1B GoFdFind1B Sense Ahead GoFdFwd1b GoFdFind1BL Marker 1 GoFdFind1BL Sense LeftAhead GoFdLeft1b GoFdFind1BR Marker 1 GoFdFind1BR Sense RightAhead GoFdRight1b RndWalkExp Marker 1 GoFdFwd1b Sense Ahead GoFdFwd1 GoFdFind1BL Marker 3 GoFdLeft1b Sense LeftAhead GoFdLeft1 GoFdFind1BR Marker 3 GoFdRight1b Sense RightAhead GoFdRight1 RndWalkExp Marker 3 GoFdFwd1 Move GoFdFind2 RndWalkExp GoFdFind2 Sense Ahead GoFdFwd2a GoFdFind2L Marker 2 GoFdFind2L Sense LeftAhead GoFdLeft2a GoFdFind2R Marker 2 GoFdFind2R Sense RightAhead GoFdRight2a GoFdFind2Rot Marker 2 GoFdFwd2a Sense Ahead GoFdFwd2 GoFdFind2L Marker 3 GoFdLeft2a Sense LeftAhead GoFdLeft2 GoFdFind2R Marker 3 GoFdRight2a Sense RightAhead GoFdRight2 GoFdFind2Rot Marker 3 GoFdLeft2 Turn Left GoFdFwd2 GoFdRight2 Turn Right GoFdFwd2 GoFdFind2Rot Turn Left GoFdFind2Rot-1 GoFdFind2Rot-1 Turn Left GoFdFind2Rot-2 GoFdFind2Rot-2 Turn Left GoFdFind2B GoFdFind2B Sense Ahead GoFdFwd2b GoFdFind2BL Marker 2 GoFdFind2BL Sense LeftAhead GoFdLeft2b GoFdFind2BR Marker 2 GoFdFind2BR Sense RightAhead GoFdRight2b RndWalkExp Marker 2 GoFdFwd2b Sense Ahead GoFdFwd2 GoFdFind2BL Marker 3 GoFdLeft2b Sense LeftAhead GoFdLeft2 GoFdFind2BR Marker 3 GoFdRight2b Sense RightAhead GoFdRight2 RndWalkExp Marker 3 GoFdFwd2 Move GoFdFind0 RndWalkExp