2013-08-10 02:01:56 +00:00
|
|
|
(ns robotwar.test-programs)
|
|
|
|
|
2013-08-14 03:50:12 +00:00
|
|
|
(def programs
|
|
|
|
{:multi-use
|
2013-08-10 02:01:56 +00:00
|
|
|
" START
|
|
|
|
0 TO A
|
|
|
|
TEST
|
|
|
|
IF A > 2 GOTO START
|
|
|
|
GOSUB INCREMENT
|
|
|
|
GOTO TEST
|
|
|
|
100 TO A
|
|
|
|
INCREMENT
|
|
|
|
A + 1 TO A
|
|
|
|
ENDSUB
|
2013-08-14 03:50:12 +00:00
|
|
|
200 TO A "
|
|
|
|
|
|
|
|
:index-data
|
2013-08-10 02:01:56 +00:00
|
|
|
; to test the INDEX/DATA pair of registers
|
|
|
|
" 300 TO A
|
|
|
|
1 TO INDEX
|
2013-08-14 03:50:12 +00:00
|
|
|
DATA TO B"
|
|
|
|
|
|
|
|
:random
|
2013-08-10 02:01:56 +00:00
|
|
|
; to test the RANDOM register
|
|
|
|
" 1000 TO RANDOM
|
|
|
|
RANDOM TO A
|
|
|
|
RANDOM TO A
|
|
|
|
RANDOM TO A
|
|
|
|
RANDOM TO A
|
2013-08-14 03:50:12 +00:00
|
|
|
RANDOM TO A "
|
|
|
|
|
|
|
|
:speedy
|
|
|
|
" 140 TO SPEEDX
|
|
|
|
250 TO SPEEDY "
|
2013-08-12 20:20:45 +00:00
|
|
|
|
2013-08-14 03:50:12 +00:00
|
|
|
:moving-to-spot
|
|
|
|
"
|
|
|
|
256 TO RANDOM ; the width and height of the arena
|
|
|
|
|
|
|
|
LOOP
|
|
|
|
0 TO SPEEDX
|
|
|
|
0 TO SPEEDY
|
|
|
|
RANDOM TO A
|
|
|
|
RANDOM TO B
|
|
|
|
|
|
|
|
MOVE
|
|
|
|
IF A # X GOSUB MOVEX
|
|
|
|
TO N ; N means no-op
|
|
|
|
IF B # Y GOSUB MOVEY
|
|
|
|
IF A = X GOTO LOOP
|
|
|
|
GOTO MOVE
|
|
|
|
|
|
|
|
MOVEX
|
|
|
|
A - X TO SPEEDX
|
|
|
|
ENDSUB
|
|
|
|
|
|
|
|
MOVEY
|
|
|
|
B - Y TO SPEEDY
|
|
|
|
ENDSUB "})
|