実行時エラーについて

実行時エラーについて

> LeekScript チュートリアル

あなたはAIを祝福されたようにコーディングします。行がスクロールし、名前が... いやいや、それはもう見ました。 今回は、エディターに赤いメッセージが表示されなくなりました。コンパイラーには、これ以上の秘密はありません。デュエルタイムだ! 菜園でスティーブ・アーウィンのように、自然環境でネギを観察します。彼らは歩き回り、はしゃぎ、お互いに機関銃を撃ち合い、幸せそうに見えます!

彼らは、影に手ごわい敵が潜んでいるとは思っていません...

このラウンドで実行された操作が多すぎます

ああ、クラシック!! これは必ずしも AI エラーではありませんが、最大操作数 (OPERATIONS_LIMIT は 2,000 万操作に設定されています) のオーバーランです。詳細な記事については、Operations チュートリアルをご覧ください。

私の AI は小さいです!どのように可能ですか?

この場合、無限ループと呼ばれる停止条件のないループに賭けることができます (The Loops を参照)。

小さな例? PTがある限り、相手に武器を使用するための小さなコードを次に示します。 ![](https://imgur.com/5dSsTJK.png)

ばかでしょ?うーん、ダメ !実行中にエラーが表示されます。 基本、13行目 ▶ AI 割り込み: 実行エラー: このラウンドで実行された操作が多すぎます

何が問題なのか...簡単に言うと、getTP() 条件 > 0 である限り、ループが実行されます。 でも武器が使えなくなったらどうなるの? PT を失うことはありません。そして条件は常に真です!したがって、ad infinitiiiiiiiiiiiiiiiiiii を実行するループがあります。

このケースを修正するために、「useWeapon」関数の戻りをテストし、結果を分析できます。

可能な修正:

私の AI はそれほど小さくありません!

重要なのはサイズではありません!

あなたの AI を読まなければ、私はあなたを訂正するのに苦労するでしょう... まだいくつかの可能性を挙げることができます:

未知の関数

今回は注意して、適切な数のパラメーターを関数に入れました。はい、ただし、ネイティブ関数にパラメーターを入れることはできません。 これらの関数には、特定の入力タイプが必要です。間違ったパラメーターでそれらを使用しようとすると、同様の結果が得られます。

AI Basic 14行目 ▶ 未知の関数: useWeapon(function) AI Basic 14行目 ▶ 未知の関数: useWeapon(null)

ここで、useWeapon 関数は数値引数 (WEAPON_... 定数) を取り、それに関数または null を与えようとします。明らかに、発電機は私たちにうめき声を上げます。

AI Basic 11行目 ▶ 未知の関数: sort(number, null) sort は最初のパラメーターとして配列を想定しており、数値を指定しようとします。

基礎AI 8行目 ▶ 未知の関数: getNearestEnemyTo(array) getNearestEnemyTo は、配列ではなくエンティティ ID をパラメーターとして受け取ります。

このエラーは、括弧が欠落しているために発生することもあります:

ここでは、getNearestEnemy 関数を、その結果ではなく、enemy 変数に格納します (関数 を参照してください。 修正: var enemy = getNearestEnemy();

--