6行テトリス ― 468文字で動くテトリス
7行×79文字の伝統を破り、6行×79文字・468文字でスコア表示付きテトリスを実現
※ゲーム画面をクリックしてからキー操作してください。スマートフォンではキーボードが必要です。
操作方法
| ← → | 左右移動 |
| ↑ | ブロック回転 |
| ↓ | 高速落下 |
| F5 | リスタート(ページ再読み込み) |
ソースコード全文(6行・468文字)
以下のコードをメモ帳などのテキストエディタに貼り付けて、.htmlで保存するだけで遊べます。
| 1 2 3 4 5 6 | <body id=D onKeyDown=K=event.which-38><script>Z=X=[B=A=12];Y=_=>{for(C=[q=c=i =4];f=i--*K;c-=!Z[h+(K+6?p+K:C[i]=p*A-(p/9|0)*145)])p=B[i];for(c?0:K+6?h+=K:t?B =C:0;i=K=q--;f+=Z[A+p])X[p=h+B[q]]=1;if(e=!e)if(h+=A,f|B)for(Z=X,X=[l=228],B=[[ -7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?l-=l%A*!Z[l]:(P++,c =l+=A);--c>A;)Z[c]=Z[c-A];for(S="";i<240;S+=X[i]|(X[i]=Z[i]|=++i%A<2|i>228)?i% A?"■":"■<br>":"_");D.innerHTML=S+P;setTimeout(Y,99)};Y(h=e=K=t=P=0)</script> |
実装されている機能
- 7種のテトリミノ ― I、O、S、Z、J、L、Tブロックすべてを実装
- 回転 ― ↑キーで90度回転。1つの算術式で座標変換を実現
- 衝突判定 ― 壁・床・固定ブロックとの衝突を検出
- ライン消去 ― 横一列が埋まると消去される
- スコア表示 ― 消した行数が画面右下に表示される
