海戦をプレイするための最適なアルゴリズム

数日前、友人の何人かが海戦の仕方を知らないことを知って驚いた。 つまり もちろん、彼らはルールを知っていますが、彼らはどういうわけか偶然にプレイし、その結果、しばしば負けます。 この投稿では、ゲームの改善に役立つ主なアイデアの概要を説明します。



ゲームのルール



海軍戦闘には多くのオプションがありますが、次の船のセットで最も一般的なオプションを検討します。







リストされているすべての船は、10 x 10セルの正方形のフィールドに配置する必要がありますが、船は角や側面に触れることはできません。 競技場自体は上から下に番号が付けられ、垂直には「A」から「K」までのロシア文字がマークされます(文字「»」および「»」はスキップされます)。



同様のサイズの敵フィールドが隣に描かれます。 敵の船への攻撃が成功すると、敵フィールドの対応するセルにクロスが置かれ、2回目の攻撃が行われます。失敗した攻撃では、対応するセルにドットが置かれ、移動が敵に進みます。



最適戦略



ゲームでは、海戦は常にチャンスの要素ですが、最小限に抑えることができます。 最適な戦略の検索に直接進む前に、明白なことを声に出す必要があります。敵の船に乗る確率は高く、未確認のセルがフィールドに残るほど、船に命中する可能性は低くなり、未確認のセルはフィールドに残ります。 T.O. 効果的なゲームのためには、敵への最適な射撃と船の最適な配置という2つのことを一度に学ぶ必要があります。



以下の説明では、次の表記が使用されます。







最適な撮影


最適な射撃の最初で最も明白なルールは、次のルールです。破壊された敵船を直接取り囲むセルで射撃しないでください。







上記で採用された指定に従って、図では、それらのセルは黄色でマークされ、失敗したショットはすでに発射されています、赤はショットがショットで終了したセル、緑は発射されなかったセルですが、船が保証されていますそれらはそうではありません(ゲームのルールに従って船が触れることができないため、そこに船を置くことはできません)。



2番目のルールは、最初のルールの直後に続きます。敵船を倒した場合は、保証された空きセルのリストをできるだけ早く取得できるように、すぐに終了する必要があります。



最初の2つから3番目のルールに従います。まず、敵の最大の船をノックアウトする必要があります。 おそらくこのルールはあなたには明らかではありませんが、少し考えてみると、敵の戦艦を破壊することで、最良の場合、保証された14個のフリーセルに関する情報をすぐに受け取ることができます。







T.O. 最適な射撃戦略は、最大の敵船の標的を絞った探索と破壊に限定できます。 残念ながら、戦略を策定するだけでは十分ではなく、それを実装する方法を提案する必要があります。



始めに、競技場の4 x 4の正方形のセクションを見てみましょう。 検討中のエリアに敵の戦艦が存在する場合、4発以内でノックアウトされることが保証されます。 これを行うには、各水平および垂直にチェックされたセルが1つだけになるように撮影します。 以下は、そのような射撃のすべてのオプションです(反射と回転を除く)。







これらすべてのオプションの中で、最初の2つのオプションのみが10 x 10セルフィールドで最適であり、最大24ショットが戦艦に当たることを保証します。







敵の戦艦が破壊された後、巡洋艦、そして駆逐艦の探索を開始する必要があります。 同時に、あなたはそれを推測しました、あなたは同様のテクニックを使うことができます。 ここで、フィールドをそれぞれ3セルと2セルの正方形に分割する必要があります。







戦艦の検索時に2番目の戦略を使用した場合、巡洋艦と駆逐艦を検索するには、次のフィールドで撮影する必要があります(戦艦の検索時にすでに撮影したフィールドは緑色でマークされています):







ボートを検索するための最適な戦略はないため、ゲームの最後には主に運に頼らなければなりません。



最適な船の配置


最適な船配置戦略は、ある意味で、最適な射撃戦略の反対です。 射撃の際には、無料のセルが保証されているため、チェックする必要があるセルの数を減らすために最大の船を見つけようとしました。 これは、船を配置する際に、紛失した場合に保証される空きセルの数を最小限に抑えるように設定する必要があることを意味します。 覚えているように、フィールドの中央にある戦艦は敵に対して一度に14フィールドを開きますが、コーナーに立っている戦艦は敵に対して6フィールドしか開きません。







同様に、12のフィールドの代わりにコーナーに立っている巡洋艦は6つしか開きません。したがって、フィールドの境界に沿って大型船を配置すると、ボート用のスペースが増えます。 なぜなら ボートを見つけるための戦略はありません。敵はランダムに撃つ必要があり、ボートを捕まえるまでに空いたフィールドが多いほど、敵が勝つのは難しくなります。



以下に、ボート用に多くのスペースを残す大型船を配置する3つの方法を示します(青色でマーク)。







上記の各配置では、ボート用に正確に60個の空きセルが残ります。つまり、誤ってボートに乗る確率は0.066です。 比較のために、船をランダムに配置する価値があります。







この配置では、ボートには21個のセルしか残りません。これは、ボートにヒットする確率がすでに0.19であることを意味します。 ほぼ3倍高い。



結論として、私はあなたが海戦でプレイするのに時間をかけすぎてはいけないと言いたいです。 特に講義をしないように警告したい。 私がわびさびにいて、ガールフレンドと海戦をしたとき、ウェイトレスが通りかかって、彼女はかなり上手だと言った。 ペアでたくさん練習しました。 彼女が一度に講義に参加した場合、誰が彼女が働くかを知っていますか?



PSコメントは、ハブ上に同様の出版物が既にあったことを絶対に正しく示しています。それらへのリンクを置かないことは間違っているでしょう:



habrahabr.ru/post/82221



All Articles