1. ゲーム概要
原作マインスイーパーの魅力を忠実に再現しつつ、独自の快適機能で遊びやすさを追求した作品。
2. 目的
プログラミングの学習を目的に、ロジックとUI設計の両面で工夫が求められる「マインスイーパー」を題材に制作しました。
3. 使用技術
- JavaScript(p5.js)
- HTML / CSS
- オブジェクト指向プログラミング(クラス設計)
- UIイベント処理(マウス・キーボード)
4. 特徴・こだわりポイント
- 🛠️メニューの処理
- 複数バリエーションに対応:メニュー画面を設け、あらかじめ用意した複数の難易度を選択できるように設計。
- カスタムモードの実装:縦横サイズや爆弾の数を自由に指定できるカスタム機能を追加し、ユーザーの好みに応じたプレイが可能。
- 🎮ゲーム画面の処理
- 自動サイズ調整:マス目のサイズは盤面の大きさに応じて自動調整され、見た目が常に整うように工夫。
- 初手安全保証:最初にクリックしたマスが爆弾でないようにロジックを組み、安全なスタートを保証。
- 色のこだわり:数字の色はWindows版マインスイーパーに寄せ、視認性と再現性を向上。
- 自動展開機能:周囲の爆弾数が0のマスを開いた場合、周囲のマスを自動で連鎖的に展開。
- 旗の設置:右クリック(またはZキー)で旗を立て、爆弾の位置をマーキング可能。
- 一括展開機能:数字マスをクリックすると、周囲の旗の数と爆弾数が一致している場合に、未展開のマスを一括で開く便利機能を追加。
- リセットボタン:上部の「顔アイコン」をクリックすると、盤面をリセット。
- 表情の変化:ゲーム中・クリア時・ゲームオーバー時で顔の表情を変化させ、状態を視覚的に表現。
- メニューへの戻り:右上の☓ボタンでメニュー画面に戻れる導線を確保。
- 勝敗の明確化:クリア時の爆弾は青、失敗時は赤で表示し、視覚的に状態を明示。
5. 課題・改善点
- UIの使いやすさ:カスタム設定の入力UIがやや不親切なため、スライダーやプルダウンの導入で操作性を向上させたい。
- 視覚・聴覚演出の強化:アニメーションや効果音を追加し、ゲームとしての楽しさをさらに演出したい。
- クリア演出の強化:「顔の変化」や「爆弾の色」以外にも、お祝いメッセージやエフェクト演出などを導入したい。
- スコアやランキング:クリアタイムの計測やランキング機能を追加し、リプレイ性を高めたい。
改善点に記載した内容を踏まえ、今後は演出・スコア・UI面をさらに強化し、「遊んで楽しい+見て楽しい」作品に進化させていきたいと考えています。
6. スクリーンショット