第5話 ついてくるもの
「私の名前は『小枝 絵里』。どこにでもいる小学4年生だったんだけど、ある日突然、魔法少女になっちゃった。正義のために敵と戦ったり、いろいろ大変だけど、みんな幸せになるといいな。
この前、私の最強の敵であり、最強のライバルであるプララちゃんと戦って、何とかその場は私が勝ったけど……プララちゃん大丈夫かな……
悪いやつだけど、私と同じ可愛い女の子……
でも、これで平和になるといいんだけど……。
もしものために、もっと魔法を覚えて強くならないとね」
絵里とプララが戦った日、絵里がかろうじて戦いにかったもの、プララは光り包まれて消えてしまった。いろいろ話したいことはあった。なぜ彼女は絵里と戦わなければならなかったのか?訳を聞きたかった。だが、それは叶わなかった。
もう夕暮れ時になっていた。魔法少女として正義のために戦っているとは言え、小学生であることは変わりない。小枝家は門限は厳しい。時間までに帰れらないと、いろいろ母からお叱りを受ける。絵里は家に帰ることにする。
「チーちゃんそろそろ帰ろうか」
「そうだニャ。晩ごはんが待ってるニャ」
絵里と一緒にいるのは、チーチャー、絵里に魔法を教えてくれる先生のような存在である。見た目は小さなチーターのぬいぐるみである。頭に学士帽を被っているのが特徴である。
ちなみにこの世界の魔法の基礎はプログラミングである。プログラミング言語でロジックを組むことは魔法の呪文の組み立てを身につける非常に有効なのである。
チーチャーは学士帽を被っているだけあって、何かといろいろな知識を持っている、小学校で習う内容程度の知識なら当たり前のように持ち合わせている。時々、魔法以外に絵里の勉強を見てくれる家庭教師的な存在でもある。
「ただいまー」
絵里は家に着くと、自分の部屋に向かった。
「宿題やらないとね」
夕食までは余裕があるし、今日の当番は絵里ではない。小枝家では夕食の支度は当番制なのである。今回は母のイクエが担当することになっている。
最近はチーチャーによる家庭教師の影響もあって、学校の成績は以前よりは悪くない。今回の宿題も、それほど手こずることもなく終わらせらせそうである。
「あとは、これをやって、最後にもう一度見直して……できた!」
絵里は宿題を終わらせた。学校宿題やテスト、プログラミングでも最後にもう一度確認するということは、非常に重要なことである。
プログラミングでは、書いたプログラムを実行や試すのに時間がかかるものもある。些細なミスが有った場合。再び実行するまでにかかる時間をもう一度待たなければならない。実行前にちょっと見直せばわかったことであっても、それをやらないだけで、無駄に時間を消費してしまうのである。とにかく、学校の勉強だろうと、プログラミングだろうと、その他の全てのことに関して、見直しと確認はとても重要なことである。
「よし、宿題終わり! そして、ちょうど晩ごはんの時間。グットタイミング」
絵里は夕食のため、階段を下りてリビングに向かう。
「今日の夕食、何かなー」
「最近、絵里は元気がいいね。学校の成績も悪くなさそうだし……」
「まぁね。 友達のおかげかな。おぉー、今日はハンバーグかぁ」
「絵里、好きでしょ」
「うん、大好き」
(チーちゃんにもわけてあげたいけど、ママにはチーちゃんが居ることはヒミツなんだよね……)
明るい雰囲気で夕食を食べる。夕食が終わると、絵里は自分の部屋に向かう。
「まだ、寝るまで時間があるし、プチコンでプログラム書いて魔法の練習しようっと」
現実世界のプログラムも魔法のような存在である。
実際に普段目にしない英文をダラダラと打ち込んで、実行キーを押した時。
文字や絵を思ったとおりに動かせたときの快感は、呪文を唱えて魔法を使ったときのような気分を味わえるものである。
ソースコードにプログラムを打ち込む。最後に『RUN』という命令を実行する。気合を入れて、心を込めて『Enterキー』をバチンとぶっ叩く。人によってはアニメの主人公のように「いっけー!」とか「発動!」とか叫ぶ人もいるかも知れない。この瞬間、現代世界に居ながら魔法を使ったような気分が味わえるのである。
正に魔法。プログラミングとは魔法なのである。
ちなみに『プチコン』とは『株式会社スマイルブーム』による、ゲーム機上で自分でプログラムを書いて実行してゲームを作ったりして楽しむことができる。ケームソフトである。オンライン限定で販売しているが、ソフトの値段は高くないため。初めてプログラミングをされる方におすすめである。
仮にプログラミングができなくても、他のユーザーが作ったたくさんのゲーム作品を楽しむことができる。またゲーム以外にも市販のソフトに負けず劣らずのお絵かきツールも公開されているため、ダウンロードして損は無い。ということである。
そして、この物語を楽しむ上では『プチコン』を知っているとより深く楽しむことができるであろう。
「今日は何を作ろうかなー。チーちゃん。付き合ってくれるよね」
絵里は楽しそうな笑みを浮かべながら机に向かう。
「任せろニャ」
チーチャーも笑いながら、2つ返事のように返す。
「プララちゃんの攻撃、凄かったなぁ。どこまでも自動で追いかけてくる弾。ああいうの、BASICでもできるかな?」
「誘導弾っていってニャ。シューティングゲームとかで良く使われるやつニャ。まずは自分なりに考えてプログラム書いて試してみるニャ」
「とりあえず、やってみよう。自機と敵の弾を1ずつ出して……自機は自由に動かせるようにして……自機の座標と弾の座標を比べて、ああなったらこうなるように……こういう風にプログラムを書いて……これだと弾が速すぎるから少し遅めに動くように……できた」
絵里は、じっくりと考えてながら、ゆっくりとプログラムを打ち込んだ。
そしてプログラムを実行しようとする。
「よーし、動くかなぁワクワク。『RUN』として、エンター。いっけー」
絵里は気合と込めて、『Enterキー』を叩く(実際にはタッチペンで押すだけだけど、気持ち的にはEnterキーと気持ちよく叩いている気分である)
ちなみにプチコン3号では、『RUN」+『Enter』をしなくても『スタートボタン』を押すだけで実行できる。だが、プログラム組み上げた直後は、やっぱり『Enterキー』をぶっ叩く快感を味わいたいものである。
絵里はプログラムを実行した。
絵里が書いたプログラムは次のような内容である。
(プチコンを持ってる君は、同じように打ち込んで動かしてみると面白いかも知れない)
『
ACLS
SPSET 0,2387
X=200:Y=120
SPSET 1,2385
EX=200:EY=0
WHILE 1
STICK OUT SX,SY
X=X+SX*3
Y=Y-SY*3
SPOFS 0,X,Y
EX=EX+SGN(X-EX)
EY=EY+SGN(Y-EY)
SPOFS 1,EX,EY
VSYNC
WEND
』
シューティングゲームのような自機の移動と敵の弾が飛んでくる動きのプログラムである。シューティングゲームでは大量の弾が出現するものであるが、最初に動作確認するプログラムを書くときは、このように自機1つ、敵弾1つというように最小の内容で作ることが大切である。
「一応、追いかけるけど、あれっ……まぁいいか」
「わるくないニャ。ちゃんと自機を自動的に追いかける動きをしてるニャ。何とか合格点ってところかニャ」
「自機の座標と敵の座標を比べて判断しているので、追いかける動きではあるけど……もっとゲームらしく作れないかな……」
「座標を比べて、追いかけることで実現してるニャ。これだと、斜めは1つの角度しかないから、こんな動きになってしまうニャ。なので細かい斜めの動きを実現するには……」
「そうか? 三角関数」
絵里はひらめいたように反応する。
しかし、それだけでは、あの動きを実現することは難しい。
「でも、斜めの角度はどうすればいいのかな?」
「そこで『ATAN関数』の出番ニャ。ATAN関数を使えば、座標から角度を求めることが出来るニャ。角度がわかれば……」
「サイン・コサインの三角関数だね」
絵里が割り込むように発言した。
「正解? かどうかは実際にプログラムを組んでみることニャ」
「よーし、やってみるぞー」
「ATANの使い方は、ATAN(Yの移動量、Xの移動量)で、ラジアンを返す……なるほど、となると、この引数に指定するのは、これとこれ……そして返ってきた値を、三角関数に突っ込んで……移動先はこれ……よし出来た」
絵里はプログラムを書きあげた。
プログラミングでは多少の命令や関数の使い方は丸暗記しなくても問題はない。(プログラミングに慣れている人でも全ての関数や命令を暗記している人はまずいない)リファレンス(ヘルプ)を見れば、関数の使い方が簡潔に書かれているからである。プログラミングで重要なことはリファレンスを見て理解できるようになることなのである。プチコンでは、命令にカーソルをあわせて、ヘルプボタン『?』を押すことで、リファレンスを見ることができる。
「プログラミングで大事なことは、使ったことがない命令でも、リファレンスを見て使い方を理解して使いこなせることニャ。命令や関数を全部丸暗記する必要は無いニャ。でもどんな命令や関数があるかは知っていたほうがいいニャ。やってれば自然と覚えるから、無理して覚えようとせず。楽しくやることが大切ニャ」
チーチャーは先生のような口調で長々と語った。
「さぁ実行っと」
「あれっ、ちょっと違う、こっちかな……再びトライ!」
絵里が書いたプログラムは次のような内容である。プチコンを持ってる君は……以下略
『
ACLS
SPSET 0,2387
X=200:Y=120
SPSET 1,2385
EX=200:EY=0
WHILE 1
STICK OUT SX,SY
X=X+SX*3
Y=Y-SY*3
SPOFS 0,X,Y
ER=ATAN(Y-EY,X-EX)
EX=EX+COS(ER)*1
EY=EY+SIN(ER)*1
SPOFS 1,EX,EY
VSYNC
WEND
』
「おー出来た、出来た。三角関数を使えばこんなことが出来るんだね。プログラムって面白いね」
「そうニャ。命令や書き方を覚えることで、どんどんできることが広がっていくニャ。ゲームのRPGの魔法みたいなものニャ。最初はレベルが低くて、しょぼい魔法しかできなくても、どんどん経験してレベルアップして、新しい魔法を覚えて強くなる。プログラミングを学ぶとはそういうことニャ」
プログラミングの楽しさ、それは自分のレベルアップである。それはプログラミングに限ったことではない。知識や技術を習得することで、今まで出来なかったことが出来るようになる、今まで長時間かけていたことが短時間で出来るようになる。結果、より良い成果を生む出すことにつながる。これが楽しさになるのである。
「そういえば、プララちゃんは、スマイルツールにはないヘリコプター見たいなスプライト出してたけど……」
「プログラミング言語はBASICだけではないニャ、他の言語ならBASICではできないこともできるかも知れないのニャ。ちなみに、プチコンでも、スマイルツールにないスプライトは作り出すことは出来るのニャ」
プチコンの良いところは何でも自作で楽しめることである。自分で描いた絵をプログラミングで動かすことも、自分で効果音や、音楽を作り出すこともできるのである。
「まだ、時間あるかニャ」
「そろそろ、夜遅くなってきそう。手短にね」
「プチコンのスプライトは、ゲーム上のグラフィック情報のどの部分を表示するかを定義されていることで成り立つニャ。そのグラフィック情報は書き換えることができるニャ」
プチコンにはユーザが絵を描いたり、プログラムで絵を描画できるグラフィック領域というものが存在する。グラフィック領域はGRP0~GRP5ある。実はもう一つあるが……それは、またの機会で説明することになるであろう。
「スマイルツールの『お絵かき』を選んで起動するニャ」
「これかな」
絵里は下画面に表示されているキーボードの緑のボタン『スマイルツール』をタッチする。画面が切り替わったら、下画面の右上の『お絵かき』をタッチした。
すると、スプライトに使用されている絵が表示されている画面になった。
「ここで描いた絵の一部をスプライトとして定義することができるニャ」
「そうなんだ」
「こうやってお絵かきソフトの要領で絵を書き換えるニャ。そして描き終わったら、SAVEするニャ。適当なファイル名をつけるニャ」
「私ももやってみよう」
「プログラムを作るときにスプライトを定義する命令があるニャ」
「スプライトに関連してるから、SPから始まるやつだよね……」
絵里はエディタ画面を起動して、「SP」と文字を入力する。そうすると下の画面に戻り色でSPから始まる命令や関数の候補が表示された。
「これは前に使ったことある命令だから違うし、これはまだ使ったこと無いね。これかなぁ」
絵里は表示されている命令をタッチする。
「どんな命令なんだろう? 命令の使い方を知りたいときは、命令にカーソルをあわせて『?』ボタンのヘルプ機能だね」
プチコンにはヘルプ・リファレンス機能がある。エディタ画面に表示されている、ソースコード上で命令の部分にカーソルをあわせて、下画面右上の「?」ボタンをタッチすることで、命令や関数の使い方が表示される。
BASICに限らずプログラミングをやる人、経験者であっても大半の人は命令や関数を全て暗記しているわけではない。リファレンスをちらっと見るだけで、使い方がわかるので、暗記しなくても問題はない。
「この命令はスプライトを定義する命令ではないね。でもこういう機能もあるのか、今度使ってみよう」
「そうだニャ。命令や関数の内容について、一字一句暗記する必要はないけど、どんな命令や関数があるのかを知っておくことは大切ニャ」
「じゃぁ、これかな……、違う、じゃぁ、これ」
絵里は他の命令や関数を試していた。プチコン3号の場合、SPから始まる命令はそれほど多くはない。そして『SPDEF』をタッチする。
「それニャ。リファレンスはわかりにくけど、それなんだよニャー、スライドパッドを倒して次のページに移ると詳しく載ってるニャ。その『SPDEF』という命令で、GRP4に表示されている画像から、どの部分を切り出して表示するかを指定することで、自分だけのスプライトを生み出すことができるのニャ」
ちなみに『SPPAGE』命令を使えばスプライトに使用するグラフィックはGRP4以外に変更することもできる。
「ほうほう。ちょっと引数が多くて大変そうね」
「確かに1つずつ、絵から座標は大きさを調べることは大変ニャ。なのでニャ。スマイルツールの『アニメ』を起動して、『DEF』をタッチするとニャ。そのスプライトの定義情報が確認できるニャ。そのツールでは任意の定義情報がどのように表示できるかも確認できるから、自作のスプライトを作る際にはちょっと便利に使えると思うニャ」
「じゃぁ、ちょっと試しに作ってみようかな……って思ったけど、もうこんな時間だね」「そうだニャ。明日は学校ニャ? プログラミングは夜更かしまでやるようなものではないニャ」
プログラミングは徹夜してやるようなものではない。まぁ楽しくなってくるとついつい夜更かしてやってしまうものである。でも、ちゃんと睡眠をとることはとても大事なのである。
プログラミングに限ったことではない。小説の原稿を書くのも、絵を描くのも、スポーツやトレーニングするのも、とにかく睡眠時間を削ってまでやるものではないのである。どうしてもという場合は仕方ない。徹夜は計画的に行いたいものである。
「そうだね。そろそろ寝る時間だし。また今度だね。 おやすみ」
絵里はベットの布団に入って眠った。
プララが光に消えてから、絵里の町は平和な日々が続いた。
もう、邪悪な黒い闇を見ることはない。普段どおりの普通の生活に戻っていた。
ある日の学校の帰り道
絵里とアサミとリカが一緒に歩きながらおしゃべりしていた。
「テストの点数どうだった?」
「まぁまぁかな」
「そうか、悪くなさそうでよかったね」
「そう言えば、最近プララちゃん見ないね」
アサミが言った。絵里はあの日の出来事を知っているのは絵里だけである。
「この前プララちゃんからメールがあったんだ。プララちゃんは急に外国行くことになっちゃんたんだって」
「そうなんだー。ちょっと寂しくなるね」
「でも、私は元気だよ。毎日じゃないけど、たまにメールとかでやりとりしてるから-」
「そっかー」
「明日の土曜日空いてる?」
アサミが尋ねた
「大丈夫だよ」
「じゃぁ集まってどっか行かない?」
「どこがいいかな。ショッピング、ゲーセン、カラオケ、映画館、遊園地、動物園?それとも……」
「どこも高いよね。私たち小学生だもんね。お小遣いそんなに多くないし」
「そうだな」
「リカの家とかどう?」
「いいけど、そんなに面白そうなのはないよ? イヌはいるけど?」
「イヌがいるの? 見たいみたい」
「いいよ。じゃぁ明日、私の家に来る?」
「うん」
「じゃぁ、待ち合わせは、K公園ね」
3人は土曜日を楽しみにしながら、通学路の途中で別れた。
今日は土曜日、絵里は待ち合わせ場所の公園へと向かう。
今日の絵里は、白いシャツと、デニムのジャケット、赤いミニスカート、黒い靴下、赤いスニーカーを履いている。赤いリボンをつけた黒いツインテールがよく似合っている。
絵里が公園について、既にアサミとリカがいた。
「遅いぞー」
アサミが笑いながら言う。
「ごめーん。待ったぁ?」
笑いながら絵里も返す。待ち合わせ時刻よりも15分前である。早起きは三文の徳というように早く来ることによるデメリットはこの場合ほとんど無いのである。
アサミは短めのスカートの水色のワンピースを着ている。白い靴下、黒いスニーカーを履いている。髪型はセミロングなストレート。見た目は絵里よりは少し大人っぽい小学生。
リカは膝丈の緑色のワンピースを着ている。白い靴下、茶色いローファを履いている。見た目は絵里よりは少し大人っぽい小学生。髪型は長いストレート。
3人は歩きながらリカの家に向かう。
リカの家はK公園からさほど離れていない。そもそも、小学生の家は学校から歩いて行ける距離にあるのが当たり前である。
「ここが私のお家ね」
「畑がある。庭も大きい!」
リカの家は一軒屋であった。決して富豪の家ではないが、家を塀で囲っており、家の前には小さな畑、奥には庭といえるのか広めの空き地のような空間があった。
絵里たちがリカの家の敷地に入ってくると、「ワンワン」と犬の鳴き声が聞こえた。
「ちょっと待ってね」
リカは2人を置いて奥に行ってしまった。
「とりえず自己紹介」
リカが犬を連れてきた。
「私の家族、ラッキィちゃん」
白と茶色、毛が長くふさふさしている。大きい犬種ではないが、絵里たちからすると大きい。
「人が来たら吠えて教えてくれるいい子だけど、そんなに怖い犬じゃないよ」
ラッキィは絵里たちを見るとゆっくり近づいてきた。
「大きいね、かわいいな。男の子かな?女の子かな?」
絵里は楽しそうに尋ねる。絵里とアサミは、ラッキィの顔をなでたり、逆に舐められたりしている。人間に慣れているのか警戒している様子はない。
「しっぽふってる」
「初めて会ったけど、もう私達のお友達だね」
絵里たちは、楽しそうに犬と戯れている。
そうこうしているうちに、リカの母が現れた。
「あらぁ、ラッキィちゃん。今日はたくさんの友達と遊んで楽しそうね」
絵里たちが気づく。
「どうも、はじめまして。リカ友達の……です」
絵里たちは挨拶をする。
「リカがお世話になってます。よろしくね」
リカの母も笑顔で話す。
「そろそろラッキィちゃんも楽しんだことだし、私の家に行く」
「そうだね」
絵里たちはリカに案内されて、リカの家に入った。
「おじゃましまーす」
元気な小学生の声が響く。
「まぁ、そんなに面白いものは無いかも知れないけど、ゆっくりしていってね」
リカの部屋に行く
「ここが私のお部屋」
絵里たちはリカの部屋に案内される。リカの部屋はきれいにまとまっている、特徴的なものは、犬や猫、熊といったぬいぐるみ。
リカから話しかけた。
「リカちゃんもこういうの好きなんだ?」
「そうなの。たまに雑貨屋さんとかいって和んだりするんだよね。で可愛いのがあったら、家に連れてくるの。そうしているうちに……こんなになっちゃった」
リカは嬉しそうに話す。
「プララちゃんも、こういうの好きだったんだよね。よくお話したんだけど……いつかちゃんと会ってお話したいなってね」
「絵里ちゃんもこういうの好きなのかな。ラッキィちゃんと遊ぶの凄く楽しそうだったから」
「そうだね。うちにも色々あるよ。リカちゃんほどではないけどね」
「家族みたいでいいよね。何でも話聞いてくれるそうだし。答えてくれなくても聞いてはくれるから……ラッキィちゃんはラッキィちゃんで可愛い仲間。でもそれとは別にこっちの子も大事な仲間なんだよ」
「わかる。うちにもパパと弟の影響でいろいろあるけど、仲間が大切ってことはよく分かる」
アサミのうなづいて楽しそうに会話に混ざっている。
「せっかくだし、お昼食べていかない?」
「いいの。ではお言葉に甘えて」
リカの母は、3人分のお昼ご飯を用意してくれることになった。
お昼の時間になる。リカに案内されて3人はリビングに向かう。
「どんどん食べてね」
「たっぷりあるから」
3人は昼食を食べる。
「うちでは畑で野菜を作ってるんだよ」
「芋とか、トマトとか、他にもいろいろね」
「大きな畑じゃないけど、作ったものはたまに近所に分け与えたりもしてるんだ」
「おじいちゃんが畑大好きでね。私もたまにお手伝いするよ」
「美味しいね」
「そうだね」
そんな他愛もないおしゃべりをしながら3人は楽しい時間を過ごした。
「そろそろ時間だね」
「今日は楽しかったね。また、遊びにきてね」
町には平和が戻ったようだ。
ある日の夜、絵里の部屋でチーチャーが真面目そうな表情を浮かべて話しかけてきた。
「絵里には話したいことがあってニャ。ニャーは異世界から来たのニャ。絵里も立派になったし、町は平和だし、ニャーの役目もそろそろ終わりかなニャ」
「そうなの?」
「そうにゃ? ニャーも別れるのは寂しにゃ。なので、思い出づくりとして、ニャーの世界に遊びに来ないかニャ。魔法の世界、夢の世界、楽しいところニャ。大丈夫ニャ、帰りたくなったら、いつでもこっちの世界には帰ってこれるニャ」
絵里は少し考える。
「じゃぁ、行ってみたいね」
「まだ夜中ニャ。朝までには帰れるニャ」
チーチャは嬉しそうな表情を浮かべている
「じゃぁ、チーちゃんの世界に行ってみよう」
「よし行くニャ。ニャ、ニャ、ニャ、にゃーん」
チーチャーが不思議なことをブツブツ言うと、目の前に光り輝く扉のような空間現れた。どうやら、異世界に続いているらしい。
絵里はチーチャーに連れられて、その空間に飛び込んだ。
「さぁ、魔法の世界へ!!」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます