2017 04 02

マインスイーパーを作るの1

浅川沿いの桜

浅川沿いの桜。 三分咲きぐらいだろうか。

バス停の桜

バス停の桜。 こちらも三分咲き。 近所に桜はたくさんあるけど、毎年、こいつが一番綺麗に見える。 見上げるのではなくて見下ろすのが良いのかな。

minesweeper

昨日の続き。

まず何で作るか。

これはいつもの通り、HTML+JavaScriptでいいだろう。 UIが簡単に作れるし、テストも楽だし。

次に何を動作対象に作るか。

俺の手持ちのプラットフォームは WindowsPC, surface, MacBook, iPad, iPhone, nexus で、せっかくだからこれら全てで使えるようにしたい。

と考えていきなり詰まる。 マインスイーパーの操作は開くか旗を立てるかで、これってマウスがあることが前提なんだよな。 左クリックで開き、右クリックで旗を立てる。 が、iPadやiPhoneだと右クリックとか無理だし。

右クリックの代わりに長押しにするか。 そうすると、今度はマウスが使える方で操作性が悪くなりそう。 ドラッグと区別するのも面倒そう。

操作モードを指定するか。 この場合、操作モードをいつ指定するかも問題になる。 開くか旗を立てるかを選択してからクリックするか、逆にクリックする度に開くか旗を立てるかを選ぶようにするか。 ゲームでは何度もクリックするのだから、毎回そのクリックで何をするか選ばされるより、先に選んで次々とクリックする方が楽だろう。 しかし操作モードを間違って旗を立てるつもりで爆弾を開いてしまうなんて事態の防止には、後から選ぶ方が圧倒的に有利なんだよな。 うーん…。

小さなセルが密集している中をマウスでクリックするか指先でタップするかという操作の違いも大きいが、タッチデバイス側は拡大縮小が簡単なので何とかなるだろう。

あと、オリジナルのマインスイーパーは低中高と難易度を選択できたが、この機能は要らない。 どうせ高一択だ。

クリアタイムはどうするかな。 俺の周囲ではタイムアタックが流行っていたが、俺はあのタイムに価値があるとは思えなかったんだよな。 推論能力よりも運の要素の方が圧倒的に大きいし、推論だけで必ずクリアできるって訳でも無いし。 経過時間を取るのも保持するのも簡単だと思うけど、価値を見出せないものに手をかけるのもなぁ…。

ということで仕様。

だいたいこんな感じで良いだろう。 セルを開いたときに連鎖的に開くところがこれで良かったか今ひとつ自信が無いけど、とりあえずはこれで進めて、何か不都合があったらそのときに考える。

ダラダラ考えてたら遅くなったので、続きは明日。