目次
ブックマーク
応援する
いいね!
コメント
シェア
通報

3「カナリア君とプログラミングデート」

 翌朝、私の寝室にて。


「めがみさま、ほんじつの、おめしものを、おもちしました」


 ノックとともに私の寝室に入ってきたのは、犬耳メイド服のショタ。


「めがみさま、おはようございます!」


 着替えて廊下に出てみれば、窓を拭いているのもまた、犬耳メイド服のショタ。

 さらに、窓の外で庭を掃除しているのも犬耳メイドショタだ。

 このお屋敷では、包丁と火を使わない仕事――私のお世話や掃除洗濯は、ショタっ子たちが担当している。

 5歳~10歳のバルルワ村の男児たちが、メイド服を着て、ここで働いているのである!

 あぁ、素晴らしきかな私のぷにショタランド。

 犬耳男の娘とか最高かよ。


 児童を働かせるんじゃないよ、って?

 ざーんねん。

 中世ヨーロッパ風なこの世界に、『児童』とか『児童労働』という概念はないのだ。


 働かせるなら女児も取り入れろって?

 そこはねー……女児はまだ大丈夫なんだけど、この年頃の男児って、放っておいたら農耕だの建築だの魔の森での狩り(!?)だのと、めっちゃ過酷で危険な仕事に平気で駆り出されちゃうんだよね。

 だからこうして、『女神様のお世話』という名目で私が雇ってる。

 重労働は自動人形たちにやらせればいいし。


 私は悪徳領主ではない。

 この処置は止むにやまれずやっていること!

 私の行為は、ショタっ子たちの『保護』なのである!


 まぁ、メイド服着せてるのは私の趣味だけどね。

 女装の意味を理解しておらず、屈託のない笑顔を私に向けてくれるショタっ子、最高に可愛い。

 一方、やや年齢が上の子たちは女装が恥ずかしいことだとちゃんと理解していて、それでも私の命令だから恥じらいながらも着てくれている。

 そそる。

 たまらん。

 ぐへへへへ……。


「女神様」万能護衛兼執事と化しつつあるクゥン君が、ハンカチを差し出してくれた。「漏れてますよ、よだれ」


「あらやだ、ありがとう」





   ◇   ◆   ◇   ◆





「「「「「いただきま~す!」」」」」


 私が取り入れた『いただきます』のあと、ショタっ子たちが元気に食べはじめる。

 食堂の長机は人口過密状態だ。

 お誕生日席の私。

 その両サイドにカナリア君とクゥン君、次いでヴァルキリエさん、クローネさん、ステレジアさん、この屋敷で働くことを選択した元奥さん方、そしてショタっ子たちが座る。

 ショタっ子たちの数は日によって変わるが、だいたい、食卓には数十人が座る。


「ここで女神クイズです! ででん!」


「「「「「くいず~!」」」」」


「リンゴが5つ、ミカンが5つありました。

 ミニドラゴンがやってきて、果物を3つ食べてしまいました。

 ミニドラゴンが去った後にリンゴを数えると、4つありました。

 さぁ、ミカンはいくつ?」


 ショタっ子たちがパンを頬張りながら、あーでもないこーでもない、とうなっている。

 私の隣では、クゥン君も指を折りながらうなっている。

 一方のカナリア君は、


「ねっ、ねっ、お姉ちゃん、素数って面白いね! ボク最近気づいたんだけど、Fって孤独な数字だよね! BとDも孤独だよね」


 を、ををを……何やらすべてがFになった天才科学者みたいなことを言っている。

 ショタっ子たちに読み書き算数を教える傍ら、カナリア君にもいろいろと教え込んでいるんだけど、やっぱりこの子の頭脳、チートレベルでヤバい。

 将来が楽しみだわぁ。


「女神様の教え方って」財務大臣の元奥様が微笑む。「とっても分かりやすいですし、何よりワクワクしますよね。子供の内からこうやって学ばせてやれば、平民でも算術ができるようになるのでしょうか」


「なってもらわないと困ります」私はニヤリと微笑む。「でないと財務大臣さんが一向に楽になりませんよ?」


「そっ、それは困りますね!」


「遠からず、小学校を建てるつもりでいます。算術その他学問にお詳しい方が知り合いでいらっしゃいましたら、ぜひ教えてください」


「イエス・マイロード」





   ◇   ◆   ◇   ◆





 ひと仕事終えた後で。

 私が居間でお茶を飲んでいると、


「ねーねー、お姉ちゃん」


 カナリア君がやってきて、私の膝によじ登ってきた。


「この、ぱいそん? っていう古代語の、再帰呼び出し処理について教えてほしいの。かていきょーしの人たちみんな、分かんないって言うんだもん」


「ぶっふぉ」


 思わずお茶を吹き出す私。

 すかさず、背後に立っていたクゥン君が拭いてくれる。


「きっ、キミは何者なんだよカナリア君。プログラミングの再帰呼び出しについて学びたがる5歳児って」


 見れば部屋の隅で、王都から呼び出されたカナリア君の家庭教師団が青い顔をしている。

 家庭教師団の団長さんが、ぺこぺこ頭を下げながら、顔で『お休み中のところスミマセン』と語っている。


 そうそう。

 カナリア君、本格的にここに住むことになった。

 なので国王陛下が、カナリア君のお世話係をここに派遣したのである。


 何しろここはカナリア君にとっては空気が良い(魔力濃度が高いという意味で)し、徒歩1分で温泉に入れる。

 王都と違って暗殺の心配はないし、魔物肉は美味しいしで良いことづくめ。

 まぁ、魔の森も徒歩10分というのが玉に瑕だが、陸戦鉄神M4の中以上に安全な場所など、恐らくこの国にはないだろう。


 私は団長さんに目礼を返してから、


「じゃあ、お姉ちゃんが教えてあげよっか」


「やったー! 教えて教えて!」


 久しぶりのプログラミングだ。

 正直、アガる。


「再帰関数はねぇ」


 私は、壁に侍っていた自動人形を手招きする。やってきた自動人形の首筋にノートパソコンをUSB接続し、


「こうやって、まず最初に関数を作って」


 人形が指先を動かすだけの、簡単な関数プログラム『draw』を作成し、実行。

 自動人形が指先で四角を描いた。


「その関数の中で自分自身を呼び出させればいいんだよ」


 さらに、関数『draw』を『draw』自身の中で呼び出す。

 自動人形が四角を描き続けるようになった。


「わーっ、やっぱり! 同じ動作を繰り返し繰り返しやらせたかったんだけど、どーしても上手くいかなくって」


「単に繰り返させたいだけならforループでいいんじゃない?」


「forループはねぇー」


 不満顔のカナリア君。

 ほっぺをつついてみると、『ぷすーっ』と唇から空気が漏れた。

 ぐおおおおっ、可愛すぎる!


「forだといつか終わっちゃうでしょ?」


「うん。変数iが終端に来ると終わるね。でもiの上限値を1万とか10万にしておけば一生終わらないよ?」


 私は、この世界に来たばかりのことを思い出す。

 数百体の自動人形を目覚めさせ、奥様たちを重労働から解放したあの日のことを。





 for i in range(9999):

   #朝の起動確認

   ■■■■■■■■■■■■■■

   ■■■■■■■■■■■

   ■■■■■

   ■■■■■■■■■■■■■

   ■■■■■■■

   ■■■■■■■■■■■■■■

      ・

      ・

      ・





 朝イチで起動チェックを行うようにプログラミングされていた自動人形たちは、その処理をfor文で回していた。9999回まで。

 なので、自動人形たちは起動から27年と少し(9999 ÷ 365)経つと、ループから抜けてしまって起動しない、という不具合(仕様?)に陥っていた。


「でもねー」


 うんうんとうなっていたカナリア君が、衝撃的な一言を口にした。


「それだと、美しくない・・・・・


「をををををっ!?」


 私、大興奮。

 思わず、ソファから立ち上がってしまった。


「そう、そうなの! そうなんだよカナリア君! 私から提案しておいて何だけど、ループの終端回数を9999とか99999とかみたいに、適当な数字にしてしまうのは美しくない・・・・・!」


 プログラムとは、作る意味が、作る目的があるから作るのだ。

 なのに、『ループ回数はとりあえず9999回でいっか。知らんけど』というのでは意味がない!

 意味のない作り方は美しくない!


「だから、ループの終端には『24』とか『365』とか『〇〇が〇〇するまで』みたいに明確な意味を持った数字・条件を割り当てるべきなの」


 カナリア君は、5歳にしてこのセンスを会得している!

 素晴らしい!


「ふぉっふぉっふぉっ、さすがは女神様」


 家庭教師団の団長――好々爺といった様子のご老人が朗らかに笑った。


「儂らでは殿下の仰っておられることの半分も理解できなかったというのに、あっという間に理解なさり、殿下の上を行くご提案までなさるとは」


「いやぁ、恐縮です」


 などと社交辞令をやりあっていると、


「だめー!」カナリア君が私を団長さんから引き剥がした。「お姉ちゃんはボクとお喋りするの!」


 おやおやカナリア君。

 一人前に嫉妬ですかな?

 お姉ちゃん、嬉しくなっちゃう。


「ふぉっふぉっふぉっ、これは失礼を」


 フェードアウトする団長さん。


「なるほどね」私はカナリア君のふわふわな髪の毛を撫でる。「それで、再帰関数というわけなんだね。いやぁ、カナリア君マジ天才。じゃあ、続きをやっていこうか。今、この自動人形は再帰関数『draw』を実行中だ」


 自動人形は指先で四角を描き続けている。


「ここでさらに、自動人形のステータスを引数として渡して、処理を分岐させてやれば?」


 自動人形が、右手で四角、左手で三角を描き始める。


「わーっ、すごいすごい! これなら1体の自動人形にいろんな役割をさせることができる! 自動人形のステータス? で処理を分岐させるには、この……ifっていうのを使えばいいの?」


「そうそう! if分岐っていうの」


「じゃあじゃあ」


 私の膝の上に乗ったカナリア君が、パチパチとタイピングを始める。


「こうやって、分岐ごとに処理を書いていけばいいってこと?」


「及第点だけど、惜しいなぁ」


「もっとすごい方法があるの!?」


「カナリア君が書いてくれたこの処理、イニシャライズもばっちり書けてて完璧なんだけど、最後の処理――指先が描く図形が『四角』か『三角』か、以外は全部同じ内容でしょう?」


「うん」


「もし、一部にバグ――書いた内容に誤りが見つかったら、2ヵ所とも直さないといけないでしょ?」


「2ヵ所とも直せばいいだけ――あっ! これが10ヵ所とか100ヵ所とかあったら大変だ!」


「そのとおり!」


 本当、頭の回転が早い子だなぁ。


「どうすれば!?」


「オブジェクト指向を使います」


「おぶじぇくとしこう?」


「こうやってclassを作って、コアな処理部分をカプセル化しちゃうの。それで、唯一異なる部分である『四角』と『三角』を変数としてclassに渡してあげるの。classというのは設計図だ。classから実際に動く実体を生成することを、インスタンス化と言う」


「いんすたんす化!」


 あぁ、あぁ、楽しいなぁ!

 カナリア君は、一度話したことは全部全部ぜーーーーんぶ覚えて吸収してくれる。

 こんな子供、欲しかった。


「――はっ!?」


 その時、エクセルシアに電流走る!


「カナリア君! 私の子供にならない!?」


「いやー!」ぶんぶんと首を振るカナリア君。「お姉ちゃんが、ボクのお嫁さんになるの!」


 あぁ。

 あぁああああああああああ!

 最高だよカナリア君!


 私たちが甘々お勉強デートをしていると、





 ――ヴゥゥゥウウウウウウウウウウウウウゥウゥゥウウウウウウウウゥゥゥウウウウウウウウウウウウウウウウウウウゥゥゥゥウウウウウウウウウッ!!





 魔物警報だ!


「クゥン君、カナリア君、出撃するよ!」


「ははっ」


「うん!」


 今日も、のんびりとはさせてもらえないらしい。

この作品に、最初のコメントを書いてみませんか?