第27話 カウンターの利用★

 研究開発室――


「おぉー、ユキくん、来たか来たか、編入おめでとうー!」


 研究開発室に行くと、ややパーマの掛かったボブスタイル、整った顔立ちではあるのだが、半眼気味でどうにも眠そうな顔をした女子学生が早速、祝福してくれる。

 すでに来ていた研究開発室のメンバーの一人、ソレハ・ショーデスだ。


「ありがとうございます…………って、えぇえ!?」


 ユキは来てそうそうに驚く。


 なんと大型の冷蔵庫らしきものが、追加で三台並んでいたし、魔法補助具らしき杖も大量に積み上げられていた。


「ふっふっふっ……君のおかげで予算アップだよー」


 ソレハは微笑みながら、なぜか少々、自慢げにそんなことを言う。


「これで並列で複数の検証が可能になるねー」


「はい……!」


(確かにこれは助かる……冷蔵庫の性質上、長時間稼働の方の検証は時間がかかる。並列で実施できれば所要時間の短縮につながるし、複数の試作品の比較検証なんかもやりやすい)


「ちなみにアイシャ様によるとー、外側の装置と魔法具の他に、別のアプローチからも性能改善を目指せないか模索中とのことだよー」


 と言うソレハの言葉に……


「なるほど……」


 と答えつつ、ユキは一つ、疑問を持つ。


「あの……魔法具ってなんですか?」


 おそらく文脈から魔法補助具のことであろうが、魔法具という言葉は聞いたことがなかった。


「あー、アイシャ様がねー……今度からユキが改良した魔法補助具のことは〝魔法具〟と呼ぶ……だそうですー」


「え……? どういう?」


 と、ユキがソレハに疑問を投げかけると……


「もはやこれは魔法を補助する道具などではない。魔法を駆使した革新的な道具である! ゆえに、これは魔法補助具にあらず。〝魔法具〟である!」


「っ……!」


 研究開発室の入口付近から透明感のある、それでいて、はっきりとした声が聞こえてくる。


「あ、アイシャ様」


 それはアイシャであった。


「うむ、ユキ、先ほどは急に訪問してすまなかった。迷惑でなかったかな?」


「え? …………えぇ」


(完全に迷惑でなかったかと言われると……ちょっと微妙ですが……)


「…………」


(でも……自分を気にかけて、来てくれたのは嬉しかったかな……)


「改めてユキ、研究開発室へようこそ……! これからぶいぶいと役に立つ発明をしていこうじゃないか!」


「……はい」


 学業は少々、億劫であるユキであったが、研究開発室での開発については明確に楽しみであった。

 それはまるで前世でプログラミングをしていた時のような……自分が自分でいられるような感覚があったからだ。


 ……


(……さて、早速、冷蔵庫の改良に着手するか)


 ユキの改めての入室挨拶を終えると、アイシャは忙しそうにどこかへ去っていった。


 なぜかソレハとオーエスも用があるからと、どこかへ行ってしまった。

 ソレハかオーエスに、アイシャが一体、何者なのかをちょっと聞こうかと思っていたのだが、結局、できず終いになってしまった。

 ついでに、初日から一人になってしまい、ちょっとだけ寂しく思いつつ、ユキは早速、アイシャの要望でもある冷蔵庫の改良に着手する。


////////////////////////////////////////////

【変更前】

// 弾の初期化処理

time = 1200 // 射出時間

interval = 60 // 射出間隔

angle = 360 / 10 * count / 60 // 射出角度

position = device.position //射出位置

size = 0.5 // 大きさ

power = 0.1 // 威力

if(count < 600){

 attribute = ICE // 属性=氷

}

else{

 attribute = WIND // 属性=風

}

speed = 0.1 // 速度

acceleration = 0 // 加速度

 ・・・


 ↓↓↓


【変更後】

// 弾の初期化処理

time = 1200 // 射出時間

interval = 60 // 射出間隔

angle = 360 / 10 * count / 60 // 射出角度

position = device.position //射出位置

size = 0.5 // 大きさ

power = 0.1 // 威力

if(count % 120 == 0){

 attribute = ICE // 属性=氷

}

else{

 attribute = WIND // 属性=風

}

speed = 0.1 // 速度

acceleration = 0 // 加速度

 ・・・


////////////////////////////////////////////


 今回の作業で、ユキが変更した魔法論理マジック・ロジックである。


 変更した箇所は1行だけ。


 属性の設定条件の部分だけだ。


////////////////////////////////////////////

【変更前】

if(count < 600){


 ↓↓↓


【変更後】


if(count % 120 == 0){

////////////////////////////////////////////


 この変更により、何が起こるかというと、

 氷属性と風属性の弾が交互に放たれるようになる。


 変更前は、10発連続で氷の弾が出て、その後で、10発連続で風の弾が出るというものであったが、

 今回の変更では、

 氷→風→氷→風→氷→風→氷→風→……

 というように交互に20発の弾が放出される。


 仕組みとしては射出間隔が60に設定されている(interval = 60)ため、この魔法論理マジック・ロジックにおいては

 countが60の倍数の時に弾が発射されることになる。

 具体的には、0, 60, 120, 180, 240, ……, 600, 660, ……といった内容だ。


 この時、count % 120 == 0の結果はどのように変化するかを確認する。


〝%〟は剰余じょうよを表す記号である。


 おさらいであるが、剰余とは、左の値を右の値で割った〝余り〟のことである。


 例えば、7 % 3で考えるならば、

 7割る3 は 2余り1

 数式で表すと 7 ÷ 3 = 2 余り1

 となるため、7 % 3は1ということになる。


 この知識を前提に、count % 120 == 0の結果の推移を確認する。


 countが0の場合、count % 120は

 0 % 120である。

 0 ÷ 120 は 0〝余り0〟であるから、0 % 120 は 0 となる。

 したがって、

 count % 120 == 0 を満たすため、

////////////////////////////////////////////

if(count % 120 == 0){

 attribute = ICE // 属性=氷

}

////////////////////////////////////////////

 のルートに入ってくる。

 すなわち、氷属性が設定される。


 次に、countが60の場合、count % 120は

 60 % 120である。

 60 ÷ 120 は 0〝余り60〟であるから、60 % 120 は 60 となる。

 したがって、

 count % 120 == 0 を満たさないため、

////////////////////////////////////////////

else{

 attribute = WIND // 属性=風

}

////////////////////////////////////////////

 のルートに入ってくる。

 すなわち、風属性が設定される。


 ここまで来れば、予想がつくかもしれないが、

 countが120の場合、count % 120は

 120 % 120である。

 120 ÷ 120 は 1〝余り0〟であるから、120 % 120 は 0 となる。

 したがって、

 count % 120 == 0 を満たすため、

////////////////////////////////////////////

if(count % 120 == 0){

 attribute = ICE // 属性=氷

}

////////////////////////////////////////////

 のルートに入ってくる。

 すなわち、氷属性が設定される。


 以上をまとめると、

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

 countが 0の場合、count % 120は0 → 属性氷

 countが60の場合、count % 120は60 → 属性風

 countが120の場合、count % 120は0 → 属性氷

 countが180の場合、count % 120は60 → 属性風

 countが240の場合、count % 120は0 → 属性氷

 ・

 ・

 ・

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

 というように、交互に氷と風の属性弾が出るようになるわけだ。


 このように一工夫することで、ちょっとした条件の変更で、かなり毛色の違う魔法を演出することができる。


 しかし、この氷風交互作戦は、思う様な成果は得られなかった。

〝見栄え〟が思ったより良くなかったようである。


(うーん、微妙かぁ……)


 ユキは天を仰ぐ。


(……なんかなー、スプリンクラーみたいな感じに出せたらいいのになぁー)


 ユキはふと、前世にあった散水機スプリンクラーのことを思い出す。

 装置を中心に3~4方向に対して、回転するように水を撒くものだ。


(スプリンクラーって、なんかついついぼーっと眺めちゃうんだよなー。でも……あれを真似するためには……今、知ってるパラメータだけじゃできない)


 スプリンクラーの水の動きを真似するには、ユキが今、解読できている初期値設定だけでは、実現できない点があった。


 それは〝複数同時発射〟である。


 スプリンクラーは3~4方向に対して、同時に水を放出している。

 だが、現在、ユキが解読できている範囲では、弾は等間隔で1つずつ出すような仕組みになっており、複数同時発射はできなかった。


(うーむ……ちょっと骨が折れるけど……少し、解析してみるか……)


 ユキは意を決して、魔法論理マジック・ロジックの解析に着手した。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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