; ; EXperimental-Robot 101 by Shaheryar Alam ; #msg #def accuracy opo 17, 4 ; scan-arc 4 degrees mov ax, 1 ; ax = 1 int 3 ; turn keepshift on :1 opo 11, 75 ; throttle to 75% :2 opo 12, 3 ; turn turret 3 degrees :20 ipo 7, ax ; scan cmp ax, 1500 ; find anything? jls 3 ; yes? shoot! call 10 ; check for collision jmp 2 ; go back to scanning :3 ipo 2, ax ; check heat cmp ax, 250 ; hotter than 250? jgr 2 ; if so, forget target, continue scan. ;read accuracy setting. ipo 8, accuracy mov ax, accuracy; ax=accuracy ; shl ax, 1 ; ax=ax*2 ;turn using accuracy (to try to continue to face target) opo 12, ax opo 15, 0 ; Fire! ; opo 15, accuracy; Fire! shl accuracy 2 ; accuracy=accuracy*4 opo 14, accuracy; Turn body towards target ipo 7, ax ; scan cmp ax, 1500 ; find anything? jgr 2 ; if not, then scan again ipo 8, accuracy; get accuracy opo 15, accuracy; FIRE! opo 12, accuracy; turn towards target jmp 20 :10 ipo 1, ax ; get current speed cmp ax, 0 ; check if we are still moving jgr 12 ; if we are, go back :11 opo 14, 50 ; Turn 50 degrees opo 11, 100 ; Set throttle to 100% ; delay 20 ; delay the return in order to move ahead ; some and then slow down :12 ret ; return to call