第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つずつ出すような仕組みになっており、複数同時発射はできなかった。
(うーむ……ちょっと骨が折れるけど……少し、解析してみるか……)
ユキは意を決して、
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます