10 REM FLYING GEESE**BBC VERSION** @1983 M ICHAEL BEWS 20 REM CONVERTED TO BBC MICRO BY C.R.TANNE R 30 MODE1:PRINT TAB(16,3);"<SPACE>":VDU 23; 8202;0;0;0;28,4,27,35,4 40 DIM a$(4),d(4),g(4),h(4) 50 VDU 23,224,2,6,7,7,127,31,8,0 60 VDU 23,225,0,0,48,104,254,192,0,0 70 VDU 23,226,0,0,0,0,127,31,15,3 80 VDU 23,236,1,98,244,232,88,232,248,224 90 VDU 23,237,224,224,144,144,144,144,144, 216 100 VDU 23,227,85,170,85,170,85,170,85,170 110 VDU 23,228,66,16,132,33,4,81,4,160 120 VDU 23,229,0,16,18,54,118,62,60,60 130 VDU 23,230,48,56,28,20,24,16,16,0 140 VDU 19,0,4,0,0,0 150 GOSUB 400 160 FOR x=1 TO 4:h(x)=1:g(x)=x*5-4:NEXT x 170 CLS:COLOUR 3:PRINT TAB(0,0);"SHOTS: "; TAB(10,0);" TO FIRE";TAB(24,0);"SCORE: ";:C OLOUR 2:PRINT TAB(21,13);CHR$228;CHR$228;CHR$ 228;TAB(20,14);STRING$(5,CHR$(228));TAB(19,15 );STRING$(7,CHR$(228));TAB(19,16);STRING$(7,C HR$(228)); 180 PRINT TAB(19,17);CHR$228;CHR$228;" ";CH R$227;" ";CHR$228;CHR$228;:COLOUR 129:PRINT T AB(22,18);CHR$(227);TAB(22,19);CHR$227;TAB(0, 20);" ";" ";" ";STRING$(8,CHR$227);" " ;:COLOUR 128 190 PRINT TAB(1,18);CHR$236;TAB(1,19);CHR$2 37; 200 REM FLYING/SHOOT ROUTINE 210 FOR x=o TO fr:TIME=0:d(x)=ei-x+SGN(o-tw *INT(RND(tw))):PRINT TAB(g(x)-o,h(x));" ";:f =-f:PRINT TAB(g(x),d(x));" ";a$(th-f);:SOUND 1,-6,255,0 220 IF INKEY(-99) THEN SOUND 0,-15,6,2 EL SE GOTO 280 230 FOR y=o TO tw:GCOL3,2:PLOT 69,128+(en *4),192+(tf*4):PLOT 1,fr*4,th*4:PRINT TAB(th, si);CHR$228;:NEXT y:PRINT TAB(th,si);" ";:SH= SH+o:PRINT TAB(sx,0);SH; 240 IFg(x)<>ev AND g(x)<>tv THEN GOTO 28 0 250 B=B+o:PRINT TAB(g(x),d(x));" ";TAB( hy,0);B;:g(x)=o-tw:h(x)=o:FOR y=d(x) TO ni ST EP tw:PRINT TAB(fo,(y-tw)-1);" ";TAB(fo,(y-o) -1);" ";TAB(fo,y-1);CHR$229;TAB(fo,(y+o)-1);C HR$230; 260 SOUND 1,-10,50-y,1:FOR A%=0 TO 150:NE XT:NEXT y 270 PRINT TAB(fo,(ni-o)-1);" ";TAB(fo,ni- 1);" ";TAB(fo,(ni+o)-1);" "; 280 h(x)=d(x):g(x)=g(x)+tw:IF g(x)>tn THE N PRINT TAB(g(x)-o,h(x));" ";:g(x)=o 290 REPEAT UNTIL TIME>10 300 NEXT x:f=-f:IF SH<99 THEN 210 310 REM END OF GAME ROUTINE 320 IF B>tot THEN tot=B 330 COLOUR 3:PRINT TAB(10,9);" GAME OVER";T AB(4,11);" SCORE:";B;" IN 100 SHOTS "; 340 PRINT TAB(4,13);"HIGHEST SCORE: ";tot; 350 FOR A%=1 TO 1000:NEXT:*FX15,1 360 PRINT TAB(4,23);"PRESS ANY KEY TO START "; 370 IF INKEY$(1000)="" THEN 370 380 SH=0:B=0:GOTO 160 390 REM INITIALISATION 400 CLS 410 sx=6:hy=30:tot=0:SH=0:fi=15:tv=12:ev=11 :ni=19:ty=20:en=18:tf=34:si=16:fo=14:ei=8:f=- 1:o=1:tw=2:th=3:fr=4:tn=29:B=0 420 a$(4)=CHR$224+CHR$225 430 a$(2)=CHR$226+CHR$225 440 RETURN