> チュートリアル
ここまでに、いくつかの関数やメソッド(setWeapon、moveToward など)を使ってきました。次の書き方で、自分だけの関数 を作ることもできます:
function キーワードsum( x, y ){ return x + y }return キーワードは省略可能で、関数に値を返させます。前の例では、関数はパラメータ x と y を受け取り、その合計 x + y を返します。
canFinish(enemy) 関数を作る前に書いた、敵に「とどめ」を刺せるかどうかの条件のコードはかなり長く、再利用しにくいので、関数にまとめましょう。
敵を受け取り、とどめを刺せるかどうかをブール値で返す、自分だけの関数 canFinish(enemy) を作ります。
とどめのコードを関数の中にコピーして、次のように書きます:
これで、メインのコードで canFinish 関数を使えるようになり、ずっとシンプルになります:
知っていましたか? 何か所にも繰り返し出てくるコードを 1 つの関数にまとめることを、共通化(ファクタリング)と呼びます。
getClosestCellToUseWeapon(enemy) 関数を作るお気づきかもしれませんが、機関銃や、のちに手に入るレーザーを使うには、敵と一直線上に並ぶ必要があります。
つまり、拳銃のときのように敵に向かって移動するだけではなく、武器を使えるマスまで移動しなければなりません。
そこで、me.weaponCells(enemy) メソッドを使います。このメソッドは、対象に武器を使えるマスをすべて返します。その中から 1 つ、一番近いマスを選びましょう!
getClosestCellToUseWeapon 関数を作り、for of ループで自分からの距離が一番短いマスを探します:
これを使って、移動の部分を置き換えます:
地形やマスを見やすくするには、戦闘中に T キーを押して戦術モードを使ってみましょう。
次の章からはもっと難しい内容に取り組むので、ここまでに学んだ関数や概念をじっくり試してみてください。これだけでも、ランキングを駆け上がるには十分です!
数値の 2 乗を正しく返す関数はどれですか?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
リストの最大値を求める関数はどれですか?
function maximum(list) { let maxi = -99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = -99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.