たった200行で作れるテトリス Ruby編

コードリーディングに最適!たった200行で作れるHTML5製テトリスのプログラミング学習ムービー | Chrome Lifeが面白そうだったので、Rubyで書いてみた。

200行テトリス

ソースコードはGithubから。

daic-h/tetris-rb 行数は200行ピッタリ。偶然()

イテレータの部分等でfor文で配列アクセスなんかやってられないので微妙に違いますが、だいたい元ネタの機能や実装方法なんかそのまま移してあります。

実際に動かしている様子

tetris-rb from Daichi on Vimeo.

StarRuby

今回描写環境としてStarRubyを使用しました。StarRubyに関してはこちら。 Star Ruby - 2D ゲームライブラリ

はじめはRuby/tkを使おうと思ってたのですが、より簡単そうだったのでStarRuby採用。簡単に説明すると、ゲーム制作の為のSDLを使用した2Dゲームライブラリです。一応clearとdraw_blockというメソッドを持ってればどのライブラリでも動く感じにしてます。

最後に、Mac OSX Lion + homebrewでのStarRubyのインストール方法をば。

はじめにSDL系をインストール

brew install sdl sdl_mixer sdl_ttf

次にlibpng12を入れたいので(lionデフォルトlibpng15)tapを実行

brew tap homebrew/versions

次にlibpng12をインストール

brew install libpng12

libpng12をlink(macにデフォルトで入っているものはlinkしないとシンボリックリンクが作成されません。 ちなみに、linkせずともstarrubyのmake時にconfigureでlibpng12のpathを直接指定しても一応大丈夫でした)

brew link libpng12

StarRubyはrsdlを通してでしか起動しないため、gemをインストール

gem install rsdl

最後にstarrubyのソースをcloneしてきてmakeして完了

git clone git@github.com:hajimehoshi/starruby.git
cd starruby
ruby extconf.rb
make
make install

StarRuby分かりやすくて良さ気。もう少し触ってみてなんかできたらまた書く。おわり。