エイリアン戦争
このゲームは、エイリアンが優れた人種である非常に混雑した惑星で行われます。あなたの仕事は、あなた自身のエイリアンを作成し、他のすべてを打ち負かすことです。
ボード
2次元のボードです。
ボードの片側の長さは、使用するボードのMath.ceil(sqrt(species * 100 * 2.5))
約40%です。ボードは惑星であるため、西の地図から出ると、東に戻ります。北に出て行くと、南にいることに気づくでしょう。
能力
地球上の各種には能力があります。どうぞ:
名前 メリット ライフHP = lifeLVL * 5(ヒットするたびに減少、0 =デッド)、ベースHP = 10 強さヒットは、範囲[1〜strengthLVL]の範囲内でランダムに整数ダメージを与えます 防御範囲[0〜(50 / DefenseLVL + 1)]でランダムにintを選択します。int == 0の場合、次の攻撃をかわします 視力を与えますvisionLVL / 2あなたの周りの視野 賢ぼけ(増加)の範囲でランダムにすべての能力[0にclevernessLVL 2 /他の外国人への送信
ゲーム
- 各提出には100個のインスタンスがあります。
- インスタンス化後、各エイリアンは合計10個の能力ポイントを設定できます。インスタンスごとに異なるポイントを設定できます。
- 10ポイント以上を設定すると、インスタンスは停止します。
- ゲームは1000ラウンドで構成されます。各ラウンド:
- すべてのエイリアンは経由で動きを返さなければなりません
move(char[] fields)
。これにはMove.STAYが含まれます。 - 複数のエイリアンがフィールドにいる場合、2人がランダムに選択されます。
- 両方が平和に同意する場合(でfalseを返す
wantToFight
)、現在の場所に留まるか、そうでない場合は戦います。 - これは、1人のエイリアンのみがフィールドに滞在するか、全員が平和に同意するまでループします。
- 両方が平和に同意する場合(でfalseを返す
- すべてのエイリアンは経由で動きを返さなければなりません
エイリアンが何かを殺すと、敵の能力の1/5を獲得します。勝者のHPには2 * enemyLifeLVLが補充されます。
勝者は、最も能力(生きているエイリアンの能力の合計)を持つものです。
戦い
両方のエイリアンは「同時に」お互いにヒットします。つまり、他のエイリアンを殺しても、彼は一度あなたにヒットできます。
回避:攻撃を受ける前に、ゲームはを使用して攻撃を回避できるかどうかを計算しrand.nextInt(50 / defenseLvl + 1) == 0
ます。回避スキルを計算する場合、defenseLvlが50を超えることはありません(したがって、回避率の最大値は50%です)。
ヒット:攻撃を避けなければ、ヒットし、HPが減少しrand.nextInt(enemy.getStrengthLvl()) + 1
ます。
関係するエイリアンのいずれかまたは両方が死亡すると、戦いは終了します。勝者は、もしあれば、報酬を受け取ります。
ゲームのルール
- すべての能力の基本レベル(能力ポイントを付与しない)は1です(基本HPは10)。
- 戦うように求められたときに送信される値は、ライフ(HPではありません!)、強さ、防御、ビジョンレベルです。
- 戦うように頼まれたとき、賢さは送られません。
- すべての浮動小数点数は、使用/送信するときに最も近い整数に丸められますが、浮動小数点数として格納および増加されます。
- 最大回避率は50%です。さもなければ、戦いは決して終わらないかもしれません。
獲物
すでに野外にいる5種があります。彼らは獲物なので、求められたときに戦わないことを選択します。
クジラ:レベル10ライフステイ 牛:レベル10の強さのランダムな動き 亀:レベル10防衛南西 イーグル:レベル10ビジョンフィールドを調べ、危険を回避しようとする 人間:レベル10賢さ北東
それらはW
、マップ内の最初の文字(クジラの場合)で表されます(エイリアンとA
、空のフィールドと空白' '
)。
追加の規則
- 反射は許可されていません。
- 他のエイリアンとの対話(インスタンス化など)は禁止されています。
- ファイルやデータベースなどの外部リソースの書き込み/読み取りも許可されていません。
- Java(バージョン1.8)の提出のみが許可されています(Javaはかなり簡単であり、このゲームの専門家である必要はありません)。
- すべての提出は、エイリアンクラスを拡張する必要があり、エイリアンパッケージに配置されます。
- 7月19日に最高のエイリアンを受け入れます。その日の12:00 UTCまでに提出されたすべてのエイリアンがテストされます。
- すでに非常に多くのエイリアンがいるため、ユーザーあたり最大3件の提出。
エイリアンの例
package alien;
import planet.Move;
public class YourUniqueNameHere extends Alien {
public void setAbilityPoints(float[] abilities) {
abilities[0] = 2; //life
abilities[1] = 2; //strength
abilities[2] = 2; //defense
abilities[3] = 2; //vision
abilities[4] = 2; //cleverness
}
public Move move(char[][] fields) {
//you are in the middle of the fields, say fields[getVisionFieldsCount()][getVisionFieldsCount()]
return Move.STAY;
}
public boolean wantToFight(int[] enemyAbilities) {
//same order of array as in setAbilityPoints, but without cleverness
return true;
}
}
制御プログラム
制御プログラムのソースコードはこちらにあります。最新の実行に含まれるすべてのエイリアンで更新されました。
最終スコア(2014年7月20日、平均10ゲーム)
alien.PredicatClaw 1635.4 alien.LazyBee 1618.8 alien.CartographerLongVisionAlien 1584.6 alien.ChooseYourBattles 1571.2 alien.Bender 1524.5 alien.HerjanAlien 1507.5 alien.FunkyBob 1473.1 alien.SecretWeapon2 1467.9 alien.PredicatEyes 1457.1 alien.CorporateAlien 1435.9 alien.GentleGiant 1422.4 alien.CropCircleAlien 1321.2 alien.VanPelt 1312.7 alien.NewGuy 1270.4 alien.BananaPeel 1162.6 alien.Rock 1159.2 alien.BullyAlien 1106.3 alien.Geoffrey 778.3 alien.SecretWeapon 754.9 alien.SecretWeapon3 752.9 alien.FunkyJack 550.3 alien.Stone 369.4 エイリアン・アサシン277.8 alien.Predicoward 170.1 餌食155.2 alien.Morphling 105.3 alien.Eli 99.6 alien.Warrior 69.7 alien.Hunter 56.3 alien.Manager 37.6 alien.OkinawaLife 14.2 獲物クジラ10.5 alien.Gamer 4.5 alien.Randomite 0 alien.Guard 0 prey.Eagle 0 alien.Rogue 0 alien.WeakestLink 0 alien.Fleer 0 alien.Survivor 0 alien.Sped 0 alien.Junkie 0 alien.Coward 0 alien.CleverAlien 0 獲物人間0 alien.BlindBully 0 獲物。カメ0 alien.AimlessWanderer 0