Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/09/24 21:27:25

MixJuice GET URL : kidspod.club/mj/568

海水浴wavelatte

海水浴waveをIchigolatteに移植しました!
お盆に海水浴にいった北陸の海は波が高かった。
波をかぶると冷たくてなんだか楽しいですね!
波にあたるなら大きい波に当たった方が楽しい!
矢印キーで上下左右に人を動かせます。
海には小さい波”^”がいったりきたりしていますが
縦に波が並ぶと大きい波”(スペード)”とか”%”
に一瞬なりますのでタイミングよく当たると画面上に"やっほー”を表示して
左上の点数”S”が加算されます。
たまに波が重なって押し寄せてきますのでそこにあたれば一気に大量点ゲット!
また速度が違う波が重なるタイミングを狙うのも楽しい。
遊んでいる間にパラソル"*"は風で左に飛ばされていきます。いちばん左まで飛ばされるとゲームオーバーになってしまうので、その前にひろえばとりあえずいちばん右に戻ります。
海水浴の波と風の雰囲気を楽しんでください。
スコアが増えるとちょっとずつスピードアップします。
Ichigolatteのスピードを感じてください!

SOURCE CODE

//WAVE LATTE VER
var w=new Array(14);
var x,y;
var px,py;
var i,s;

x=7;y=4;px=-2;i=0;
while(i<15){
 w[i]=0;
 i=i+1;
}


function cw(i,wt){//i BANME WAVE
 var j;//FOR USE ARREY
 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){
   lc(w[j]+7,i+8);
   log(" ");
   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;
    lc(w[j]+7,i+8);
    log(" ");
   }
  }
 }
}

function prw(i){
 var j;
 j=i*2;
 var lp=0;//local pts
 var dw;//delta wavepos

 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)){
  beep(lp);
  x=x+(w[j+1]>0)-(w[j+1]<0);
  s=s+lp;
  lc(9,7);
  log(s);
  lc(16,7);
  log("やっほー!");
 }

 lc(w[j]+7,i+8);
 if(lp<1){
  log("^");
 }
 if(lp==1){
  log("A");
 }
 if(lp>1){
  log("%");
 }
}

function me(){
 var k;
 k=inkey();
 if(k!=0){
  lc(x+7,y+7);
  log(" ");
  lc(16,7);
  log("     ");
 }

 x=x+(x<14)*(k==29)-(x>0)*(k==28);
 y=y+(y<7)*(k==31)-(y>1)*(k==30);
 lc(x+7,y+7);
 log("#");
}

function pal(){
 if((px==x)*(py==y)){
  beep();
  px=-2;
 }
 if(px<-1){
  px=14;
  py=rnd(7)+1;
 }
 if((px>-1)*(rnd(7)==0)){
  px=px-1;
  lc(px+7,py+7);
  log("* ");
 }
 if(px<0){
  lc(8,11);
  log("は゜らそるとんし゛ゃった!\n");
  break();
 }
}

function fd(){
 var j=6;
 i=6;
 while(i<24){
  while(j<16){
   lc(i,j);
   log(chr(143));
  j=j+1;
  }
  j=6;
  i=i+1;
 }
}

function main(){
// cls();
 lc(x+7,y+7);
 log("#");
 s=0;
 lc(7,7);
 log("S 0");
 var wt=0;//wait count
 while(1){
  me();
  i=0;
  while(i<7){
   cw(i,wt);
   if(w[i*2+1]!=0){
    prw(i);
   }
   i=i+1;
  }
  wt=(wt+1)%3;
  sleep((s<1001)*(100-s/10));
  pal();
 }
}

fd();
main();

COMMENT