Code Bots 2へようこそ!
前回のコードボット以来、あなたはレッスンを学びました。より多くのアクションをより少ない行に収めるためのより多くの方法を見つけようとしましたが、ついにそれを手に入れました。イベント駆動型のコードボットを作成します。
ボットは24行で構成する必要があります。各行は、次の2つの形式のいずれかに従います。
Condition:Action
または
Action
あなたのボットはまた、名前の5つの整数格納するのに十分な記憶域持っAてしますE。整数には、0〜23の値を格納できます。
各ターンで、条件の1つが真Cでない限り、lineを実行します。その場合、Ctrueの条件の行番号が含まれ、その行が実行されます。各ターンの終わりに、C増加します。
利用可能な条件があります:
- Start最初のターンのみに当てはまります。これを1回だけコードに含める必要があります
- BotAt(N)Nで定義された場所にボットがある場合はtrue
- Equals(A,B)AがBに等しい場合はtrueです。異なるタイプにできますが、そうであれば、等しくなりません。
- Modified(A)- A最後のターン中にコピーされた場合はtrueです。- A変数名、行、または条件でなければなりません
- Any(C1,C2,...)条件のいずれかが真の場合に真
- None(C1,C2,...)どの条件も真でない場合は真
- All(C1,C2,...)すべての条件が真の場合は真
- Not(C)Cがfalseの場合、trueです。- C条件でなければなりません。
変数は、次の形式のいずれかになります。最初の9つは数値であり、このページでNを使用する場合は常に使用できます。
- A、- B、- C、- D、- E
- 0から23までの数
- This現在の行番号を返します
- Add(N1,N2,...)すべての値の合計を返します
- Sub(N1,N2)N1-N2を返します
- Mult(N1,N2,...)すべての値の積を返します
- Div(N1,N2)N1をN2で割った値を返します
- Mod(N1,N2)N1 mod N2を返します
- OVar(N)変数名を受け入れ、相手の変数を返します
- Line(N)コードのN行目を返します
- Type(N)コードのN番目の行タイプを返します(タイプはアクションの名前です)
- Cond(N)N行目に条件を返します
- CondType(N)N行目に条件タイプを返します(タイプは条件の名前です)
- OLine(N)相手のコードのN行目を返します
- OType(N)相手のコードのN番目の行タイプを返します
- OCond(N)N行目に条件を返します
- OCondType(N)N行目に条件タイプを返します
AそしてB、あなたの個人的な使用のためでCあり、あなたのコードで実行する行を決定するためにD使用され、方向として使用されます。の各値はD、異なる正方形と方向のペアを参照します。E毎回ランダムな値を生成します。  DそしてE、それ以外の場合はランダムな値に初期化されます0。
使用される方向はになります[North,East,South,West][D%4]。あなたの対戦相手は、その方向の直近の正方形のボットです。
次の4つのアクションを使用できます。
- Move- Dth方向に1マス前方に移動します。そこにボットがある場合、移動しません。
- Copy(A,B)変数- Aをにコピーします- B。- B変数名を除き、数値にすることはできません。- Aそして- B異なったタイプにすることはできません。行をコピーしても条件はコピーされません。
- Flag何もしません。 コード内のフラグが最も多いボットがポイントを獲得します。最も多くのポイントを持つボットが勝ちます。
- If(C,L1,L2)trueの- L1場合に行を実行し- C、そうでない場合に実行し- L2ます。- Cは条件であり- L1、- L2行でなければなりません。
大きな絵
すべてのボットの50コピーが世界に配置されます。あなたの目標は、フラグをできるだけ多くのボットに入れることです。他のフラグタイプよりもフラグタイプが多いボットごとに、ポイントを獲得します。
ボットは次のように配置されます。
B...B...B...B...
..B...B...B...B.
B...B...B...B...
10回のゲームが実行され、すべてのゲームでポイントが平均化され、勝者が決定されます。
サイドノート
複数の条件が適用される場合、最もすぐに続く条件Startが実行されます
ボットは密集しますが、隣のボットを開始しません。(技術的には最後のCodeBotsと同じ形式になります)
この課題はサンドボックスに掲載されていないため(誰にもメリットがないため)、公平性や追加機能のために細部を変更する権利を留保します。また、CodeBotsランナーにバグがある場合は、ボットがそのバグに依存して成功したとしても、それを変更します。私はできるだけ公平になろうとしています。
再帰Ifステートメントは実行されません
ボットが24行より短い場合、残りの行は Flag
あなた自身にコピーするときに覚えているCこと、Cあなたのターンの終了時にインクリメントされます。
CodeBotsインタープリターはこちらにあります。簡単に実行できるように.jarファイルが含まれています。ボットをボットフォルダーに追加するだけです
スコア
- 893.9ボルグ
- 1.3 LazyLioness
- 0.9ディフェンダー
- 0.5フラッガー
- 0.4 CliqueBot
- 0.4潜行性
- 0.3攻撃者
- 0.3ガード
- 0.3シングルターゲット
- 0.2 FreezeBot
- 0.2センチネル
- 0.2ドライブバイ
- 0.0反潜行性
- 0.0 MoveBot
- 0.0クリークボルグ
- 0.0電卓
- 0.0 TestBot
- 0.0模倣者
更新
敵のコードを表示すると、コードの行が回転するようになりました。つまり、相手のライン1はライン14(またはどのライン)でもかまいません。ボットのオフセットは固定されており、相手から見た時にX量だけラインをオフセットします。相手の変数も同じ量だけ相殺されます。  同じゲーム内では変化しませんが、ゲームごとに変化します。CXX