See all articles from SYNC v1 n5
In Cannonade you are the commander (choose your own rank) of a squad of six men. You have been given as your next objective the capture of an enemy gun emplacement. Your men must outmaneuver the gun’s handlers. If they are spotted as they are advancing, they may be fired upon. When a man is hit, he cannot return to his base until the gunner is distracted and fires on another target. Should one of your men breach the fortification protecting the emplacement, the gun is silenced and the position is taken.
Source Code
10 REM *CANNONADE SYNC 1-5 PAGE 32
20 LET T=4
30 LET D=0
40 LET X=0
50 DIM L(20)
60 DIM M(6)
70 DIM P(6)
80 LET L(20)=2
90 FOR I=1 TO 6
100 LET P(I)=1
110 LET M(I)=1
120 IF I>3 THEN LET M(I)=M(I)+1
130 NEXT I
140 RANDOMIZE
150 CLS
160 FOR I=1 TO 7
170 FOR K=1 TO 19
180 LET L(K)=0
190 NEXT K
200 PRINT I;" ";
210 FOR J=1 TO 6
220 IF NOT M(J)=I THEN GO TO 280
230 IF L(P(J))=0 OR L(P(J))=2 THEN GO TO 260
240 LET P(J)=P(J)+1
250 GO TO 230
260 LET L(P(J))=J+37
270 IF D=J THEN LET L(P(J))=J+165
280 NEXT J
290 FOR K=1 TO 20
300 PRINT CHR$ (L(K));
310 NEXT K
320 LET L(20)=2
330 IF NOT T=I THEN GO TO 350
340 PRINT "\''#\.. ";I;
350 PRINT
360 NEXT I
370 PRINT
380 FOR I=1 TO 6
390 IF P(1)=20 THEN GO TO 660
400 NEXT I
410 PRINT "MAN:"
420 INPUT A$
430 IF A$="" THEN GO TO 670
440 LET X=X+1
450 LET Q= CODE (A$)-37
460 LET P(Q)=P(Q)+ RND*5+3
470 IF P(Q)>20 THEN LET P(Q)=20
480 LET J= RND*3
490 IF J=1 THEN GO TO 550
500 IF J=2 THEN LET K=-1
510 IF J=3 THEN LET K=1
520 LET I=M(Q)
530 IF I+K=0 OR I+K=8 THEN GO TO 480
540 LET M(Q)=I+K
550 IF RND*3=2 THEN GO TO 140
560 LET P(D)=1
570 LET D=0
580 LET J= RND*3
590 FOR I=1 TO 6
600 IF P(1)<K OR D=I THEN GO TO 640
610 LET K=P(I)
620 LET D=I
630 LET T=M(I)
640 NEXT I
650 GO TO 140
660 PRINT "GUN CAPTURED IN ";
670 PRINT X;" MOVES."
680 STOP