Skip to content

Instantly share code, notes, and snippets.

@earthling-shruti
Last active December 11, 2015 10:49
Show Gist options
  • Save earthling-shruti/4589914 to your computer and use it in GitHub Desktop.
Save earthling-shruti/4589914 to your computer and use it in GitHub Desktop.
clearing up goto/call mess
@LOOPSTART
GOTO << @CHECKEAST
@MOVEEAST
CALLFF << @LOOK @EAST 2
EQUAL << @CELL_EMPTY
IFFCALL << @MOVENORTH
CALLFF << @MOVE @EAST 2
POP
RETURN
@MOVENORTH
CALLFF << @LOOK @NORTH 2
EQUAL << @CELL_EMPTY
IFFCALL << @MOVEWEST
CALLFF << @MOVE @NORTH 2
POP
RETURN
@MOVEWEST
CALLFF << @LOOK @WEST 2
EQUAL << @CELL_EMPTY
IFFCALL << @MOVESOUTH
CALLFF << @MOVE @WEST 2
POP
RETURN
@MOVESOUTH
CALLFF << @LOOK @SOUTH 2
EQUAL << @CELL_EMPTY
IFFCALL << @MOVEWEST
CALLFF << @MOVE @SOUTH 2
POP
RETURN
@CHECKEAST
CALLFF << @LOOK @EAST 2
DUP
EQUAL << @CELL_RESOURCE
IFTCALL << @PULLEAST
EQUAL << @CELL_ROBOT
IFTCALL << @PUNCHEAST
GOTO << @CHECKNORTH
@PULLEAST
CALLFF << @PULL @EAST 2
POP
RETURN
@PUNCHEAST
CALLFF << @PUNCH @EAST 2
POP
CALLFF << @PULL @EAST 2
POP
RETURN
@CHECKNORTH
CALLFF << @LOOK @NORTH 2
DUP
EQUAL << @CELL_RESOURCE
IFTCALL << @PULLNORTH
EQUAL << @CELL_ROBOT
IFTCALL << @PUNCHNORTH
GOTO << @CHECKWEST
@PULLNORTH
CALLFF << @PULL @NORTH 2
POP
RETURN
@PUNCHNORTH
CALLFF << @PUNCH @NORTH 2
POP
CALLFF << @PULL @NORTH 2
POP
RETURN
@CHECKWEST
CALLFF << @LOOK @WEST 2
DUP
EQUAL << @CELL_RESOURCE
IFTCALL << @PULLWEST
EQUAL << @CELL_ROBOT
IFTCALL << @PUNCHWEST
GOTO << @CHECKSOUTH
@PULLWEST
CALLFF << @PULL @WEST 2
POP
RETURN
@PUNCHWEST
CALLFF << @PUNCH @WEST 2
POP
CALLFF << @PULL @WEST 2
POP
RETURN
@CHECKSOUTH
CALLFF << @LOOK @SOUTH 2
DUP
EQUAL << @CELL_RESOURCE
IFTCALL << @PULLSOUTH
EQUAL << @CELL_ROBOT
IFTCALL << @PUNCHSOUTH
GOTO << @CHECKSOUTHEAST
@PULLSOUTH
CALLFF << @PULL @SOUTH 2
POP
RETURN
@PUNCHSOUTH
CALLFF << @PUNCH @SOUTH 2
POP
CALLFF << @PULL @SOUTH 2
POP
RETURN
@CHECKSOUTHEAST
CALLFF << @SCAN 1 1 3
EQUAL << @CELL_RESOURCE
IFTCALL << @MOVESOUTHEAST
CALL << @MOVEEAST
GOTO << @LOOPSTART
@MOVESOUTHEAST
CALLFF << @MOVE @SOUTH 2
POP
CALLFF << @PULL @EAST 2
POP
RETURN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment