2013年9月13日金曜日

D言語 + SDL2.0でテトリス的なものを作ってみた

気づいたら既に9月も半ばなんですがそれは……

書いたコードはここにあります。
https://github.com/rigibun/PuzzleGame
1ファイルで全部やってたり、中途半端にオブジェクト使ってるけど基本的には手続き指向だったり、コメント書いてなかったりと色々ひどいことになってるけど。
githubのリポジトリ作る画面でライセンスをパブリックドメインにしといたけど、実際バイナリ作るときはSDLとかそれぞれ違うライセンス持ってたりするからよく分からない。

開発環境について

dubを使いました。Derelict3とか勝手に持ってきてくれるしすごい楽。dubすごい便利。
SDL2.0はここにあるんで適当にインストールしたりすれば多分動くと思います。
ただ、 Thread.sleep( dur!("msecs")(1) ); とかやってるのであまり互換性ないかもしれない。そのあたりは全然分かってない。

反省点

・メイン関数がアレ。単純に行数が100行ってだけなら問題無いのかもしれないけど、循環的複雑度的には結構ひどいと思う。
・コメント書いてない。最初にREADMEに日本語書かなかったことから、なんとなく英語使うことにこだわってたけど、そもそも英語力なんて無いし(関数の命名とか見れば分かるけど)、
 最初から日本語でコメント書いとけばいいのでは。
・テトリスとしてのゲーム性。スーパーローテーションとか言うモダンなテトリスの機能は全然入れてない。
・メンテナンス性。皆無。

実際にはスコア表示というか消したライン数の表示と、NEXTの表示くらいはやりたかったけど、完成したコード見たら直す気が全く起こらない。

作ってて気づいたこと

・D言語楽しい。と言ってもD言語の機能ほとんど使ってない気がするけど。
・実装力というか、設計力というか、プログラミング力が足りない。全体の見通しが立たない。
・どんなクソなプログラムでも完成させることは大事。"Just Fxxking Do It."

もっとまともなコードが書けるようになりたい