プログラミングの楽しさ -市販のゲームで遊ぶより自作するほうが楽しい!

abekkan
abekkan
Aug 8, 2017 · 6 min read

私が「プログラミングが面白い」と感じた体験を紹介します。

最初は消しゴムから

子どものころ、こんな感じの野球消しゴムで遊んだ覚えがあります。六角形の消しゴムを転がして、ヒットとかアウトとかホームランとか。単純な野球ゲームです。

大学生になってから、この野球消しゴムをヒントにしたゲームを自作しました。たった4行しか表示できない、メモリーも少ないポケットコンピューターで。

初めは、コンピューターに1~6のどれかの数を出させて、1だったらヒット、2なら三振、3ならホームラン、というように表示するだけの、消しゴムと同じスペックのゲームでした。
次に、6つだった数を20くらいに増やしました。1,2,3だったらヒット、4なら送りバント、5ならダブルプレー、などといろいろな打球を増やします。これだけでもゲームのバラエティは増えました。

そしてランナーとアウトカウントと得点をを記録するようにしました。ヒットが出ると1塁にランナーが出ます。ヒットや送りバントならランナーは1つ進み、二塁打なら2つ進みます。ランナーがホームに帰ったら得点を追加します。
簡単なようですが、ここまで作っただけでもバグが出てきます。ツーアウトランナー3塁で送りバントをしても1点入ってしまう。ダブルプレーになってアウトは2つ増えたけどランナーは消えない。などです。実際に野球をしたときの状況を考慮してプログラミングしなくてはいけません。

だんだんと複雑に

次に、バッターによって打率や長打力を変えるようにしました。3番バッター、4番バッターだったらヒットの確率を高くして、9番バッターだったら低くしました。また、4番バッター、5番バッターだったら、ヒットの一部をホームランに変えてホームランが出やすくします。打順も覚えておかなくてはいけません。

こうすることで、上位打線と下位打線で得点力に差が出るので、ゲームにヤマ場ができて面白くなります。ここまでくると、プログラミングがかなり面白くなってきます。工夫することでゲームが面白くなるからです。

次に、実在の選手名を表示し、打率と長打力と足の速さを個人データに持たせました。当時の巨人と中日と西武のチームを選べるようにしました。落合は高打率で長打力もある。篠塚は高打率。秋山は長打力があり足が速い、などです。
足が速い人は盗塁の成功率が高くダブルプレーになりにくいという細かい設定も追加しました。

大学の授業中に、後ろの方の席に座って友達2人とこのゲームを楽しんでいました。この友達からの「落合は打率高すぎだよ」とかいうユーザーの声も反映してさらに改良を続けます。こうなってくると、プログラミングがとても楽しく感じられます。

スリリングに感じさせるための工夫

ゲームをスリリングにするために、打球の表示方法を変えてみました。例えば

  • 「サードゴロ」と表示してから3秒後に「エラー!」あるいは「ダブルプレー」と追加表示します。
  • 「レフト」と表示してから3秒後に「フライ」あるいは「スタンド ホームラン!」と追加表示します。

これだけでかなりハラハラするようになり、ユーザーに好評でした。この工夫をしたときには私もドヤ顔でした。

そのあとも、9番バッターに一度だけ代打を出せるようにしたり、隠し機能で一人だけ不調にして打率を落としたり、こういったことを考えるときの私はワクワクしていました。

そして最後に、究極の対戦モードを実装しました。oの文字のボールを動かし、バッターボックスのところに来たらH(Hitting)ボタンまたはB(Bant)ボタンを押します。タイミングが外れたら凡打になります。全部ストライクの3球勝負で、ピッチャ側は、剛速球、ストレート、カーブ、減速する球、から3つ選んで入力してからバッターに渡します。投手と打者の駆け引きもできて白熱するようになりました。

自分で作りこんだものだから楽しい

たった4行しか表示できないポケットコンピューターでこれだけ作り込んだのは我ながらよくやったなあ、と仕事でプログラミングをするようになった今でも思います。

それだけできたのは、作り込むことで自分で遊ぶゲームが面白くなることを実感できたからです。単に売られているゲームを買って遊ぶよりも、自分で作って面白さを追求していく、そのほうがずっとが楽しいのです。このプログラミングの楽しさを、このブログで伝えたいなあ、と考えています。

おまけ

この野球ゲームはポケットコンピューターで使用できるBASICというプログラミング言語で作りました。BASICは初心者向けのやさしい言語なのですが、私は特に習ったことはありませんでした。ポケットコンピューターについていた厚さ2センチほどのマニュアルでコマンドの説明を読んで、こういうコマンドを使えばこういう処理ができるだろう、と自力で考えて作りました。回り道もしましたが、すべて自分で考えたことで勉強になったし楽しかったんだと思います。

また、一度ポケットコンピューターが入ったバッグをテニスコートの更衣室で盗まれてしまったことがあります。当時3~4万円(だったかな?)したポケットコンピューターを盗まれたのは痛かったです。当時はパソコンからプログラムをダウンロードしたりパソコンに保存する機能は(たぶん)ありませんでした。そもそもパソコンを持っていませんでしたし。けれどもプログラムは自分の頭に入っていたのでポケットコンピューターを買いなおして復活させることができました。そんな思い入れもある、私のプログラミング作品でした。

※今日も読んでいただいてありがとうございます。プログラミングが面白い、と私が初めて感じたときのことを思い出して書いてみました。

賢い子を育てるイクメンパパの子育て術

あべっかんのMediumコーナー

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade