;redcode-rft21 ;name Borussia Dortmund ;author Christian Schmidt ;strategy this is my second entry for the ;strategy RFT21. Very similar to my first ;strategy but with a larger transparent decoy ;assert 1 value equ 3456 ; just for Koenigstuhl [CCB] goal equ value ball equ value STEP equ 5266 INIT equ (sbmb+STEP) bOff equ 100 ;______________________________________________ ; here is a fake ball. Good against teams | ; which didn't verify the ball | bFake jmp #0, #ball ;scanned ;______________________________________________| for 10 dat 1, 0 dat 0, 0 ;scanned rof ;___________find the opponent team_____________ ;jmz-scanner with 3 zero a-fields. This will | ;make it hopefully invisible enough if the | ;opponents team is searching for me. | ;The scanning pattern is optimized to scan | ;every second location, so I will definately | ;find the opponents team | ; stun the opponent with this bomb | sptr jmp #STEP, #INIT ; code snipped ala carbonite-stone | ; for a zero a-field | sadd add.ab {0, }0 ;scanned ; scan for a non-zero a-field. Ball and | ; goals will be invisible then, but the | ; opponents team should be visible enought| ; to find him quickly | scan jmz.a sadd, @sptr ; if something is found stun it | sbmb mov @0, @sptr ;scanned ; two stuns seems enough to paralyze the | ; opponents team | schk djn sadd, #2 ; After paralyzing the opponents team | ; start searching the ball | jmp @0, bScan ;scanned ;______________________________________________| for 10 dat 1, 0 dat 0, 0 ;scanned rof ;_________________find the ball________________ ;search for the ball and vamp the balls process| ;to a safe place. Verify that I really get the | ;process otherwise it was a fake ball and I go | ;on searching for the ball. | ;Zero a-fields in alternating order to prevent | ;self-scans. | ; linear scanning b-field vamp scanner | bScan sne.ab #ball, @bVamp ; found the ball | jmp @0, bCatch ;scanned ; add to bScan -1, 1. | add.f bPtr, bVamp ; go for scanning again | jmp @0, bScan ;scanned ; copy the vamp bomb to catch the balls | ; process. | bCatch mov.i @0, @bVamp ; Wait instruction to give the balls | ; process enough time to varify itself | nop 0, 0 ;scanned ; Check if I got the balls process. If | ; it fails go on with scanning | jmz.b bScan, bCheck ; Ok, got the ball! Go searching the goal | jmp @0, gScan ;scanned ;______________________________________________| for 10 dat 1, 0 dat 0, 0 ;scanned rof ;________________find the goal_________________ ;Searching for the goal with a basic linear | ;scanner. The gScan's b-field is the pointer | ;for shooting the ball into the goal | gScan sne.ab #goal, bFake-200 ;Ok, found the goal! Now shoot the ball | jmp @0, bShot ;scanned ;prepare for scanning again | jmp @0,