Java版 Permuteについて
最終更新日:08.12.27

■はじめに
イメージを使ったゲームの実験版として、マック版を目標に作り始めた「Permute」ですが、予想以上に苦労して公開に至りました。 「Milk Cap」同様、ハイスコアの登録ができますので、是非がんばって名前を残していってください。
私の確認できる環境だけでも、環境によってはうまく動いていなかったりするのですが、 気になったことなどBBSの方へどんどん書いていってください。

■遊び方(全体の動き)
最初、名前を入力する画面が出ます。ここでは、ハイスコアを獲得したときに登録に使う名前を入力してください。
[対戦開始]のボタンを押すと、ゲームの画面になります。 詳しいルールは、下記の「遊び方(ゲーム画面)」及び「この手のゲームを知らない方へ」を参照してください。
制限トライ内で正解できると、ハイスコアのチェックをしに行きます (下段のステータスバーに「Checking your score!! Wait a minute.」と表示されます)。
ここで、ハイスコアを獲得していると、同じウィンドウに、そのタイプのハイスコアのリストを表示し、登録された部分が赤く表示されます。 この時に、対戦したタイプとカードの種類をクッキーに登録しており、次からはこの状態から始まる様になります。
対戦を再開するには、ブラウザの「戻る」ボタンを押してください。通常は、先ほどのゲームの続きの画面になります。 ブラウザによっては、名前の入力の画面まで戻ってしまう様ですが、この時は、[対戦開始]のボタンを押して、続行してください。
なお、ハイスコアを獲得していなくても、タイプやカードの種類を変更した後には、最後に遊んだ状態をクッキーに残すのを目的に ハイスコアのリストを表示します。 この時も、ブラウザの「戻る」ボタンでゲームを再開してください。

■遊び方(ゲーム画面)
このゲームは、「マスターマインド」系のゲームで、複数のカードの中から、自分の予想した並びに対し、 場所もカードも当たっているカードの枚数(BULL)と、 カードのみ当たっているカードの枚数(COW)のヒントをもらい、 コンピュータが作成したカードの並びを当てるといったものです。

マックと同様、3種類の難易度(Child, General, Doctor)を楽しむ事が出来ます。
各タイプは
Child超初心者向け6枚のカードから3枚の組み合わせを当てる
General中級者向け10枚のカードから4枚の組み合わせを当てる
Doctor超上級者向け12枚のカードから5枚の組み合わせを当てる
の様になっています。

カードもいくつかのパターンから選ぶことができます。
Color Code各色のカードが用意されています。
Num Songちょっと懐かしの数え歌をカードにしたものです。
Number数字で無いと考えづらいといった人向け。数字のカードです。
好みに応じて選択してください。

ゲームを始めるには[ Start ]ボタン、途中でゲームをやめる時には[ Give Up ]ボタンを押してください。

ゲームが始まると、カードを自由にドラッグできる様になります。 ゲーム画面上の好きなところに置くことができますので、あなたの好みで、頭の整理しやすい様に分類しながら、考えていってください。
予想を枠内にセットしたら、[ Try ]ボタンを押してください。 BULLCOWのヒントをもらえます。
これを繰り返して正解を導いてください。

スコアは、正解を導くのにかかった実際の時間に、トライ回数による減点時間を加えたものになります。 従ってスコアは小さいほど高得点ということになります。
トライ回数による減点は、トライ3までは減点0、それ以降1トライに付き10秒の加算となります。
それと、運で高得点をとるのを避けるため、2回以内で正解したときは、問題を変更する様にしています。 (Doctorだけは、2回目での正解のときは、問題を変更していません)
なお、一部の環境では、時間が測定できず正しいスコアが得られない為、ハイスコア登録されません。

■この手のゲームを知らない方へ
まずコンピュータが、同じ絵柄が重複していないという条件を満たした問題を作成します。(4桁の数字のケースで例えると、「1123」では「1」が2回現れているので、重複した並びがあり不可です)。

以降、あなたはコンピュータが作成した問題を予想し、その予想に対するヒントをコンピュータからもらい、更に推理を重ね、正解を導いていきます。
コンピュータが教えてくれるヒントとは、コンピュータが作った問題と、あなたの予想とを比較して、 ”絵柄も場所(桁)も当たっているカードの枚数(BULL)”と ”絵柄は当たっているが、場所(桁)が違っているカードの枚数(COW)”です。 4桁の数字を例にすると、問題が「0329」、あなたの予想が「0123」の場合、絵柄(各桁毎に分けた数字のことです)の当たっているのは 「0」「2」「3」の3つで、うち場所(桁)が合っているのは「0」「2」の2つ、場所(桁)が違っているのは「3」の1つということになります。 従って、このケースでコンピュータが教えてくれるのは、 ”絵柄も場所(桁)も当たっているカードの枚数(BULL)”が2枚、 ”絵柄は当たっているが、場所(桁)が違っているカードの枚数(COW)”が1枚ということになります。

4桁の例では、”絵柄も場所(桁)も当たっているカードの枚数(BULL)”が4枚となれば、正解ということになります。

このゲームでは、何度もTryしていけば必ず正解を導くことができます。それを、いかに無駄無く予想をし、時間をかけず少ない回数で当てられるかにおもしろさがあります。


参考として
ちょっとしたヒントになればと思い、「Child」レベルを例に、考え方について作者の考えを述べておきます。このレベルでは、6枚のカードから3枚の並びを当てることになります。

まず、Try1で適当な3枚のカードに対するヒントをもらいますますが、このヒントから、選ばなかった3枚についても、何枚含まれているかを知ることができるのが解るでしょうか!?例えば(「0」「1」「2」「3」「4」「5」からなる3桁の数字を例に説明させていただきます)正解が「024」、予想が「012」の場合、ヒントとしては(桁も合っている)1枚、(桁は違っている)1枚となりますが、「3」「4」「5」の選ばなかった3枚の中にあるカードは、1枚であることも解ってしまいます。(6枚中、選んだ3枚の中に2枚合っているカードがあるなら、残りの3枚には1枚でしょう!!)

それを踏まえて、Try2の予想で仮に「123」と予想して、ヒントに(桁も合っている)1枚、(桁は違っている)0枚となった場合、Try1で選ばなかったカードである「3」は含まれていないことが確定します(もし、「3」が含まれていると仮定した場合、「1」「2」には1枚も含まれていないことになり、「0」「1」「2」の中に2枚含まれていることと矛盾してしまうからです)。また、Try1にあったカードで、Try2で選ばなかったカードである「0」は必ず含まれていることが確定します。(もし、含まれていないとすると、「0」「1」「2」の中に2枚(Try1のヒントより)、「1」「2」の中に1枚(Try2のヒントより)しか無いことに矛盾してしまいます)。

以上、慣れないと考えにくい話ですが、これさえ理解できれば、その応用で簡単に推理していくことができます。

HOME
E-MAIL:aanda@nifty.com(AKIO HOSOKAWA)