5

 僕はこうしてことり先輩の誘いのもと、プログラムの授業を受けることになった。

 お互いに放課後の時間がある日に喫茶店で会うことにしている。

 店内に入ると、彼女はすでにテーブル席をひとつ確保していた。

「ことり先輩、待たせてすみません」

「ううん、今来たところだよ」

 まるでデートの待ち合わせみたいなことを言ってのける。

 そして、リュックサックからノートパソコンを取り出して電源ボタンを押した。

 つい、パスワードを滑らかに入力する細い指先に見とれてしまう。

「あ、ごめん。注文してくるから」

 アイスコーヒーでいい? という彼女の問いに、僕は極めて平然をよそって答えた。

 少しずつパソコンが立ち上がってくる。

 そういえば、彼女のパソコンをしっかりと見てしまうことになるんだ。壁紙の画像も、インストールしているアプリも気になりだした。

 なんだかことり先輩の秘密を覗いている気に......なると思ったが、その緊張は一気にしぼんでしまった。

 デスクトップに映し出されたのは、プリインストールされている空の画像とアイコンが5個くらい並んでいるだけだった。心のどこかで可愛い壁紙を期待していたのに、ちょっと残念だった。

 そこにことり先輩が戻ってくる。

 彼女は僕の感情を気にしないまま隣に座ると、あ、と小さな声を上げて鞄の中身を探し出した。そうして出してきたものに、僕の目は丸くなった。

 

 彼女が小さなビニール袋から取り出したのはキャンディだった。丸くてビニールに包まれているシンプルな形のやつをまるで蒔くようにテーブルの上にばらばらと置いていった。色んな味があるのだろう、カラフルな視界が目の間に広がっている。

「なんですか、これ」

 あまりこのようなところで出すものじゃないから、つい声をかけてしまう。

「キャンディだよ、見ればわかる。

人間、ときに甘いのが食べたくならないかい?」

 私、キャンディなめるの好きよ。彼女はそう語っているがあまり共感はできない。

 そうじゃなくて、と僕が言おうとしたところでやっと続きの話をしてくれた。

 「ここに来てくれた印のために、毎回ひとつずつ差しあげます」

 なるほど。

 それはまるでアプリゲームの"ログインボーナス"みたいなものだ。

 ログインボーナスというのはアプリゲームにて採用されている仕組みのひとつだ。毎日ゲームで遊ぶプレイヤーのために配られるささやかなお礼のアイテムで、ゲームを少しだけ便利に遊ぶことができるようになっている。

 「じゃあ、ひとつ頂きますね」

 僕はこう言って、ひとつ選んで手元に置いた。ちなみにサイダー味のようだ。帰りに楽しむことにしよう。

 ことり先輩はじゃあやろうか、と言って<Planeプラネ - tariumリウム>のアイコンをダブルクリックした。


 ・・・


 ことり先輩は説明を始めてくれた。

「これはアプリを作るための開発ツールよ。

ま、こないだも使ったから分かるよね」

 いえ、これだけ言われても理解はできない。

 あ、と彼女は口に手をあてた。

「ごめん、つい分かってると思って飛ばしたわ」

 どうせ僕は初心者ですよ。ふてくされる僕に、彼女はごめんと頭を下げた。

 そして、レベルを合わせるように解説をしてくれた。

「どのようなアプリでも、複数のファイルが組み合わさっている。

それぞれに意味があって、それらがつなぎ合うようになっているんだ」


 だから、用途に即したコードを書く必要があるんだ。そう言ってくれる。

 なるほど。

 開発ツールをそういう風に使っていくわけだ。

「じゃあ、具体的にどんな処理を書けばよいのか。

もちろん作りたいものによるんだけど、まず大前提を抑えておかないといけないよ」

 それはプログラムの三大要素と呼ばれる。

 <順次進行><条件分岐><繰り返し>の3つから構成されるという。

「しい君、スマートフォンで電卓出してみて」

 ことり先輩の指示がよく分からない。言われるがままにいくつかの数字を足し算することになった。

「......それで、1から5までをすべて足すといくつなの?」

「言わずもがなでしょう、15じゃないですか」

 本当のところは暗算でも答えを出すことができるのだが。

 ここで、彼女はくすりと笑った。その表情を読み取ろうとしてみると、深い意思を感じ取った。

「今やったことを良く思い出してみてよ。

君は私に言われるように数字を入力していって、最後にイコールボタンを押した。

つまり、こう言い換えることができるよ」

 彼女は<Plane - tarium>に、次の文章を打ち込んだ。

* 電卓のアプリは僕が入力する通りに動作する

* 1のボタンを押したら1が、2のボタンなら2がメモリに足し算される

* イコールボタンを押すまで繰り返し数字のボタンを押すことができる

 そして、ひとつずつ説明してくれる。

「まず、プログラムというのはコードを書いた通りに動作する。

その通りに君もアプリを操作した。

これが<順次進行>だよ」

 僕は無言のままひとつ頷いた。

「次に、計算するために数字のボタンを押した。

だから、ボタンを押したらという仮定法を表したのが<条件分岐>」

 つい、2回続けて頷いてしまう。

「最後に、イコールボタンを押すまでずっと数字のボタンを押すことができる。

これが<繰り返し>」

 こうやって例えられるとおぼろげながら理解できそうだ。もちろん3回頷いた。

 ここで、ことり先輩はざっくりと処理のイメージを書いてくれた。

 

*───────────────────

計算結果のメモリを用意する


イコールボタンを押すまで繰り返し:

  1のボタンが押されたら:

    メモリに 1 が加算される

  2のボタンが押されたら:

    メモリに 2 が加算される

  ...


メモリに格納されている計算結果を表示する

────────────────────


「ざっとこんな感じだよ。

上から計算結果を記憶するメモリを用意する、イコールボタンが押されるまで数字ボタンを押すとメモリに加算される、最後に結果を表示する」

 このような流れで電卓の処理ができるのだという。もちろん厳密な電卓アプリではなくて、僕が行った足し算を投影したものだ。

 まるで川の流れのようだなって思った。

「うーん。厳密には真下には流れていかないかなあ。

イコールボタンがずっと押されなかったら、ずっと数字を入力できるわけじゃん?

その分だけ"処理が上に戻っている"んだ。

また、数字それぞれのボタンが押されたらメモリに加算される処理が行われるわけだけど、"押されなかったらそこの処理は行われない"からね」

 必要なところに流れていくものだという。

「あと、こうやって段違いに書くのは書き方のひとつで、"ここだけ処理が区分されている"っていう意味だよ。

こういうのを<インデント>っていうんだ」

 たしかに、すべて左に揃っていたら見づらいだろう。

「それでさ......」

 彼女はいかにも楽しそうに話し続けている。僕も聞いていて悪い気はしなかった。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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