// INI var Rst=3; var Sco=0; var Sco1Up=100; var Spd=90; var SpdLim=40; var RodLen=19; var RodX=12; var RodW=7; var RodWLim=4; var FigX=RodW/2+1; var FigY=RodLen-3; var FigYLim=5; var UfoX=FigX; var UfoY=0; var UfoStr=2; // // SCREEN // function drwScr(){ cls(); var i=0; while(i<RodLen){ lc(RodX,i); log(chr(0x85)); lc(RodX+RodW+1,i); log(chr(0x8a)); i=i+1; } if(FigX>RodW){FigX=RodW;} if(FigX<1 ){FigX=1;} UfoY=0; while(inkey()); } // // MOVE // function movChr(){ lc(RodX+FigX,FigY ); log(" "); lc(RodX+FigX,FigY+1); log(" "); lc(RodX+UfoX,UfoY ); log(" "); var key=0; key=inkey(); FigX=FigX +(key==0x1d)-(key==0x1c); if(UfoY>=RodLen){ UfoY=-1; UfoX=rnd(RodW)+1; } if(UfoY<(FigY-UfoStr)) {UfoX=UfoX+rnd(3)-1;} if(UfoX<1 ){UfoX=1; } if(UfoX>RodW ){UfoX=RodW; } if(UfoY<RodLen){UfoY=UfoY+1;} lc(RodX+FigX,FigY); log(chr(0xf1)); lc(RodX+UfoX,UfoY); log(chr(0xfa)); } // // SCORE // function getSco(){ if(UfoY<RodLen){return 0;} Sco=Sco+10; if(Sco%Sco1Up ){return 1;} lc(RodX,RodLen+2); log("1UP!"); sleep(500); lc(RodX,RodLen+2); log(" "); Rst=Rst+1; if(RodW>RodWLim){ RodW=RodW-1; drwScr(); } if((RodW<=RodWLim) *(Spd>=SpdLim)) {Spd=Spd-15;} if((Spd<=SpdLim) *(FigY>FigYLim)) {FigY=FigY-1;} } // // CRUSH // function crsFig(){ if(((1<=FigX)*(FigX<=RodW)) *((FigX!=UfoX)+(FigY!=UfoY)) ){return;} lc(RodX+FigX,FigY); log("*"); sleep(300); Rst=Rst-1; drwScr(); } // // MAIN // drwScr(); var w=1; while(w){ movChr(); getSco(); crsFig(); lc(0,1); log("SCORE=",Sco); lc(0,2); log(chr(0xf1),"=",Rst); sleep(Spd) if(Rst<1){w=0;} } lc(0,4); log("GAME OVER"); lc(0,6);
Latte版まで作っていただきありがとうございます! LattePlayerの挙動は確かに妙ですね。原因を調べてみようと思います。