« JavaScript (20) プレイアウトのルール訂正 | トップページ | プログラミング講座(126) マインスイーパ 完成版 »

2013/05/08

プログラミング講座(125) マインスイーパ ベータ版

Small Basic Forum の5月のチャレンジ問題に「マインスイーパを作れ」という問題があったので、取り組みを開始しました。とりあえずゲームができるレベルになったので、プログラムID FMN979 として発行しました。
図123 マインスイーパ ベータ版
【図123 マインスイーパ ベータ版】

記録を設定ファイルに残すようにしているので、ローカルにインポートして使用することをお奨めします。実行前に File オブジェクトのある行のコメントを元に戻してください。

今回の版では右ボタンで旗を立てる操作はできません。右ボタンは左ボタンと同じ動作をします。旗を立てなくても9×9なのでなんとか解けると思います。

それから、この版には次のステージの準備中に画面をクリックするとブロックが開いてしまうというバグがあります。次回までに修正しようと思います。

何も(地雷も数字も)ないマス目を開くと、隣接する何もないマス目も自動的に開きます。この機能の実現には再帰的な呼び出しを利用しました。サブルーチン OpenAdjacents() が OpenAdjacents() 自身を呼び出しています。Small Basic にはローカル変数がないので、自分自身で制御変数(iCol, iRow, dir)を壊さないようにスタックに保存しています。囲碁の連(隣接する石)を調べるときと同じ手法です。

|

« JavaScript (20) プレイアウトのルール訂正 | トップページ | プログラミング講座(126) マインスイーパ 完成版 »

Small Basic」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(125) マインスイーパ ベータ版:

« JavaScript (20) プレイアウトのルール訂正 | トップページ | プログラミング講座(126) マインスイーパ 完成版 »