新人の小幡です。
前回のブログでは、「ファイル共有システムを作成しました。」という
記事を投稿しました。
そして、その後の学習状況として、まず、JavaによるMinesweeperのプログラム作成、
そして、そのプログラムをもとにJavaScriptによるMinesweeperの作成を行いました。
Minesweeperはみなさんご存知だと思います。
そう、「マスの中には一定数の地雷が隠されていて、
地雷以外のマスをすべてオープンにすることができればゲームクリア。
1回でも地雷のあるマスを選択してしまったらゲームオーバー。」という
あのゲームです。
作成の中で苦労した点としては、以下の2点です⛇
ビット演算によるマスの判定と処理
旗を設置したマスとオープンしたマスには
フラグとよばれる目印のような情報を2進数のビット配列で格納してます。
そして、その目印をもとにマスの判定と処理をするというプログラムに
なっているのですが、普段あまり使用することがない2進数でプログラムを
作成するということを理解するまで時間がかかりました⏰
再帰処理を用いた判定
地雷なのか、空っぽなのか、数字なのか判定し、
空っぽならば、周囲8マスの中身をみて、
また空っぽだったらそのマスの周囲8マスをみてということを数字が出るまで
繰り返すということをしています。
このような処理を関数というものにまとめて記述しておき、
その関数から自分自身の関数を呼び出す。というものが再帰処理になります。
この再帰処理によるプログラムの作成はもちろん初めてです。
正直なところ、自分自身の関数から自分自身を呼び出すという言葉自体の
意味が理解できませんでした😵
そのため、まずはプログラムを見ながら、再帰処理という言葉の意味を
理解するというところからのスタートでした。
こうして完成したMinesweeperがこちらになります🌍
ぜひ、上記URLから遊んでみてください。
カッコいいデザインにはできませんでしたが、
ふつうに遊ぶうえでは問題なく動作するはず…です😕
【概要・操作】
- マウスの左クリックでマス目をオープン
- マウスの右クリックで旗の設置・非設置
- 難易度は初級・中級・上級・カスタムの4段階
- 難易度を選択し、リセットボタンをクリックすることで難易度が適応
- カスタム難易度についてもリセットボタンで適応
- タイマー上部に表示されている地雷の数は、残りの旗の数を反映
- ゲーム終了時は、マス目をすべてオープンし、結果を文字表示
それでは、また次回のブログで❗
小幡