アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

【プログラミング】マインスイーパを1時間強で作ってみた【実況解説なし】

こんにちは中川です。
【プログラミング】テトリスを1時間強で作ってみた【実況解説】(http://www.nicovideo.jp/watch/sm8517855)を少し前に見て、その流れるようなプログラミング&ペイントの使い方wに感動しました。そこで、最近めっきりコードを書く量が減っている気がするので、ちょっと何か試しにやってみようと思い、比較的簡単そうなマインスイーパを作ってみました。(動画はありません。)

実際に出来上がったものは、こちら。

※ソースはこちらを開いて右クリックソースを表示で確認ができます。

なかなか苦戦しました。。。
実際の作業時間ですが、1時間ではできず、、、1時間30分といったところでした。

なかなか、自分の場合、1時間テトリスの方のように流れるようなコーディングとはいかず、まだまだ勉強不足だなと実感しました。
今回は、あえてオブジェクト思考的には書かないをモットーに書いてみましたが、それにしてもコード内容も、無駄な処理やスマートさに欠ける部分が多々ありそうです。

また、開発途中に手癖でalertデバッグを行ってしまって、10*10回のアラートが実行されて時間を食ったり(console.logを使うべきでした)、無限ループでFirefoxをフリーズさせたりが数回ありました。。。デバッグ作業を手抜きして失敗する典型的なパターンですね。。。

さらに、本物のルールを後で調べたところ、以下のようなルールもあったりするようですね。



# 初級:9×9のマスに10個の地雷
# 中級:16×16のマスに40個の地雷
# 上級:30×16のマスに99個の地雷

「マインスイーパ - Wikipedia」より

この辺りの仕様についても、開発前にさくっと調べるべきでした。
完全に自分の記憶を頼りに作り出してしまってます。
実際のコーディングスピードも大事ですが、こういった仕様把握や調査能力が、開発速度や成果物の品質に大きく影響がでるのでしょう。出来上がりのデザインにもいまいち気を配れていませんね。
目の前のコードだけでなくもっと幅広く見る目を養いたいところです。

さて、このプログラムについては勢いプログラミングということもあり、今回は特にリファクタリングもしないで終了としたいと思います。

普段はPHPでのウェブ開発がほとんどですので、こういったゲームプログラミングなどの別分野のプログラミングもちょこちょこやってみるのもなかなか大事だなと。
見た目の動きがあるプログラミングはなかなか楽しいので、Flashも久々に触ってみたいなと思いました。


【追記】
ソースコードは以下となります。

>>HTML


test