サンプル艦の紹介

ダウンロード頂いたプロジェクトにはあらかじめサンプルスクリプトが5つ用意されています。

samples.png

おおよそ SampleA < B < その他 の順に強力なアルゴリズムとなり、C,D,EについてはC<D<E<C<…のように三すくみとなっています。

(ランダム要素を含むため、必ずこの順に勝敗が決まるわけではありません。)

アルゴリズムには相性があり、時間をかけて組んだ複雑なアルゴリズムが単純なアルゴリズムに負けてしまうことも多々あります。

しかし、知恵と工夫次第でどのような相手に対してでも高い勝率を上げられるアルゴリズムを目指すことは可能です。

以下ではサンプル艦を簡単に紹介させて頂きます。

 

SampleA

非常に単純なアルゴリズムを持つ艦です。

遠距離射撃の着弾目標は常に発射時点における敵艦の座標に設定されているため、

敵艦が動いている状態ではほぼ命中しません。

近距離射撃の砲台角度も戦況と無関係に一定の角度に固定したままとなっています。

移動のアルゴリズムとしては、通常は中央の島に向かって一直線に接近、停泊して兵を送り、

敵機の攻撃によりヒットポイントが50以下になった場合敵機のいる位置から逆向きに退避するようになっています。

ただしフィールド半径を考慮した処理を行なっていないため、退避行動の結果フィールド外に出て負けてしまいます。

始めてアルゴリズムを組む場合、まずはこの艦を相手に練習してみましょう。

 

SampleB

SampleAに少し手を加えたアルゴリズムです。

遠距離射撃はSampleAと同じく発射時点における敵艦の座標を目標と設定されていますが、

近距離射撃の角度は敵艦と自艦の座標、および自艦の船首方向ベクトルから計算し、

きちんと敵艦のいる方向へ射撃を行えるようになっています。

移動アルゴリズムも単純な直線移動で島へ向かうのではなく、島を中心に螺旋を描くように移動します。

敵艦側から見れば、曲線的な移動のため移動先を予測した射撃がやや困難となります。

この艦もHPが50以下になると敵艦の逆方向へ退避しますが、フィールド外に出ないように処理を

行なっているため簡単には負けないようになっています。

また、敵艦が中央の島に停泊可能な位置にいる場合、敵艦を中心として旋回移動し、3つの砲門全てを

敵機に向けて射撃可能な状態にするようになっています。

さほど複雑なアルゴリズムではありませんが油断すると案外負けてしまうかもしれません。

この艦に勝てるようになったら本格的に戦略を考えたアルゴリズムを組んでみましょう。

 

SampleC

積極的に中央島の占領を狙うアルゴリズムです。

開始時点からVITAL UPにより加速して一直線に島を目指し、兵を送り込みます。

停泊中は無防備で遠距離射撃でも簡単に的中されますが、DEFENSEでダメージをキャンセルしながら兵を増やします。

島に送ったうさぎ兵は敵機を狙った援護射撃を行い、この射撃は兵数が多くなると非常に強力な攻撃手段となります。

SampleEのように接近戦を仕掛けてくる艦に対しては集中砲火を浴びせることができる一方、SampleDのように

島から一定の距離を置いて遠距離から確実に兵と自機を狙ってくる艦を苦手とします。

 

SampleD

離れた位置から遠距離攻撃を行う戦略をもった艦です。

ある程度敵艦から離れていれば遠距離射撃も容易に避ける事ができ、被ダメージ量が最も少なくなる戦略です。

島へ兵を送ることは困難ですが、適宜上陸した敵兵を処理していくことによって勝てずとも負けない状況を

作ることができます。この戦略はSampleCのように島に停泊する状態が長い艦に対して非常に強力な戦略ですが、

一方で、SampleEのように積極的に近距離戦を仕掛けてくる艦との戦闘を苦手とします。

 

SampleE

敵機への接近戦を主体としたアルゴリズムです。近距離射撃は弾速が速いため、

射程距離内なら容易に的中させることができます。ただし、敵機に接近せざるを得ないため

SampleCのような戦略の艦の場合、島の兵から集中砲火を受けることになります。

その一方、SampleDのような遠距離射撃を主体とした艦に対して一度距離を詰めてしまえば、

敵機の遠距離攻撃をほぼ無効化することが可能です。