第10話 イベントハンドラ

 それから教わったいくつかの魔法式を見て、最初に感じた違和感は確信に変わった。

 魔法式はプログラミング言語、中でも、構造化言語と呼ばれるC言語にとても良く似ている。

 if文のような条件分岐、while文のようなループ文、算術演算子、変数宣言文等がある。

 この特性のため、私にとっては、内容を深く理解する事がとても簡単だ。

 ただ不思議なのは、魔法を使うためには内容を深く理解する事が必須で、であれば、魔法式を改造する事は簡単そうなのに、誰もそれをやらない。

 しつこく聞いていたら、どうやら、アルク族の伝統的な「美意識」が邪魔しているらしく、保守的なせいで昔の慣習を変えたがらないと理解した。

(これって、もっと綺麗なソースコードにできるんですよねぇ……)

 と考えながら、何気なく地面に書き込んだ魔法式を見ていた。

 初級の水を作り出す魔法で、whileループの条件式を一か所だけ変更する事で、魔法の発動時間を変化させるものだ。魔法式を変更したがらないアルク族が、例外的に一部変更する魔法式だ。

 目が留まったのは、緊急停止文と言われる、魔力を使い過ぎた時のためのwhileループを強制的に抜け出す命令だ。右手の親指と人差し指の先をくっつけたら、break文のような命令が発動する。

 これを見た時にひらめいた。

 whileループの終了の条件式を絶対に成立しないようにして、無限ループを作る。魔力を使うような所を無限ループさせたら死んでしまうが、それ以外なら問題ない。

 そして特定の行動をした時に、変数に行動に応じた値をセットしてbreak文を発動させ、無限ループを強制的に抜け出す。

 後はセットされた変数に応じて、別の関数として宣言した魔法式を呼び出す。

 つまりは、イベントハンドラだ。

 ごく小さい動作で各種関数を呼び出せるようにすれば、いちいち別の魔法として魔法式を頭の中で構築しなくても良いので、魔法の発動が飛躍的に早くなる。

 この魔法式の良い所は、メインルーチンを囲うようにもう一つ無限ループさせれば、魔法の掛け直しをしなくてもずっと待機状態を維持できる。

 不具合があった時の停止命令も、break文で用意できる。

 里の皆も、同時に二種類の魔法式を組み立てるぐらいはできる。祭司長は四種類できるし、私も三種類ならできる。よって、常に待機状態となる魔法式があっても問題ない。

 せっかくなので、他の魔法式も自分好みに最適化して関数化していく。とっさに必要なのは、身を守る魔法だろう。とりあえず、強風と土壁を登録しておく。

 ここまでやってある事実に思い至り、愕然とした。

 何度もしつこく、

「魔法式を安易にいじらぬように」

 と言われたので、気持ち悪いスパゲッティコードを無理して暗記した。しかし、魔法式を読み上げるのは暗記するまでだ。

 最適化した魔法式で覚えなおして、頭のなかでこっそりと構築して発動すれば良い。誰にも分かりゃしない。

(とりあえず、このイベントハンドラの実験が成功しましたら、かたっぱしからスパゲッティコードを最適化して行きましょう)

 ちなみに、この新しい魔法の発動トリガーは、私のオリジナル魔法である事を隠しようがないので、開き直って、そのまま『イベントハンドラ』にした。

 そうやって、魔法の改良や鍛錬を繰り返しながら充実した日々を過ごし、3年が経過する頃には、里に伝わるほぼ全ての魔法を習得した。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る