Skip to content

Commit 5b19931

Browse files
committed
new rook
1 parent cc14273 commit 5b19931

File tree

3 files changed

+80
-3
lines changed

3 files changed

+80
-3
lines changed

basicbots

3.28 MB
Binary file not shown.

robots/rook.bas

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66
7 LET DY = 0
77
8 LET D = 0
88
9 LET DA = 0
9+
10 LET RSA = 0 : REM Rolling scan angle
10+
11 LET RWD = 3 : REM Rolling scan width
911

1012
200 T = RND 2
1113
205 IF T = 0 THEN GOSUB 220
1214
206 IF T = 1 THEN GOSUB 320
1315
210 GOSUB 9000
1416
250 GOTO 200
1517

16-
18+
219 REM move in the X plane
1719
220 LET DX = (RND 800) + 100
1820
221 LET LX = LOCX
1921
222 LET LY = LOCY
@@ -22,10 +24,12 @@
2224
226 DRIVE DA,100
2325
230 GOSUB 8000
2426
235 IF D < 20 THEN GOTO 250
27+
237 GOSUB 7000 : REM rolling scan and shoot
2528
240 GOTO 221
2629
250 DRIVE DA, 0
2730
260 RETURN
2831

32+
319 REM move in the Y plane
2933
320 LET DY = (RND 800) + 100
3034
321 LET LX = LOCX
3135
322 LET LY = LOCY
@@ -34,22 +38,31 @@
3438
326 DRIVE DA,100
3539
330 GOSUB 8000
3640
335 IF D < 20 THEN GOTO 350
41+
337 GOSUB 7000 : REM rolling scan and shoot
3742
340 GOTO 322
3843
350 DRIVE DA, 0
3944
360 RETURN
4045

4146

47+
7000 REM scan and shoot while moving to target
48+
7010 LET RR = SCAN RSA, RWD
49+
7020 if RR > 0 AND RR < 700 THEN GOTO 7100
50+
7030 LET RSA = RSA + RWD
51+
7035 IF RSA > 360 THEN LET RSA = RDA - 360
52+
7040 RETURN
53+
7100 CANNON RSA, RR
54+
7110 RETURN
4255

4356

4457

45-
8000 REM
58+
8000 REM calculate distance to target
4659
8010 LET TX = DX - LX
4760
8015 LET TY = DY - LY
4861
8020 LET D = SQR (TX*TX)+(TY*TY)
4962
8025 RETURN
5063

5164

52-
9000 REM
65+
9000 REM scan and shoot
5366
9010 LET SD = 0
5467
9011 LET SW = 5
5568
9020 LET R = SCAN SD,SW

testbots/rook-v1.bas

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
1 REM rook.bas
2+
2 REM only move in the X or Y at a time.
3+
4+
5 LET T = 0
5+
6 LET DX = 0
6+
7 LET DY = 0
7+
8 LET D = 0
8+
9 LET DA = 0
9+
10+
200 T = RND 2
11+
205 IF T = 0 THEN GOSUB 220
12+
206 IF T = 1 THEN GOSUB 320
13+
210 GOSUB 9000
14+
250 GOTO 200
15+
16+
17+
220 LET DX = (RND 800) + 100
18+
221 LET LX = LOCX
19+
222 LET LY = LOCY
20+
223 LET DY = LY
21+
225 IF LX > DX THEN LET DA = 180 ELSE LET DA = 0
22+
226 DRIVE DA,100
23+
230 GOSUB 8000
24+
235 IF D < 20 THEN GOTO 250
25+
240 GOTO 221
26+
250 DRIVE DA, 0
27+
260 RETURN
28+
29+
320 LET DY = (RND 800) + 100
30+
321 LET LX = LOCX
31+
322 LET LY = LOCY
32+
323 LET DX = LX
33+
325 IF LY > DY THEN LET DA = 270 ELSE LET DA = 90
34+
326 DRIVE DA,100
35+
330 GOSUB 8000
36+
335 IF D < 20 THEN GOTO 350
37+
340 GOTO 322
38+
350 DRIVE DA, 0
39+
360 RETURN
40+
41+
42+
43+
44+
45+
8000 REM
46+
8010 LET TX = DX - LX
47+
8015 LET TY = DY - LY
48+
8020 LET D = SQR (TX*TX)+(TY*TY)
49+
8025 RETURN
50+
51+
52+
9000 REM
53+
9010 LET SD = 0
54+
9011 LET SW = 5
55+
9020 LET R = SCAN SD,SW
56+
9030 IF R = 0 THEN GOTO 9060
57+
9040 IF R > 700 THEN GOTO 9060
58+
9050 CANNON SD,R
59+
9051 LET SW = SW - 1
60+
9052 IF SW = 1 THEN LET SW = 5
61+
9055 GOTO 9020
62+
9060 LET SD = SD + 5
63+
9065 IF SD > 360 THEN RETURN
64+
9070 GOTO 9020

0 commit comments

Comments
 (0)