あなたもできる!C言語でテトリスを40分で作る方法
デモ
ニコニコ動画の伝説の動画
「テトリスを1時間強で作ってみた【実況解説】」という動画をご存知でしょうか?2009年にニコニコ動画で公開されて話題になった動画です。
インタビュー記事:「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」
この動画ではテトリスをいちから作ってわずか62分で完成させています。
しかし実はスタート直後はMinGWのインストール、EmEditorのインストールに続いてブロック画像の作成などをしており、プログラミングが始まるのは開始13分のところからです。
さらに次の10分は「空のウィンドウ」を作るために時間を使っており、実質的にテトリスのプログラミングが始まるのは動画23分のところからです。
つまり、実質的に40分のプログラミングでテトリスを完成させています。
で、動画を見ながら同じようにやれば誰でもテトリスを作れるはずなのですが、そう簡単にはいきません。
なぜなら、ソースコードを一字一句間違えずに完璧に入力しなければならないからです。
一文字でも間違えれば、わけのわからないコンパイルエラーが出て先には進めなくなってしまいます。
私も当時、動画を見ながらテトリス作成にチャレンジしてみたのですが、途中どこかで入力を間違えて全然動きませんでした。
どこで間違えたのかもわからずあえなく挫折。
あれから3年の歳月が流れ・・・
今回再チャレンジしてみたら見事に動きました!!
Githubにてソースコード公開!
作者の@tkihiraさんに許可をいただいたので、ソースコードを公開します!!
https://github.com/DQNEO/CppTetris
ぜひソースコードをゲットしてコンパイルしてみてください。
これを使えば、ブロックの静止画作成などの面倒くさい工程は飛ばしてすぐにプログラミングから始めることができます。
また、ソースコード(tetris.cpp)と一緒に完成品の実行ファイル(tetris.exe)が同梱してあるので、ダウンロードしてすぐにプレイすることができます。
Gitのコミットログは動画再生時間に対応
Gitのコミットログには対応する動画の再生時刻が記録されています。動画を見ながら過程を追いたい場合に大変便利です。
これを見てやれば、誰でも必ずテトリスを完成させることができると思います!
ぜひチャレンジしてみてください。
作者の天才性について考察してみた
動画を見るとわかるのですが、ソースコードを書いてからコンパイルするまでの間隔が非常に長いことに驚かされます。ときには何十行もコンパイルしないままソースコードを書き続けて、ひとつのエラーもなく一発でコンパイルを成功させています。
どうしてこんな曲芸が可能なのか?
作者はやはり天才なのだろうか?
これは私にはかなり奇妙に思えました。
上記インタビュー記事の中にヒントがありました。
中学校のパソコン部は今でいう"ペア・プログラミング"に近い環境でした。2畳もない狭い部室にパソコンを置いて、そこに部員が10人くらい入って、プログラミングする人をみんなで見ているという環境です。間違うと周りから瞬時に指摘されますし、先輩のプログラミングを見ることもできます。当時はコンパイルに時間がかかったので、エラーを起こすと袋叩きにされるわけです。ですからできるだけミスをしないプログラミングが求められました。あれはいい環境でしたね。なるほど!
これはうらやましい環境ですね。
謝辞
@tkihiraさん、ありがとうございます。@dqneo MITでお願いします!
— 紀平拓男(Takuo Kihira) (@tkihira) October 28, 2012
追記:不具合2件修正しました。
@itouhiro さんの指摘にあった不具合を修正しました。ご指摘ありがとうございます!
"C言語テトリスのソースコードを修正 - itouhiroはてなブログ"
こちらの解説記事もおすすめです。
"C言語テトリスのソースコードを読む - itouhiroはてなブログ"
カテゴリ:
C