第2.1話 共同作業

 とくにプログラムを組んでいた夢を見ていたわけではない。それなのにどういうわけか、目が覚めた瞬間に、昨日やったことで足りない部分があったことに気づいた。おそらく俺の前世は職人だったのだ。寝ても覚めても一つのことを考えているような、そんな人生を歩んでいたのだろう。俺が現世でめんどくさがり屋なのは、前世で働いた分を清算するためなのだ。それなのに癖が抜けず、頭の中を休めるための時間を使って、使命を全うしようとした。なんと忌々しい。

 今日は土曜日で学校は休みである。

 録画していたアニメを見ながら朝食を済ます。プログラミングに関する本を手元に置いた後、スマホを手に取る。勉強の前にスマホを覗いてしまうのは自覚してる癖だ。

 隆也から通知が届いていたことに気づく。

「さすがだな、この調子でゲーム作ってくれよ」

 簡単に言うな。いつもならそう返していただろう。だが、今までと違って一人じゃない。絵を描いてくれる人がいる。俺は体の中から、熱い何かがこみ上げてくるものを感じた。うっぷ。一人の時でも、ゲップが出た時に口元を抑えてしまうのは、社会的動物として生まれた故か。

 秋晴さんと話し合って決めると、返事を返す。隆也からの返信時間が数時間前になっていて、すぐには既読はつかないだろうと思っていたのだが、意外にも速くついた。

「そういえば俺まだ秋晴さんの描いた絵見てないんだけど、浩太朗は見せてもらったのか?」

「見てないな」

 そういえば見せてもらってなかった。どんな絵を描くのか知っていれば、飛行機以外を提案できたかもしれない。友達リストから秋晴さんを見つけ、過去に描いた絵を見せてもらえないかと聞く。こちらはすぐには返信は来なかった。

「代わりに俺のを見せてやるよ、ほれ」

送られてきた画像は、下手な犬の絵を撮ったものだった。

「落書きか、今描いたのか?」

「今描いた。浩太朗はわかってないな。アートだ」

それは見た人が決めることだ。

「落書き以外の何者でもない。世界中の絵と称されるものに謝れ」

「もしこれに一億の価値がついたらどうする」

「とんだインフレだな。世紀末だ。貯金全部引き出して美味いものでも買って余生を過ごす」

なんだとムキー!!という猿が怒っているスタンプが届く。何度かスタンプの撃ち合いをしていると、月曜は俺より早く来いよさもなくばお前の下駄箱に12支の絵全部ぶちこんでやるかな、ときた。月曜日の朝に何か用があるのか、それともやり取りを終わらせるための方便なのか、どちらであってもいつも通り行こう。

 手元に置いた本を開ける。先週買ったばかりで綺麗だ。内容はプログラムを綺麗に書くための設計の仕方で、基本的な構文を覚えて間もない俺にはぴったりの代物である。

 変数名は何のための変数なのかわかるような名前を付けよう。

 ネストをできる限り少なくしよう。

 関数化をして同じような処理をまとめよう。

 最初の数ページはこんなところだ。すでに聞きかじったものではあったが、まとまった本を読むのは、意識を整理してくれる。

 この本では計算式ひとつでも関数化をして、役割のわかりやすさ、再利用のしやすさ、単体テストのしやすさをメリットとして挙げていた。自分はそこまで細かく関数化していなかったので、書き直してみる必要がありそうだ。

 昨日書いたプログラムで直せるとこはないかと、頭をぐるぐる回す。そういえば秋晴さんから返信は来ただろうか。通知を確認してみたが、何も来てない。

 仕方がないので、朝起きたときに気づいたことをやりながら、直せるところを探そう。

 昨日やったことは、簡単なアニメーションをする画像をキーボード操作で動かすというものだ。実にシンプルでなんの変哲もないものなのだが、少し気にしないといけないことがあった。上矢印キーを押せば決まったスピードで上にいく。右矢印キーを押せば決まったスピードで右にいく。では、上と右、両方の矢印キーを同時に押せば?今のままだと、値が同時に増えるため、2倍のスピードで動くのだ。これはまずい。

 これを改善する方法は少なくとも2つある。もしかしたら他にもあるかもしれないが、すぐには思いつかない。

 1つ目は、上矢印キーだけを押したときと、上矢印キーと右矢印キーの両方を押したときで処理を変えるというものだ。両方押したときは片方押したときよりも、半分の値だけを動かすと均一になる。わかりやすいが、なぜか好きになれない。

 2つ目は少し数学の知識を使う。キーボード操作によって変化する、横と縦の移動量を取得する。ピタゴラスの定理を使い、取得した移動量の長さを求める。求めた長さで移動量を割ると、1で正規化できる。さらにそれにスピードを掛ける。そうすると、横しか動かないときも、縦しか動かないときも、両方動くときも、同じ速さで動くのだ。

 早速やってみたが、画像が表示されない。一度、正規化した移動量にスピードを掛けた時点での、値を確認してみる。ブレークポイントというものを設ければ、プログラムを停止することができ、その時点で変数にどんな値が入っているのかがわかるのだ。

 早速確認してみる。少数を入れる変数なのに、nanという単語が入っていた。確かこれは、実数では表せないものが入ってしまったときに、代わりとして入るものだ。

 原因はすぐに思いつく。移動量はキーボード操作によって変化する。キーを押さなければ0であり、それで何かを割るということはできないのだ。 

 移動量が0よりも大きいときだけ処理するようにすると、無事に動いた。

 調べてみると、何かしらの値を0で割り算することをゼロ除算と呼ぶらしい。今回のことを肝に銘じて、メモしておこう。

  作業がひと段落し、休憩に入る。いくら動くのが嫌いな俺でも、本とパソコンのにらめっこを続けるのは酷である。時刻は10時を過ぎたところだ。散歩にでも行こう。 

 思い出したように、スマートフォンの通知を確認するが、秋晴さんからの返信はまだない。こうやって返信が来るかを何度も確認できるのは、平和な証拠だ。

 適当に着替え、スマートフォンをポケットに入れる。使う予定はないが、小銭も反対のポケットに入れた。玄関に行く途中、テレビの音が聞こえてきた。親がいるんだろうと思い、少し大きめの声で、散歩に行くことを伝えると、ついでに昼食のおかずを買ってきて、と返ってきた。

 古くなってきたスニーカーに足をねじ込み、つま先をとんとんと床にぶつけ整える。

 すでに今日が始まって間が空いたが、日の光を浴びるのが一番始まりを感じる。爽やかな空気を期待し、ドアを開けた。外は思っていたよりも暗く、空が雲で埋もれていることはすぐにわかった。

 暑くなくていいじゃないか。こういうのは考えようなのだ。

 外に出て歩き始めると、目が痒くなってきた。花粉症である。だから春は嫌いだ。早く冬にならないだろうか。

 お使いを頼まれたため、散歩を止めるわけにはいかない。一番近くの精肉店に行って、コロッケでも買ってこよう。

 家から歩いて5分くらいの精肉店につく。開店時間はすでに過ぎていたが、コロッケなど、その場で揚げてもらうものは11時からだった。すでに1人の客がいたが、会計をしていたところで、すぐに出ていった。店員さんが、油を温めるのに時間がかかるけど、それでいいならと、コロッケを作り始めてくれた。

 そういえばと、ポケットに入れていた小銭を数えてみる。100円玉が何枚か入っていたので、コロッケを買う分には足りそうだ。

 店員さんがフライヤーに油を注いでいた。少し暇になりそうなので、ゲームのアイデアでも考えようかと、店内の椅子に腰かけ、頭を動かした。せっかく精肉店に来たのだ。ここからヒントを得よう。

 今のところ客はさっき出ていった人と俺だけである。店員さんは見たところ1人しかいないようだ。もしもここで客がたくさん来たらどうだろうか。ひっきりなしに来る客を1人で捌くゲームだ。精肉店ではなくお弁当屋さんにしたら、もっと色鮮やかなメニューができるはずだ。老若男女、様々な人が来客し、頼まれたおかずをプラスチックのお弁当箱に入れていくのだ。中には無理難題を言ってくる人もいるだろう。文句だけを言ってどこか行く人もいるだろう。人気のおかずはすぐに無くなり、仕入れを小まめにしないといけない。誰も頼まないおかずは残り、ハエが集るだろう。

 次はこれをどういう風に実現すれば、より面白くなるかを考えてみる 

 まずは、操作性だ。おかずをお弁当箱に入れる時は、お箸を使おう。マウスを使い、ドラッグアンドドロップするのだ。

 上手く掴まないと落ちるようにすれば、多少のやりこみ要素を作れるだろう。

 横からパチパチと油の音が聞こえた。油が温まったのだろう、店員さんがコロッケを油に入れていた。跳ねないようにするためか、コロッケが油に浸かるまでトングから離さなかった。なるほど、揚げ物は自分で揚げるのが面白そうだ。跳ねた時に何かしらのペナルティを科せよう。

 ある程度まとまってきたところで、メモアプリに箇条書きし、保存する。

 他に考えるべきものはと思ったところで、店員さんがコロッケをトングで掴み、油を切るための網に乗せていた。

 もうそろそろだなと思い、スマートフォンをポケットに入れ、代わりに小銭を掴む。 

 コロッケを紙袋に詰め終えた店員さんは、慣れた手つきでレジを打ち、値段を出した。握っている中から適当な小銭を選び、キャッシュトレイに置いた。コロッケを受け取ると、ありがとうございましたと言いながら、出入り口の方に振り向き、ドアを開ける。店員さんがありがとうございますと言うのを聞きながら、店を出ていった。

 俺は店員さんというユーザから見て、どんなキャラクターだっただろうか。少なくとも俺みたいな客が来続けても、面白くはないだろう。もしもゲームにするなら、自分とは真逆のような客を出そう。

 いつも通りの癖で、外に出ると同時に空を見上げる。曇った空から、早く帰れと言われてる気分だ。



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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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