***program start*** 10 '=========== SHOOTING ============= 20 GameTitle="SHOOTING" 30 ScWidth=128:ScHight=64 40 FontWidth=6:FontHight=8:BarWidth=3 50 ScoreStr="SCORE":HiScoreStr="HISCO":StageStr="STAGE" 60 BgWidth=ScWidth-strlen(ScoreStr)*FontWidth-BarWidth*2-1 70 BgHight=ScHight*2 80 Fm1=createFM(BgWidth,BgHight) 90 Fm2=createFM(BgWidth,BgHight):gosub 1000: 'draw background 100 Stage=1:Score=0:MyNum=2 110 HighScoreNum=ScHight/FontHight-3 120 dim HighScore[HighScoreNum]:gosub 9060 130 if (keyA()<>1)||(keyB()<>1) then gosub 8100 : 'read HighScore 135 NONE=0:EXIST=1:ST1=1:ST2=2:ST3=3:EXPLOSION=4:POW=5 136 TYPE0=0:POWERUP=1:' EnType 140 BuMax=80:dim BuX[BuMax],BuY[BuMax],BuSt[BuMax] :'bullet 145 dim BuW[BuMax],BuH[BuMax] 170 EnMapNum=200:dim EnIn[EnMapNum],EnPr[EnMapNum]:' Enemy 190 EnMax=20:dim EnSt[EnMax],EnX[EnMax],EnY[EnMax],EnType[EnMax] 200 dim EnP1[EnMax],EnP2[EnMax],EnP3[EnMax],EnCo[EnMax] 205 dim EnH[EnMax],EnW[EnMax] 210 EnBuMax=100:dim EnBuX[EnBuMax],EnBuY[EnBuMax] :'Enemy bullet 215 dim EnBuSt[EnBuMax],EnBuDx[EnBuMax],EnBuDy[EnBuMax] 217 dim EnBuW[EnBuMax],EnBuH[EnBuMax] 220 gosub 63000:'new stage 300 gosub 20000 : ' define Char 310 gosub 1200 : ' define Sound 400 '=========== Main Routine ============= 410 while -1 420 gosub 10000 :' Demo 430 while -1 440 gosub 5000 :' Stage 450 if GameOver=1 then gosub 61000:exit while 460 if StageClear=1 then gosub 62000 470 end while 480 end while 500 end 900 '--------- init EnTable -------------------- 905 for I=0 to EnMapNum-1:EnIn[I]=100000:next 910 for I=0 to EnMax-1:EnSt[I]=NONE:next 930 return 1000 '--------- draw background ------------------ 1010 Bm1=createBM(1,1) 1020 setBM Bm1,0,"1" 1030 cls F,Fm1:cls F,Fm2 1040 for I=0 to 300 1045 X=rand() 1055 Y=rand() 1070 put X*BgWidth/255,Y*BgHight/255,Bm1,set,F,Fm1 1105 X=rand() 1115 Y=rand() 1120 put X*BgWidth/255,Y*BgHight/255,Bm1,set,F,Fm2 1130 next 1150 return 1200 '--------- define Sound ------------------ 1230 ' music:maoudamasii(maou_bgm_piano29) 1240 TEMPO="T400" 1250 S111="L16HD#6L32.L16HD#6L32.L16HD#6L32." 1260 S112="L16HE6L32.L16HE6L32.L16HE6L32." 1270 S113="L16HF#6L32.L16HF#6L32.L16HF#6L32.L16HF#6L32." 1280 S114="L16HE6L32.L16HE6L32.L16HE6L32." 1290 S115="L16HD#6L32.L16HD#6L32.L16HE6L32.L16HE6L32." 1300 S116="L16HD#6L32.L16HD#6L32.L16HD#6L32." 1310 S117="L16HE6L32.L16HE6L32.L16HE6L32." 1320 S118="L16HF#6L32.L16HF#6L32.L16HF#6L32.L16HF#6L32." 1330 S11=S111+S112+S113+S114+S115+S116+S117+S118 1340 ' 1350 S121="L16HE6L32.L16HE6L32.L16HE6L32." 1360 S122="L16HD#6L32.L16HD#6L32.L16HE6L32.L16HE6L32." 1370 S123="L16HD#6L32.L16HD#6L32.L16HD#6L32." 1380 S124="L16HE6L32.L16HE6L32.L16HE6L32." 1390 S125="L16HF#6L32.L16HF#6L32.L16HF#6L32.L16HF#6L32." 1400 S126="L16HE6L32.L16HE6L32.L16HE6L32." 1410 S127="L16HD#6L32.L16HD#6L32.L16HD#6L32." 1420 S12=S121+S122+S123+S124+S125+S126 1430 ' 1440 S131="L16HE6L32.L16HE6L32.L16HD#6L32." 1450 S132="L16HE6L32.L16HD#6L32.L4G#5_L1._" 1460 S13=S127+S131+S132 1470 ' 1480 ' 1500 S154="L16HD#6L32.L16HD#6L32.L16HE6L32." 1510 S155="L16HD#6L32.L16HE6L32.L16HD#6L32." 1520 S156="L16HC#6L32.L16HC#6L32.L4._L1._" 1530 S15=S154+S155+S156 1540 ' 1550 ' 1560 ShootSound="T600L64V200G8A8L64." 1570 ExplosionSound="T600L64V100G4B4V200G5V10B4B3G4." 1580 PowupSound="T600L64V200C7C6E5G5C7." 1590 PowupSound1="T600L64V10C#6V200C#6A5V10A5V200A6A6V10A6." 1600 ItemGetSound="T600L32V200C#7F7F7V10F7L64." 1990 return 2000 '--------- show background ------------------ 2010 if BgY1+ScHight-125 then MySt=EXIST 2308 end if 2310 L=keyL():R=keyR():U=keyU():D=keyD():A=keyA():B=keyB() 2320 if L=1 then 2322 MyX=MyX-(1+LCount/4):if MyX10 then LCount=10 2327 else 2328 LCount=0 2329 end if 2330 if R=1 then 2332 MyX=MyX+(1+RCount/4) 2333 if BarWidth+BgWidth10 then RCount=10 2337 else 2338 RCount=0 2339 end if 2340 if U=1 then 2342 MyY=MyY-(1+UCount/4):if MyY10 then UCount=10 2347 else 2348 UCount=0 2349 end if 2350 if D=1 then 2352 MyY=MyY+(1+DCount/4) 2353 if MyY+MyHight>ScHight-MyHGap then MyY=ScHight-MyHight-MyHGap 2355 DCount=DCount+1:if DCount>10 then DCount=10 2357 else 2358 DCount=0 2359 end if 2440 put MyX-1,MyY-1,MyCharMask,and,F 2445 if MySt=EXIST then 2450 put MyX,MyY,MyChar,or,F 2451 if MyOp=EXIST then 2452 X=MyX-MyOpW-3:X1=MyX+MyWidth+3 2453 if X>=BarWidth then put X,MyY,MyOpt,or,F 2454 if X1+MyOpW12 then 2590 if MyNum=0 then 2600 GameOver=1 2610 else 2620 MyNum=MyNum-1:MySt=ST2:MyCo=Count 2630 gosub 6110:'Disp MyNum 2640 end if 2650 end if 2690 end if 2990 return 3100 '----------- shoot ----------- 3105 BuSt[I]=EXIST:BuX[I]=MyX+MyWidth/2-MyBu1W/2 3110 BuY[I]=MyY-MyBu1H:BuW[I]=MyBu1W:BuH[I]=MyBu1H 3120 return 3130 '----------- shoot ----------- 3131 X=MyX-MyOpW/2-3-MyBu1W/2 3132 if X>=BarWidth then 3135 BuSt[I]=EXIST:BuX[I]=X 3140 BuY[I]=MyY-MyBu1H:BuW[I]=MyBu1W:BuH[I]=MyBu1H 3145 end if 3150 return 3160 '----------- shoot ----------- 3161 X=MyX+MyWidth+3+MyOpW/2 3162 if (X+MyBu1W-1)3 then 3260 BuY[I]=BuY[I]-3 3270 put BuX[I],BuY[I],MyBu1,or,F 3280 else 3290 BuSt[I]=NONE 3300 end if 3310 return 5000 '=============== STAGE =============== 5010 Count=1:cls: gosub 900 :' init Entable 5020 MyX=BarWidth+BgWidth/2-MyWidth/2 5030 MyY=ScHight-MyHight-MyHGap:MySt=EXIST:MyOp=NONE 5040 ScAreaX=BarWidth*2+BgWidth 5050 gosub 50000:' load map 5060 LCount=0:RCount=0:UCount=0:DCount=0 5070 MapIdx=0:EnNum=0 5130 Y=0:StageClear=0:GameOver=0 5140 putStr ScAreaX,Y,StageStr,1 : Y=Y+FontHight : StageY=Y 5150 gosub 6020 : Y=Y+FontHight : 'Disp Stage 5160 putStr ScAreaX,Y,HiScoreStr,1 : Y=Y+FontHight : HiScoreY=Y 5170 gosub 6040 : Y=Y+FontHight : 'Disp HiScore 5180 putStr ScAreaX,Y,ScoreStr,1 : Y=Y+FontHight : ScoreY=Y 5190 gosub 6080 : Y=Y+FontHight : 'Disp Score 5195 MyNumY=ScHight-MyHight-MyHGap:gosub 6110:'Disp MyNum 5200 BgY1=0:BgY2=0:BgSpeed1=1:BgSpeed2=2 5205 TEMPO="T500V10":sound 1,TEMPO+S11+S12+S13+S11+S12+S15 5206 play 1 5210 while (Count<500)&&(GameOver=0) 5230 gosub 2000 : ' show background 5235 '---------- move background --------------- 5240 BgY1=BgY1-BgSpeed1:BgY2=BgY2-BgSpeed2 5250 if BgY1<0 then BgY1=BgY1+BgHight 5260 if BgY2<0 then BgY2=BgY2+BgHight 5270 gosub 2300 : ' move My Char 5280 gosub 3200 : ' move bullet 5290 gosub 30000 : ' move enemy 5300 gosubM EnSt,I,ST1,25000,ST2,25000,ST3,25000 : ' check enemy collision 5310 gosub 25700 : ' check My collision 5450 update BarWidth,0,BarWidth+BgWidth-1,ScHight-1 5460 if sound1status()=0 then play 1 5490 Count=Count+1 5500 end while 5510 StageClear=1 5520 return 6000 '----- STAGE Sub ----- 6010 'Disp Stage 6020 putStr ScAreaX,StageY,format("%-5D",Stage),1 6030 return 6040 'Disp HighScore 6050 gosub 9000 6060 putStr ScAreaX,HiScoreY,format("%-5D",HiScore),1 6070 return 6080 'Disp Score 6090 putStr ScAreaX,ScoreY,format("%-5D",Score),1 6095 'putStr ScAreaX,ScoreY+8,format("%-5D",EnNum),1 6100 return 6110 'Disp MyNum 6115 fill ScAreaX,MyNumY,ScWidth-1,ScHight-1,0 6116 if MyNum<>0 then 6120 for I=0 to MyNum-1 6130 put ScAreaX+I*(MyWidth+1),MyNumY,MyChar 6140 next 6145 end if 6150 return 8000 '-------- saveHiscore ------------ 8010 Addr=0 8020 write Addr,GameTitle:Addr=Addr+16 8030 for I=0 to HighScoreNum-1 8040 write Addr,format("%D",HighScore[I]):Addr=Addr+16 8050 next 8060 return 8100 '-------- readHiscore ------------ 8110 Addr=0 8120 if GameTitle=read(Addr,strlen(GameTitle)) then 8125 Addr=Addr+16 8130 for I=0 to HighScoreNum-1 8140 HighScore[I]=val(read(Addr,5)):Addr=Addr+16 8150 next 8160 end if 8170 return 9000 '---------get HiScore------------- 9010 HiScore=0:MinHiScore=100000 9020 for I=0 to HighScoreNum-1 9030 if HighScore[I]>HiScore then HiScore=HighScore[I] 9035 if MinHiScore>HighScore[I] then MinHiScore=HighScore[I] 9040 next 9050 return 9060 '--------HiScore Initial---------- 9070 for I=0 to HighScoreNum-1 9080 HighScore[I]=0 9090 next 9095 return 10000 '-------------- openning --------------------- 10300 'sound 1,TEMPO+S11+S12+S13+S11+S12+S15 10310 'play 1 10400 '----- MAKE SCREEN ------- 10410 cls 10430 Comment="PUSH B KEY" 10440 TitleX=(ScWidth-strlen(GameTitle)*FontWidth)/2 10450 TitleY=(ScHight-2*FontWidth)/3 10460 putStr TitleX,TitleY,GameTitle,1 10470 CommentX=(ScWidth-strlen(Comment)*FontWidth)/2 10480 putStr CommentX,TitleY*2,Comment,1 10490 '--------------- Wait --------------- 10495 keyBpushd=0 10500 while -1 10505 for I=0 to 20 10507 if keyB()=1 then keyBpushd=1:exit for 10510 'if sound1status()=0 then play 1 10520 sleep 50 10525 next 10530 putStr CommentX,TitleY*2,Comment,1,xor,T 10535 if keyBpushd=1 then exit while 10550 end while 10560 sound 1,"L8." 10570 'sound 2,"L8." 10580 'sound 3,"L8." 10590 play1:'play 1,2,3 10600 return 20000 '=========== define Char ============= 20005 MyWidth=10:MyHight=5:MyHGap=3 20010 MyChar=createBM(MyWidth,MyHight) 20020 setBM MyChar,0,"0001111000" 20030 setBM MyChar,1,"0011001100" 20035 setBM MyChar,2,"0110000110" 20040 setBM MyChar,3,"1111111111" 20050 setBM MyChar,4,"1111001111" 20100 MyCharMask=createBM(MyWidth+2,MyHight+2) 20110 setBM MyCharMask,0,"111100001111" 20120 setBM MyCharMask,1,"111000000111" 20130 setBM MyCharMask,2,"110000000011" 20135 setBM MyCharMask,3,"100000000001" 20140 setBM MyCharMask,4,"000000000000" 20150 setBM MyCharMask,5,"000000000000" 20160 setBM MyCharMask,6,"000000000000" 20170 MyBu1W=2:MyBu1H=3 20180 MyBu1=createBM(MyBu1W,MyBu1H) 20190 setBM MyBu1,0,"11" 20200 setBM MyBu1,1,"11" 20210 setBM MyBu1,2,"11" 20300 En0W=8:En0H=5 20310 Enemy00=createBM(En0W,En0H) 20320 setBM Enemy00,0,"00011000" 20330 setBM Enemy00,1,"01111110" 20350 setBM Enemy00,2,"11111111" 20370 setBM Enemy00,3,"01111110" 20390 setBM Enemy00,4,"00011000" 20400 EnBuWi=4:EnBuHi=3 20410 EnBuBM=createBM(EnBuWi,EnBuHi) 20420 setBM EnBuBM,0,"0110" 20430 setBM EnBuBM,1,"1111" 20440 setBM EnBuBM,2,"0110" 20450 'EnEx0W=8:EnEx0H=5 20460 EnemyEx0=createBM(En0W,En0H) 20470 setBM EnemyEx0,0,"10000001" 20480 setBM EnemyEx0,1,"01100110" 20490 setBM EnemyEx0,2,"11111111" 20500 setBM EnemyEx0,3,"01100110" 20510 setBM EnemyEx0,4,"10000001" 20520 'EnEx1W=8:EnEx1H=5 20530 EnemyEx1=createBM(En0W,En0H) 20540 setBM EnemyEx1,0,"00000000" 20550 setBM EnemyEx1,1,"00100100" 20560 setBM EnemyEx1,2,"01111110" 20570 setBM EnemyEx1,3,"00100100" 20580 setBM EnemyEx1,4,"00000000" 20590 'Powerup 20600 PowW=7:PowH=6 20610 Powerup=createBM(PowW,PowH) 20620 setBM Powerup,0,"1111111" 20630 setBM Powerup,1,"1000001" 20640 setBM Powerup,2,"1001101" 20650 setBM Powerup,3,"1000001" 20660 setBM Powerup,4,"1001111" 20670 setBM Powerup,5,"1111111" 20700 'Option 20705 MyOpW=5:MyOpH=3 20710 MyOpt=createBM(MyOpW,MyOpH) 20720 setBM MyOpt,0,"00100" 20730 setBM MyOpt,1,"01110" 20740 setBM MyOpt,2,"11111" 24990 return 25000 '=========== check enemy collision =========== 25070 '----- bullet ------ 25080 J=isColM(EnX[I],EnY[I],EnW[I],EnH[I],BuX,BuY,BuW,BuH,BuSt,EXIST) 25090 if J<>BuMax then 25100 BuSt[J]=NONE 25110 EnSt[I]=EXPLOSION 25120 EnCo[I]=Count 25130 EnNum=EnNum-1:Score=Score+10 25140 if EnNum=0 then 25150 '--- bonus ------- 25155 if Count<250 then 25160 for K=0 to 2 25170 if (80+K*50EnBuMax then 25735 MySt=EXPLOSION:MyOp=NONE 25740 MyCo=Count 25750 EnBuSt[I]=NONE 25760 end if 25770 while 1 25780 I=isColM(MyX,MyY,W,H,EnX,EnY,EnW,EnH,EnSt,ST1,ST2,ST3,POW) 25790 if I<>EnMax then 25810 if EnType[I]=POWERUP then 25820 MyOp=ST1 25830 EnSt[I]=NONE 25840 sound 3,ItemGetSound:play3 25900 else 25910 MySt=EXPLOSION 25920 MyCo=Count 25930 EnSt[I]=EXPLOSION 25935 end if 25950 else 25960 exit while 25970 end if 25980 end while 25985 end if 25990 return 26000 '----------- set powerup ------------- 26010 if Found<>EnMax then 26020 EnSt[Found]=POW 26030 EnType[Found]=POWERUP:EnX[Found]=EnX[I]:EnY[Found]=EnY[I] 26040 EnCo[Found]=Count:EnH[Found]=PowW:EnW[Found]=PowH 26060 end if 26070 return 30000 '=========== move enemy =========== 30100 '-------- load Map to EnTable ------------ 30110 for I=MapIdx to EnMapNum-1 30120 if EnIn[I]=Count then 30130 gosubS EnSt,Found,NONE,50800:' load Map to EnTable 30135 MapIdx=I+1 30140 else 30150 if EnIn[I]>Count then exit for 30160 end if 30170 next 30200 '------------------ move ------------------- 30210 gosubM EnSt,I,ST1,40000,ST2,43000,ST3,46000,EXPLOSION,49000,POW,49500 30220 gosubM EnBuSt,I,EXIST,39000 31900 return 39000 '---------- move enemy bu ----------- 39010 EnBuX[I]=EnBuX[I]+EnBuDx[I] 39020 EnBuY[I]=EnBuY[I]+EnBuDy[I]:W=BarWidth 39030 if isOut(W,0,BgWidth,ScHight,EnBuX[I],EnBuY[I],EnBuW[I],EnBuH[I])=1 then 39040 EnBuSt[I]=NONE 39050 else 39060 put EnBuX[I],EnBuY[I],EnBuBM,or,F 39070 end if 39080 return 40000 '------------- ST1 --------------- 40010 EnCount=Count-EnCo[I] 40020 gosubC EnType[I],40100 40030 return 40100 '--- EnemyType0 ST1 ---- 40110 EnY[I]=EnY[I]+2 40120 put EnX[I],EnY[I],Enemy00,or,F 40130 if EnCount>=EnP1[I] then EnSt[I]=ST2 40140 return 43000 '------------- ST2 --------------- 43010 EnCount=Count-EnCo[I] 43020 gosubC EnType[I],43100 43030 return 43100 '--- EnemyType0 ST2 ---- 43110 EnCount=Count-EnCo[I] 43120 put EnX[I],EnY[I],Enemy00,or,F 43130 if mod(EnCount,9)=0 then 43140 for J=1 to 3 43145 gosubS EnBuSt,EnBuIdx,NONE,48100 43210 next 43220 endif 43290 if EnCount>=EnP2[I] then EnSt[I]=ST3 43300 return 46000 '------------- ST3 --------------- 46010 EnCount=Count-EnCo[I] 46020 gosubC EnType[I],46100 46030 return 46100 '--- EnemyType0 ST3 ---- 46110 EnY[I]=EnY[I]-1 46120 put EnX[I],EnY[I],Enemy00,or,F 46130 if EnCount>=EnP3[I] then EnSt[I]=NONE:EnNum=EnNum-1 46140 return 48100 '------ set En bu --------- 48110 EnBuSt[EnBuIdx]=EXIST 48120 EnBuX[EnBuIdx]=EnX[I]+En0W/2+EnBuWi*(2-J) 48130 EnBuY[EnBuIdx]=EnY[I]+En0H 48140 EnBuDx[EnBuIdx]=2-J 48150 EnBuDy[EnBuIdx]=1 48155 EnBuH[EnBuIdx]=EnBuHi:EnBuW[EnBuIdx]=EnBuWi 48160 return 49000 '---------- EXPLOSION ------------ 49010 EnCount=Count-EnCo[I] 49015 if EnCount=1 then 49017 if sound3status()=0 then sound 3,ExplosionSound:play3 49019 end if 49020 if mod(EnCount/3,2)=0 then 49030 put EnX[I],EnY[I],EnemyEx0,or,F 49040 else 49050 put EnX[I],EnY[I],EnemyEx1,or,F 49060 end if 49070 if EnCount>18 then EnSt[I]=NONE 49080 return 49500 '------------- POW -------------- 49510 EnCount=Count-EnCo[I] 49520 if mod(EnCount,3)=0 then EnY[I]=EnY[I]+1 49530 put EnX[I],EnY[I],Powerup,or,F 49540 if isOut(BarWidth,0,BgWidth,ScHight,EnX[I],EnY[I],EnW[I],EnH[I])=1 then 49550 EnSt[I]=NONE 49560 end if 49570 return 50000 '=========== load map =========== 50010 if Stage=1 then 50020 gosub 51000 50730 else 50740 gosub 51000 50750 end if 50760 return 50800 '---------- load Map to EnTable------- 50805 'Found=EnMax 50810 'for J=0 to EnMax-1 50820 ' if EnSt[J]=NONE then 50830 ' Found=J:exit for 50840 ' end if 50850 'next 50860 if Found<>EnMax then 50870 EnSt[Found]=ST1 50935 strToA EnPr[I],0,Found,3,EnX,3,EnY,3,EnType,3,EnP1,3,EnP2,3,EnP3 50940 EnCo[Found]=EnIn[I]:EnH[I]=En0H:EnW[I]=En0W 50950 EnNum=EnNum+1 50960 end if 50970 return 51000 '-----------Stage 1 ------------------- 51020 W1=format("%03D",BgWidth/5-En0W/2):W2=format("%03D",BgWidth*2/5-En0W/2) 51030 W3=format("%03D",BgWidth*3/5-En0W/2):W4=format("%03D",BgWidth*4/5-En0W/2) 51040 W5=format("%03D",BgWidth/2-En0W/2) 51100 '--InTime-------------- x -- y -- type --- pat1 ---pat2 ---pat3 51110 EnIn[0]=30:EnPr[0]=W5+"000"+"000"+"010"+"030"+"050" 51120 EnIn[1]=80:EnPr[1]=W1+"000"+"000"+"010"+"030"+"050" 51130 EnIn[2]=80:EnPr[2]=W4+"000"+"000"+"010"+"030"+"050" 51140 EnIn[3]=130:EnPr[3]=W2+"000"+"000"+"010"+"030"+"050" 51150 EnIn[4]=130:EnPr[4]=W3+"000"+"000"+"010"+"030"+"050" 51160 EnIn[5]=180:EnPr[5]=W1+"000"+"000"+"010"+"030"+"050" 51170 EnIn[6]=180:EnPr[6]=W4+"000"+"000"+"010"+"030"+"050" 51180 EnIn[7]=200:EnPr[7]=W2+"000"+"000"+"010"+"030"+"050" 51190 EnIn[8]=200:EnPr[8]=W3+"000"+"000"+"010"+"030"+"050" 51210 EnIn[9]=260:EnPr[9]=W5+"000"+"000"+"010"+"030"+"050" 51220 EnIn[10]=300:EnPr[10]=W1+"000"+"000"+"010"+"030"+"050" 51230 EnIn[11]=300:EnPr[11]=W4+"000"+"000"+"010"+"030"+"050" 51240 EnIn[12]=340:EnPr[12]=W2+"000"+"000"+"010"+"030"+"050" 51250 EnIn[13]=340:EnPr[13]=W3+"000"+"000"+"010"+"030"+"050" 51260 EnIn[14]=380:EnPr[14]=W1+"000"+"000"+"010"+"030"+"050" 51270 EnIn[15]=380:EnPr[15]=W4+"000"+"000"+"010"+"030"+"050" 51280 EnIn[16]=380:EnPr[16]=W2+"000"+"000"+"010"+"030"+"050" 51290 EnIn[17]=380:EnPr[17]=W3+"000"+"000"+"010"+"030"+"050" 60000 return 61000 '=========== GAME OVER ============= 61005 if MinHiScore