【勉強】マインスイーパ(その6/最終回) by 日経ソフトウエア2011年6月号
2011-05-19 (木) 23:07 日経ソフトウエア
前回に引き続き、「日経ソフトウエア2011年6月号」の「iOSとAndroidで定番ゲームを作り比べ!」のマインスイーパの勉強です。
と言っても今回は前回作った◯×ゲームについてで、あまりマインスイーパの原型をとどめていませんが(汗)。
この◯×ゲーム、ネットで調べてみると正式名称は「三目並べ」というらしいです。(Wikipedia)
他にも「まるかけ」「まるぺけ」などの別な呼び名があるため、◯×ゲームだと通じていなかったかもしれませんね。。。
プログラムの中身についてです。
ロジックについてですが、クリアの判定を“◯を1、×を-1、まだ置いていないマスを0” としてint型にする方法にしました。
今までコンピュータの動きは乱数で空いているマスに入れていましたが、必勝法を覚えこませようとしました。
ネットで調べてみるとありました!!!ありがとうございます。
→三目並べ必勝法
要するに、
<先攻で四隅を取った場合>
・後攻が辺を取ると先攻の勝ちが確定
・後攻が四隅を取ると引き分け
<先攻で四隅を取った場合>
・後攻が辺を取ると先行は真ん中を取って勝ちが確定
・後攻が四隅を取ると引き分け
<先攻で辺を取った場合>
・引き分け
<後攻の場合>
・先行が相手があからさまなミスをしない限り勝てない
いや~、まさかこんなふうになっているとは知りませんでした。
てぃーは中学の時部活の遠征での電車の中でみんなでよく◯×ゲームをやっていましたがそれほど強くはありませんでいた。
この必勝法を知っていれば!と思いました。
で、この必勝法を実装しようかと思い、何度か登場する「リバーシのアルゴリズム」を読み直してみました。
(紹介が遅れましたがリバーシとは日本でいう「オセロ」のことです。)
こちらにはコンピュータのアルゴリズムについて詳しくありました。
「探索アルゴリズム」「評価関数」「定石」などなど。
これを勉強するにはより深くこの本を読む必要を感じました。
ということで、マインスイーパの派生としての勉強はこの記事で終了とし、
この件はテーブルゲームのアルゴリズムとしての勉強をしていこうと思います。
三目並べもその勉強の過程で作成していこうと思います。
また、この勉強とは別に自作のアプリ開発を再開していくつもりです。
以上、5月1日から18日間に及ぶ日経ソフトウエア6月号を使った勉強でした!!
ひとつのプログラムをじっくりと分析できたすばらしい期間でした。
↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
- 関連記事
-
- 【勉強】マインスイーパ(その6/最終回) by 日経ソフトウエア2011年6月号 (2011/05/19)
- 【勉強】マインスイーパ(その5) by 日経ソフトウエア2011年6月号 (2011/05/15)
- 【勉強】マインスイーパ(その4) by 日経ソフトウエア2011年6月号 (2011/05/10)
- 【勉強】マインスイーパ(その3) by 日経ソフトウエア2011年6月号 (2011/05/08)
- 【勉強】マインスイーパ(その2) by 日経ソフトウエア2011年6月号 (2011/05/05)