var frame=0; var delay; var px=15; var py=14; var pp=0; var ax,ay; var af=0; var key,ex,ey; var ef=0; var es=15; var score=0; var hp=3; var i; while(1){ delay=tick(); if(frame%es==0){ if(ef==0){ if(rnd(2)==0){ ex=0; ey=rnd(23); } else{ ex=rnd(31); ey=1; } ef=1; } if(rnd(2)==0){ if(px>ex){ ex=ex+1; } if(px<ex){ ex=ex-1; } } else{ if(py>ey){ ey=ey+1; } if(py<ey){ ey=ey-1; } } } if(frame%10==0){ key=inkey(); if(key==30){ py=py-1; pp=0; } if(key==31){ py=py+1; pp=2; } if(key==28){ px=px-1; pp=3; } if(key==29){ px=px+1; pp=1; } if(px>31){ px=31; } if(px<0){ px=0; } if(py>23){ py=23; } if(py<1){ py=0; } if(key==32){ af=1; if(pp==0){ ax=px; ay=py-1; } if(pp==1){ ax=px+1; ay=py; } if(pp==2){ ax=px; ay=py+1; } if(pp==3){ ax=px-1; ay=py; } } while(inkey()!=0){} } if(frame%3==0){ cls(); lc(22, 0); log("LIFE:"); i=0; while(i<hp){ log("o"); i=i+1; } lc(px,py); log(chr(0xEB)); lc(ex,ey); if(rnd(2)==0){ log(chr(0xF9)); } else{ log(chr(0xFA)); } lc(0,0); log("SCORE:",score); } if(af==1){ lc(ax,ay); log(chr(0xF5)); if((ax==ex)*(ay==ey)){ ex=-1; ey=-1; ef=0; es=es-1; score=score+1; if(score==15){ cls(); lc(13,12); log("CLEAR"); sleep(5000); cls(); exit(0); } } } if((px==ex)*(py==ey)){ hp=hp-1; if(pp==0){py=py+3;} if(pp==1){px=px-3;} if(pp==2){py=py-3;} if(pp==3){px=px+3;} if(hp==0){ cls(); lc(11,12); log("GAME OVER"); sleep(5000); cls(); exit(); } } if(frame%15==0){ ax=-1;ay=-1;af=0; } frame=frame+1; delay=tick()-delay; sleep(20-delay); }
上下左右のキーでキャラクタを動かして、スペースキーで攻撃ですね。近づいてくる敵との間合いの取り方が攻略のポイントですね。逃げるか攻撃するか……。このバランスがとても楽しいです。