第20話
このところ、イリスは毎日のようにダフニの屋敷に顔を出す。魔法訓練のためだ。わざわざ毎日顔を出す必要はないと思うが、授業からクロエと一緒に戻ってきてそのまま訓練に参加する流れが習慣化していた。
「で、今度は何をしてるの?」
今日はダフニが早く終わったので屋敷でクロエ達が戻ってくるのを待っていた。その間にちょっとした実験をしていたところ、いつの間にかクロエ達が戻っていて興味を持ったイリスが話しかけてきた。
「創造の魔法の実験ですな」
「創造の魔法?」
「そういう能力を持つ精霊がいるですな。形を念じて魔法を使うとこんな風に半透明な物体ができるですな。でも、しばらくすると消えるですな」
「何これ? こんな魔法聞いたことないわよ」
「最近見つけた新しい精霊ですな」
「へー。でも、これ何の役に立つのかしら?」
「それを研究しているですな」
研究内容を何かの役に立てようと考えることは大切なことだが、役に立つものがすぐに思いつかないから研究しないというのはよくない。思いつかないのは単に自分の知識が不足しているからかもしれないからだ。だから研究は得てして虱潰しになる。失敗も重要な知見なのだ。
創造の魔法についてはひとつ面白い発見があった。プログラムを書いている
「そういえばマルクなんだけど」
「マルクお兄さまがどうしたですかな?」
「最近、授業に来てないんだけど、何か知ってる?」
「知らないですな。通り魔に襲われたら何か聞くと思うですな」
「そんな話なら私も聞いてるはずだわよ」
――そう言えばイリスはマルクお兄さまのいとこだったですな。
話によるとマルクはダフニとの模擬戦に敗れたあたりから授業に身が入らない様子で成績が下がっていって、最近になって授業に姿を現さなくなったのだそうだ。
「ふむ。ではお見舞いに行くですな」
「それは止めておいた方がいいかもしれないわね」
「なぜですかな?」
「逆に刺激してしまうかもしれないわよ」
イリスだけでなくクロエもダフニが行くのは止めた方がいいというので、ダフニはマルクのお見舞いに行くのはまた今度ということにした。
完成した実験装置が届いたのは注文をして4日後のことだった。王子からの依頼ということで優先して作ってくれたようだ。
それまでの間、ダフニもただぼーっとしていたわけではなく、実験の手順を考えたり実験に使えそうなプログラムを作ったりしていた。
一番重要なのは静電気を生み出す精霊の確保だった。これは一応呪文があるのだが使えない魔法として文献に記されているだけの忘れられた存在だった。見た目は黒いカブトムシみたいなのだが、暗くて狭い隙間に隠れていてカサカサ歩くのでゴキブリかと空目する。それと気づくまでは精霊だとすら認識していなかったほどだ。
静電気の魔法が作る電力は大したものではなくゼフィルのトーアとは比べ物にならなかったが、何度も重ね掛けすることで電力を蓄積できることと正負の両方の電力を生み出すことができるのが便利だった。プログラムによる連続実行が可能なので重ね掛けは大した問題ではない。
Charge-Electricity
> main = do
> let times = 10
> spirit <- select "静電気の精霊"
> target <- locate "実験装置の上部パネル"
> let charge = do
> magic "静電気"
> with -1
> to target
> loop 0 = return ()
> loop t = do
> give spirit 1
> call spirit charge
> loop (t - 1)
> loop times
プログラム中でloopという関数を定義しているところがあるが、これが繰り返し実行している部分だ。Haskellでは繰り返しは関数の再帰で書くことができ、この場合はloop tの最後のところでもう一度loop (t - 1)を実行し、引数が0になるまでloopを繰り返した後、最後にloop 0を実行するという意味になる。
さらに、精霊が複数体確保できそうなら2,3体並行して使う方がクールタイムが短くなって効率がよくなる。
Charge-Electricity-Parallel
> main = do
> let numSpirits = 3
> times = 10
> spirits <- mapM select $ replicate numSpirits "静電気の精霊"
> target <- locate "実験装置の上部パネル"
> let charge = do
> magic "静電気"
> with -1
> to target
> makeRotation = take times . concat . repeat
> rotation = makeRotation spirits
> mapM_ (\s -> give s 1 >>= call s charge) rotation
今度のプログラムでは繰り返しを書くのにループを使わずリストとmapM_で実現している。こういう書き方もHaskellではよく使われる。
プログラムが複雑になったが、これで3体の精霊を並行して呼び出し連続で魔法を実行させることができるようになった。ゴキブリみたいなのが3匹もわさわさと出てくるのはあまり気味がよくないがそこは我慢するしかない。
さらに、放電の発生も魔法プログラムで検知することができるようになった。これはなんと何の役に立つのか分からなくて冗談かと思っていた待機の精霊を使うことでできたのだ。
Alert-Discharge
> main = do
> spirit <- select "待機の精霊"
> place <- locate "実験装置の針の先端"
> let wait = do
> magic "待機"
> for place "放電が発生"
> give spirit 1
> call spirit wait
> draw =<< locate "放電経路"
このプログラムをさっきのCharge-Electricity-Parallelの前に呼び出しておくと、実験装置で放電が起きた瞬間にその放電経路の写真を表示してくれる。実に便利だ。
と、こんな感じでダフニは放電実験を繰り返していたのだが、実験のためのプログラム作成で魔法プログラムについての知見は広がったものの、肝心の落雷の制御の方はさっぱり進展しなかった。
「お悩みですか?」
ある時、ベッドに横になったところでクロエに問いかけられた。
「ふむ。今やっている実験がうまくいかないですな」
「あの雷の実験ですか?」
「そうですな」
それでその時の会話は終わりになったが、翌日、ダフニがそんな話をすっかり忘れた頃に再びクロエが話しかけてきた。
「ダフニ様、昨晩のことですけれど」
「何ですかな?」
「あの、上手くいかなければ少し見方を変えてみるといいんじゃないでしょうか。例えば、私はダフニ様のように何でもできる人になりたいと思っていたのですが、それは無理なんだと気付きました」
「待つですな。私は何でもできるなんてことはないですな」
「何でもは言い過ぎかもしれないですけど、私からしたらすごいとしか言いようがないです。学校に入学してますますそう思うんです。ダフニ様は将来きっと国や世界を助ける人になると思います。でも、私にはそんな才能はないです」
「クロエも十分優秀ですな」
「それはダフニ様に助けてもらっているからで、一人では何もできないと思います。でもそんな私でも見方を変えれば役に立てるのではないか。ダフニ様のように世界を助けることはできなくても、ダフニ様一人だけなら助けることができるんじゃないかと思うのです」
「なるほどですな。クロエはそう考えているのですな」
「はい。……あの、つまり、言いたかったことは」
「分かっているですな。見方を変えてみるですな。ありがとうですな、クロエ」
「差し出がましいことを言って申し訳ありませんでした」
「そんなことないですな。いいアドバイスだったですな」
そしてクロエはダフニが考える邪魔にならないよう離れたところで一人で魔法の練習を再開した。再び思索に戻ったダフニはクロエのアドバイスを受けてこれまでの実験のやり方を変えてみようと考え始めた。
まず、放電実験が難しい理由はそもそも落雷の制御そのものが難しいということに尽きる。これまではそれでもそれをどうにか制御しようとしてきたが、そもそも制御しようとするのが間違いだったのではないか。落雷と言う制御できない現象を始めから回避すればよかったんじゃないか。
そこに思い至ればトーアの能力は神の雷ではなく超高圧発電機と見なす方が実体を表していると気付く。ならば、その電力の活用方法を考えればいい。
――電化製品が普及している世界というわけではないですな。電気の力を見せるには何か派手なアクションがほしいですな。
魔法で簡単に代替できるものを見せてもあまりよい反応はないだろう。例えば電球は材料の問題で作るのが面倒な上に魔法で簡単に光を起こせる。同じようなものならモーターの方がまだ説得力がありそうだ。
しかし、ダフニはそれよりもずっといいものを思いついた。
――レールガンですな。
レールガンとはSFや某ラノベで有名だが原理は極めてシンプルな電磁誘導だ。電位差のある2本のレールを繋ぐように導電体の砲弾を置くと、その砲弾を電流が流れることでローレンツ力が発生し、砲弾が加速されて打ち出されるのだ。
使っている物理法則はモーターやリニアモーターなどと同じだが構造ははるかに単純なので、実用化するには問題もあろうが、試作だけなら比較的簡単にできるのではないか。
――まずは作ってみるのですな。細かいことは後から考えればいいですな。
そうと決まれば早速試作品のスケッチを始めつつ、以前の鍛冶屋に使いを出したのだった。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます