9話 奥深いプログラミングの世界
「って言ってもプログラムなんかしたことないんだよなぁ」
そう、結局のところ俺はただのプログラミング未経験者。「SEが儲かってるらしい」程度の考えしか持たないのである。
「まずは動く物体を持ってくるか」
というわけで1メートルほどの岩を用意します(マホが)
まず、それを魔法「風」を使って空中に浮かします(マホが)
移動する方向を決めます(俺が)
動かす命令を出します(マホが)
マホの仕事量と俺の仕事量がかみ合ってないことは気にしてはならない。
空中に浮いて決められた方向に動く岩が完成。エアホッケーとおんなじ理論である。
「じゃあ、砲を作るか」
「ホー、っておいしいの?」
「素材が岩だからな。食べ物として食べるにはいささか硬いぞ」
砲だが今回は砲塔を内部に埋め込むタイプのお手軽である。
まずはさっきの岩の正面に穴を開け、向きは一律30度で計算してちょっと上を向くように砲塔を作りこみ、流し込む砲弾を流し込む作りは横面にとりつけて少しだけ斜面をつける。砲弾が打ち出されたら次の砲弾が自動的に流れ込むステキな作りである。砲弾はまず直径5センチほどの球体方の岩を持ってきてそれを削り、きれいな球型にして完成。これで完璧に砲が出来上がった。……ほとんどマホが加工したものだが。三角定規とか持っててよかった。少しだけ俺のリュックが役立ち始めたかもしれない。
さて後はこれを打ち出すだけだ!
「……どうやって?」
「ごめん俺もそこまで考えてなかった」
マホが出した岩は硬そうだったので射出する砲の後ろに玉が抜けないくらいの空気穴を作って空気を流し込んでみた。なるほど、これはやばい。ニュースで3Dプリンターで銃作ったのが逮捕された話は知ってたがまさかこんな簡単に作れるとは。
「打ってみよう」
「わかった。風」
マホが弾に魔力を注いで実験場と化した牧場で発射。
周りの林が一列半壊した。
……やってしまった感ハンパないがとりあえず生みに向かって再トライ。
今度はズドォ! という音がして弾が吹き飛んだのがよく見えた。風が弾に一極集中してものすごい勢いで射出された。ゴルフスイングで打ち上げられたボールを見ている気分だ。
完成してしまったなぁ。正直強すぎなので打ち払う用程度に威力調整しよう。
さて、ついに出来上がった戦車っぽい何かを動かそう。牧場の監視と護衛だから、まずは監視範囲を牧場に固定してその範囲に立ち入った動物を排除するように設定して、動かす。
突然、
砲口がこちらを向いた。
「あ、」
やっちゃったー!
これ死ぬやつ!
……マホにとめてもらい、対象から俺とマホを外して再起動。
砲口が牛に向けられた。
「牛さぁぁぁぁぁぁぁぁぁぁぁん!」
「正和、だからあれは馬――」
めげずに再びの再起動。牛も除外してみた。
これで何とかなったと思った矢先。
一匹の鼠が牧場を横切る。当然砲は鼠に照準を合わせるがなかなか合わせられないのか結局鼠は牧場を通り過ぎた。その先を砲がジーっと見つめる。なんだかしょぼくれてるみたいでかわいいとか思った矢先。
砲から石が打ち出された。
イカン! あきらめる動作のプログラムしてなかった!
あわてて「範囲外に出た動物は追わない設定」を作りこむ。
ここまでが、「砲を撃つ」までの苦労である。
と、いうわけで移動させてみた。
普通に移動する方向は一定で突き進む。戦車っぽいなぁと思いながら見つめていたら牧場の柵をぶっ壊して進んでいく。
あわててとめた。ここまでしたのに家出とかやめて。
範囲外には出ないように再設定したら今度は柵に当たり続けた。あれかな。柵ドンかな。
ランダム移動にしてみる。方向を決めて一定移動、3メートル進むか移動限界の範囲にぶつかったら方向転換を繰り返すプログラムだ。
移動が速すぎた。お掃除ロボットみたいな動きなのに速すぎていかんせんGにみえてしまう。
再び再設定ゆっくりにしてみた。これでかわいい。
なんだか気のせいの中にかわいさを持ち出してる自分が怖い。オタクってこんな気持ちなんだろうか。不思議。
で、試し撃ちをさせたら空中でバランスを崩してこけた。撃つときは一度地面に下ろすように設定してみた。
完成! やっとできたぁ……。
マホに頼んでもらい複製としてもう一個用意してみた。これで安泰だ。と思いながら牧場を見渡すと二つの砲が互いに砲を向け合っている。
つぅ――、と汗がたれる。
二つの砲が互いに腰をすえた。発砲の準備だ。
そして、
砲撃戦! 開始!
「するなぁぁぁぁぁぁぁ!」
プログラムって、奥が深い。
こんなひとつの機械を作るだけで沢山の手順に、沢山の不備。これをさらに運用していくとなると大変だ。ものづくりもプログラムも奥が深く、何よりめんどくさい。こりゃSEが金をもらえるわけだ。大概がかったるいなぁとおもう仕事をやるのだから当たり前だ。とりあえず、疲れた。
結局プログラミングをして、沢山魔法を付け足して大量のバグを処理した俺とマホは修羅場のプロジェクトを抜け出したプログラマーみたいな顔で肉をほおばるのだった。
プログラミングってしたことありますか? 私はprintfとscanfとifでノベルゲーを作ろうとしてがんばったことがあります。結局挫折しましたけど。Cなら簡単って聞いたのに……。
使用の精密な書き出しをフローチャートと言ったり、バグの消化をデバッグと言ったり。SE業界は難しかったりしますけど一回踏み込むと面白いですよ。
……といっている作者はCの初歩で躓いたんですけどね! HTMLは簡単だよ!(言語じゃない)
毎回言ってますが不定期連載でごめんなさい。