//WAVE LATTE&PANCAKE VER var w=new Array(15); var x,y; var px,py; var i,s; x=7;y=4;px=16;i=0; while(i<15){ w[i]=0; i=i+1; } function snd(s0,s1){ uart(0x80,0x0b,0x09,4,s0,5,s1,4,255,5,255); } function spc(i,ch){ uart(0x80,0x05,0x07,i,ch); } function spm(i,cx,cy){ uart(0x80,0x06,0x08,i,cx,cy); } function cw(i,wt){ var j; j=i*2; if(w[j+1]==0){ if(rnd(10)>8){ w[j+1]=-rnd(2)-1; w[j]=14; } }else{ if(wt%w[j+1]==0){ w[j]=w[j]-(w[j+1]<0)+(w[j+1]>0); if(w[j]<1){ w[j+1]=-w[j+1]; } if(w[j]>14){ w[j+1]=0; spc(i,0xff); } } } } function prw(i){ var j; j=i*2; var lp=0; var dw; if(i>0){ dw=w[j]-w[j-2]; if(dw*dw<2){ lp=lp+1; } if(i==py){ dw=w[j]-px; if(dw*dw<2){ lp=lp+1; } } } if(i<7){ dw=w[j]-w[j+2]; if(dw*dw<2){ lp=lp+1; } if(i+2==py){ dw=w[j]-px; if(dw*dw<2){ lp=lp+1; } } } if((w[j]==x)*(i+1==y)*(lp>0)){ snd(14,3+lp*(rnd(2)+1)); spc(9,0x08); x=x+(w[j+1]>0)-(w[j+1]<0); s=s+lp; w[14]=w[14]+1; lc(9,7); log(s); lc(16,7); log("やっほー!"); } if(lp<1){ spc(i,0x53); } if(lp==1){ spc(i,0x5b); } if(lp>1){ spc(i,0x30); } spm(i,w[j]*5,i*5+5); } function me(){ var k; if(w[14]<1){ k=inkey(); }else{ k=0; } if(k!=0){ lc(16,7); log(" "); spc(9,7); } x=x+(x<14)*(k==29)-(x>0)*(k==28); y=y+(y<7)*(k==31)-(y>1)*(k==30); spm(9,x*5,y*5); } function pal(){ if((px==x)*(py==y)){ px=px+6; spm(8,px*5+2,py*5); } if(px>14){ py=rnd(7)+1; } if((px>-1)*(rnd(7)==0)){ px=px-1; spc(8,0x4e); spm(8,px*5+2,py*5); } if(px<0){ lc(8,11); log("は゜らそるとんし゛ゃった!\n"); snd(9,1); sleep(1000); snd(255,255); break(); } } function main(){ cls(); uart("PC SPRITE START 04\n"); spc(9,0x07); spm(9,x*5,y*5); s=0; lc(7,7); log("S 0"); var wt=0; while(1){ i=0; while(i<7){ cw(i,wt); if(w[i*2+1]!=0){ prw(i); } i=i+1; } me(); w[14]=0; wt=(wt+1)%3; sleep((s<1001)*(100-s/10)); snd(255,255); pal(); } } main();
このゲームでカラー画面はとても映えますね! スカッとさわやか波乗り! スコアとゲーム画面を別モニタにしてあるのも、親切に思います。