まずは実際にゲームをプレイしてみるのだ!
矢印キー左右で移動、エンターキーで回転、F5キーなどで再読み込みすればリセットだ。
(その他のキーを押すとブロックが変な動きをしたりするので注意)
これは2chで発明されたもので、JavaScriptで作られたこれ以外にも、
C言語でオセロが6行で作られていたりもする。
6行オセロは、VisualStudioでコンパイルしたらエラーが出たので俺は諦めてしまったが…
スレで動作確認できている人が沢山いるので、gccとかのコンパイラならコンパイルできるのだろう。
そんな神技が生まれたスレッドはこちら
七行プログラミング
http://pc.2ch.net/tech/kako/984/984182993.html
七行プログラミング part2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
さぁ、7行テトリスの話に戻ろう。
気になるソースコードだが、テトリスの画面で、右クリック→ソースの表示 をすれば見られる。
だが、HTMLソースに広告コードが入ってしまうので、余計なコードが大量に付加されている。
なので、ここに元ソースを表示しよう
<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script> |
2ちゃんねるのプログラマーは化け物か!
こんなとてつもないコードがよく動作してるな… と思うぜ…
7行を解読するだけでも難しい…
下に行くほど新しいコメントです
1 | 投稿者: stanch | 投稿日時: 2015年3月4日 (水) 14:12:04 |
今やったら41点…(ノ△`) 次のブロックが見えないから瞬間的な判断が必要になるな… |
2 | 投稿者: 中学生。 | 投稿日時: 2016年9月3日 (土) 15:42:41 |
初めまして。最近、WEBプログラミングを始めたのですが、まだまだ簡単なものしか 作れてません。。すごいと思います!!!!! |
3 | 投稿者: stanch | 投稿日時: 2016年10月30日 (日) 08:45:50 |
うん、すごいよね〜 |
4 | 投稿者: . | 投稿日時: 2017年7月25日 (火) 09:39:27 |
最新のはもう少し短かったような |
5 | 投稿者: stanch | 投稿日時: 2017年7月30日 (日) 22:07:19 |
検索したところ、確かにそのようです。6行でいけてる! 他に分かったこと ・7行テトリスの作者は実は著名人 ・6行にしたのは2chのレスが最初っぽい? スレッド『七行プログラミング part6』の9番と35番(考案が9番で35番が修正した感じ?) ・はてなのコメント欄でも無名の辻プログラマーが6行を作って置いていった(2chのとは少し違うようなので、その人がまた別に考えたものかも知れない) |
6 | 投稿者: えいz | 投稿日時: 2017年12月18日 (月) 09:38:01 |
ふれっしゅれも |
7 | 投稿者: ? | 投稿日時: 2022年1月24日 (月) 09:41:49 |
スゲー |