彼女と一緒に遊んでみたが、私はこれまでのところこのプログラムの戦略には多くのことが望まれていることがわかった。 スコアは9対1でした。
私は自分の考えをすべての人、特にプログラムの作者( michurin )と共有することにしました。 このプロジェクトは非常に興味深いものです。
注意!
この記事を読んだ後、Sea Battleゲームの結果はあなたにとって偶然ではなくなります。
この記事は、式を使用せずに簡単な言語で書かれています。
「本に記載されている式は、顧客の数を半分にします」Stephen Hawking。
E.Yaの本でずっと前に読んだアルゴリズムを、簡単でアクセスしやすい形で提示したいと思います。 オタク「 面白い数学ゲーム 」。
(記事を書くとき、アルゴリズムは補足されました)
「クラシック」海戦の戦略全体について説明します
(各プレイヤーには、1つの4パイプ、2つの3パイプ、3つの2パイプ、および4つの1パイプの10x10フィールドがあります)。
船は曲がることができません。
船は触ることができません。
プレーヤーは1ショットを行います。ミスした場合、移動は相手に渡され、
ヒットした場合、最初のミスの前に別のショットを取ります)。
もちろん、ゲームの成功はある程度運に依存します。 敵の領域にランダムに攻撃すると同時に、彼のすべての船をミスなく破壊できます。
この戦略では、100%の勝利は得られませんが、勝利の可能性が最大限に高まります。
クラスには女の子がいたので、彼女は最後まで1本のチューブ船を立てませんでしたが、ここでは正直な戦略について説明します。
戦略は2つの部分で構成されます。
1)船の正しい配置。
2)敵を適切に撃ちます。
船の正しい配置。
このアイデアは上記の記事ですでに言及されていますが、繰り返しますが、知らない人のために詳細に書いていきます。
アイデアの本質は、船に入る可能性を減らすように船を配置することです。
最も難しいのは、単一のチューブに入ることです。私たちのタスクは、単一のチューブの下にできるだけ多くのスペースを残すために、残りの船を最小限の領域に配置することです。
この配置は、「エッジ周辺」または「周辺周辺」の配置です。
したがって、すべての「大きな」船が沈没すると、単一チューブの船を検索するのは非常に困難になります。
例を示しましょう:
上記のゲームのように、私は配色を維持しようとしました。
黄色=発送
青=上部構造(隣の船が乗ることができない船の周りの場所)
海の波(シアン)=シングルチューブ配置の残りの領域。


記事を書いているときに、本にはない取り決めが偶然見つかりました。

星座は、垂直および水平方向の鏡面反射、およびフィールドを90、180、270度回転させることによっても取得できます。
4つの単管船を配置するための残りの領域、60個のセルが取得されます。 その結果、単管船に入る確率は60のうち4、つまり6.67%です。 他の配置では、ヒットの確率が高くなります。
プログラムによって提案された任意の配置を検討してください。
(実験の純度のために、モノチューブを取り外しました)。

4つの単管船を配置するための33セル、これはほぼ2倍少ない
つまり 私の勝利の確率はほぼ2でした! 倍(撮影の最適性を考慮しない)。
敵への正しい射撃
適切な撮影のアイデアは次のとおりです。
最初に、最大の船に乗る必要があります(クラシックの場合、4パイププレーヤーです)。 それに入るのは、おそらく単一のチューブよりも簡単です。
フィールドを4x4のエリアに分割します(オプション)。 あなたは4つの完全な正方形を取得する必要があり、すべてが残ります。

これを行うために、鏡の反射と回転によっても拡張できる7つの組み合わせがあります。 このような十字架では、4x4の正方形に4本のパイプを入れることはできません。

フィールド全体が任意の順序で撮影され、組み合わせが観察されます。

船に乗り込んだら、最後まで終わらせなければなりません。
船に命中すると、その周囲に単一セルの上部構造が描かれ、
無駄に撮影しないように。
さらに、4パイプオペレーターが沈むと、3パイプワーカーを探し、3パイププレーヤーが入らないようにフィールドを控えめに撃ちます。
フィールドを3x3の正方形に分割します。 3本のパイプを配置することが不可能になるように撮影します。

などなど。 シングルチューブにたどり着きました。
まあ、それは基本的にそれです。
クラスの全員がこの戦略を知った後、ゲーム「シーバトル」に進みました(4本の1本のパイプが5x5のフィールドに配置されています)。
その後、ゲームは数学的よりも本質的により心理的になりました(配置されたときに繰り返されるか繰り返されない)。
結論:
この戦略を採用し、プログラムの設定されたインテリジェンスレベルに応じて部分的に使用するように、「知性との海戦」の著者( michurin )に提案します。
PSこの記事を書いているとき、海軍の1隻の船も負傷しなかった=)。
PS2プログラムでの私のゲーム:







UPD画像は修正されました(pict.comからimagehackに転送されました)が、まだ表示されていません。
UPD2すべてをhabrastorage.orgに転送し、すべてが見えるようになりました。