[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/10 16:01 / Filesize : 349 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

七行プログラミング part2



117 名前:S ◆Q14CxNhI [02/04/20 02:06]
<body onKeyDown=K=event.keyCode><pre><script>function Y(){
  Z[11]=P; // 得点を表示バッファに書き込み
  E=B[t]; // 現在落下中のブロック
  f=0; // 移動・回転決定用フラグ
  if(K) // キーが押されているか
    if(K!=32){ // 横移動
      d=K-37?1:-1 // d:x方向の差分
      for(i=0;i<4;i++) // 横移動判定
        f+=Z[h+E[i]+d]==S; // 移動先が空白かどうか
      f?0:h+=d; // すべて空白なので移動決定
    }else{ // 回転
      C=[]; // 回転先の座標保持用
      for(i=0;i<4;i++){ // 回転判定
        p=E[i]; // ブロックの各位置
        v=Math.round(p/12); // 回転先の x 座標
        w=p-v*12; // 回転先の y 座標
        C[i]=w*12-v; // 回転先の座標計算
        if(Z[h+C[i]]==S)f=1; // 回転先が空白かどうか
      }
      t*!f?E=B[t]=C:0; // すべて空白なので回転決定
    }
  K=0; // キー入力キャンセル
  for(f=i=0;i<4;i++){ // 落下判定
    f+=Z[12+(p=h+E[i])]==S; // 落下先が空白かどうか
    Z[240+p]=S // ブロック表示のために表示バッファへコピー
  }
  if(f){ // 落下できない
    for(i=0;i<4;i++)Z[h+E[i]]=S; // ブロック停止
    t=++t%7; // 次のブロック決定(現在順送り)
    h=17 // 位置初期化
  }else h+=12; // 一段落下
  for(k=1,i=19;i--;){ // ラインがそろったか判定
    for(j=11;--j&&Z[i*12+j]==S;); // そろったラインを検索
    if(!j){ // そろった
      P+=k++; // 得点 1ライン 1点, ..., テトリス 10点 になる
      for(j=++i*12;j>2*12;)Z[j]=Z[j---12] // 全体を一段下げる
  }}
  for(i=240;i--;){
    D.all(6+i).innerHTML=Z[240+i]; // 表示用バッファを表示
    Z[240+i]=Z[i] // 表示バッファのクリア
  }
  Z[5]!=S?setTimeout(Y,99):0; // 入り口にブロックがあったら終了
}
// ブロックの作成
// 中心からの差分で配置する。棒を除くすべてのブロックはL字にブロックがあり、
B=[[-11],[-24],[2],[13],[-13],[-1],[2,-1]]; // それ以外の1個だけを別にする
for(i=0;i<7;i++)B[i].push(0,1,-12); // ブロック共通部分追加
D=document;
// 位置は、縦方向1マスは 12 単位となる 座標(x,y) なら h=x+y*12
h=17; // ブロックの中心位置初期化
Z=[]; // バッファ [0-239]:固定したブロック用 [240-479]:表示用バッファ
for(K=t=P=i=0;i<240;){
  D.write(i%12?"":"\n","<b></b>"); // HTML表示領域の描画
  Z[240+i]=Z[i]=++i%12<2||i>228?S="□":" "; // 床と壁の設定、番兵にもなる
}
Y()
</script>






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<349KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef