第12章 謎解き関数:伝説のスクリプト
おっきーが次に挑戦するのは、「関数」という新たな魔法のスキルだった。レイは関数についてこう説明する。「関数は、特定の動作をひとまとめにして、何度も繰り返し使えるようにするための魔法のスクリプトだ。これを使えば、プログラムがより簡単で分かりやすくなるんだ」
おっきーは興味津々で、「それなら、毎回同じ呪文を唱える必要がなくなるってこと?」と聞く。
「そうだよ、おっきー。関数は呪文のショートカットみたいなものさ。一度作れば、何度でも同じ動作を呼び出せるから便利なんだ」とレイが笑顔で答える。
今回の任務は、モンスターに攻撃しながら味方の体力を回復する「攻撃と回復の連携スクリプト」を関数で作ること。おっきーはまず攻撃と回復の動作を関数に分けて、それぞれに名前を付けることにした。
「よし、まずは攻撃の関数だね。『攻撃する』って名前の関数を作って、敵にダメージを与えるコードを書こう!」おっきーはワクワクしながら、関数の中に攻撃の呪文コードを記述した。
次に、味方の体力を回復するための関数「回復する」を作ることにした。この関数では、指定した仲間の体力を回復させるコードを書き込む。
おっきーが作った関数の例:
攻撃する
モンスターの体力を減らすコード。
クリティカルダメージを発生させるための計算式を含む。
回復する
味方の体力を一定量回復するコード。
味方がピンチのときに発動しやすくするためのif文を含む。
おっきーは関数を完成させると、早速それを試してみた。敵に「攻撃する」関数を使ってダメージを与え、その後「回復する」関数で仲間の体力を回復する。何度も呼び出してみると、どの場面でも同じように効果的に動作してくれた。
「すごい!これなら、いちいち同じコードを書かなくても、必要なときにすぐ使える!」とおっきーは感動した。
だが、ここで再び新たな問題が生じる。おっきーが関数を使いすぎたために、プログラムが予想外の動きをし始めたのだ。攻撃と回復が繰り返されるたびに、敵も味方も激しい負荷にさらされ、プログラムが混乱してしまったのだ。
「何かがおかしい…なぜか、敵も仲間も同時に回復してしまう…」おっきーは不思議そうにプログラムを見直した。
すると、アイリがアドバイスをくれた。「おっきー、関数を作るときには『引数』と『返り値』も考えたほうがいいよ。引数は、関数に伝える情報で、返り値は関数が計算した結果を返してくれるもの。これを使えば、もっと的確に指示を出せるはずだよ」
おっきーは引数と返り値について考え、「攻撃する」と「回復する」関数にそれぞれ引数として敵や味方の名前を指定できるように改良した。そして、返り値として実際にどれだけのダメージや回復が起こったかを確認できるようにした。
こうして改善された関数をもう一度実行すると、今度は完璧に動作し、おっきーの指示通りに攻撃と回復が繰り返されるようになった。
「やった!引数と返り値のおかげで、関数がもっと使いやすくなったよ!」とおっきーは喜びを爆発させた。
レイも満足げに頷き、「そう、引数と返り値は関数の力を引き出す鍵なんだ。これで君はさらに一歩、立派な魔法使いに近づいたね」と褒めた。
おっきーは、この関数の使い方をしっかりと学び、次のミッションでも活かせるようにと意気込みを新たにした。関数という「伝説のスクリプト」を使いこなした彼は、冒険をさらに深め、未知なるプログラミングの世界へと踏み出していくのだった。




