ルールをつくる習慣づくり[2]ルールを探すクセをつけよう

前回、プログラミングとは「ルールを実行するための」の工程作業であり、ルールというのは「機能をもつソフトウェア」と言い換えることができるということをお話しました。今回は、普段の生活のどんな場所にプログラミングと関係するものがあるのかについて、お話しします。

法律とプログラミング

ルールのなかで、いちばん身近にあってわかりやすい例が法律でしょう。「ルールをつくるって法律をつくることなの?プログラミングってそんなに大げさなことなの?」と思われるかもしれませんが、大きな意味で言えばとてもよく似ています。

六法全書の難しい文章もソフトウェア

六法全書などに載っている法律の文言は、ご存知のようにチンプンカンプンな聞いたことのない文章であふれています。「どうして一般の人でもわかる言葉にしてくれないの!」と感じることも多いと思います。

しかし難しい言葉を使い続けているのには、それなりの意味があるのです。それは、その難しい言葉が「定義された共通言語」だからです。

六法全書に載っているそれぞれの単語や言い回しには「定義」があり、またその定義された法律用語にもとづいて、裁判で判決された「判例」があります。ですので、言葉を変えてしまうと、今までの判例と「言葉の意味が違ってしまうような事態」になってしまい、それだと困ったことになってしまうため、なかなか変えることができないわけです。

しかし逆に言えば、専門用語は定義がはっきりしていて、日常生活で話す言葉のように曖昧さが少ない分、一般の言葉よりもわかりやすい、とも言えます。プログラミングの用語・言語も、これによく似ています。

三蔵法師はソフトウェアを得るために旅に出た

たとえば漫画「ドラゴンボール」のもとになっている「西遊記」では、三蔵法師はお釈迦様にお経をもらいに旅に出ます。

お経は「世の中を良くするためのルールブック」=ソフトウェアと言えます。そのころの人々は「困っている人がいたら助けるのが自分にとって得なのか、損なのか?」といった常識さえ定着していなかったと考えてみると、イメージしやすいかもしれません。「困っている人がいても自分には関係ないんだから、どうなっても知らない」という人たちが多ければ、治安も悪くなり、助け合いも成り立ちません。

そこで「人々が互いに幸せに生きる術」をまとめた書物が必要で、それが当時のお経だったわけです。お釈迦様は「世の中を平和にしたい」という「目的」のために、お経というルールブック=ソフトウェアをつくったとも、言いかえられます。

ゲームのルールもバランスもソフトウェア

さて話を戻すと、パズドラやモンストのようなゲームのルール自体もソフトウェアですが、どうやったら続けていっても飽きずに楽しめるかというゲームのバランスもソフトウェアと言えます。ルールをつくるというのは、こういったゲームのバランスを考えていくようなことも含まれます。

世の中はどんなソフトウェア、どんなルールでできているかを観察する習慣をつけよう

話は変わりますが、筆者はその昔、ディズニーランドが大好きでした。なにが好きだったかというと、ディズニーランドに隠された技術やトリックがどうなっているのかなどを考えるのが好きだったのです。

たとえばディズニーランドで行われるエレクトリカルパレードに代表されるパレードでは、一つ一つのパレードカーからさまざまなアレンジの同じ曲が流れています。ある車からはロックアレンジのような曲、ある車からは悪魔的な曲、ある車ではプリンセス系のファンタジーな曲……といった具合です。

あるとき、眼の前を流れる音楽が次々と違うアレンジの曲なのに、音が途切れることもなく、曲がずっとシンクロ同期していることに気づいたのです。こういった仕組みがどうなっているかを考え、その秘密を発見するのが楽しくて仕方なかったわけです。

この仕組みの秘密は、it’s a small worldという乗り物に乗ったときに発見しました。it’s a small worldはパレードとは逆(パレードは自分が止まっているが、it’s a small worldは自分が移動するという意味で逆)ですが、音楽は数珠のようにつながり、目の前にいくと、その国の言葉や曲に代わっているという共通項があったのです。

この仕組みについてもう少し詳しく解説すると、英語をしゃべるキャラクターのパレードカーには右のスピーカーをつなぎ、日本語のキャラクターには左のスピーカーをつないで、それぞれ別の音を流しているのです。たとえばテレビの二カ国語音声で、右からは英語、左からは日本語が聞こえているようなものです。

※音楽制作でマルチトラック・レコーダーやDAWといった音楽制作ソフトを触ったことがある方は、よりイメージしやすいかもしれません。1本の音声磁気テープを並行に分割し、分割した「トラック」に違うアレンジの曲を録音し、トラックごとをスピーカーに接続するわけです。

ルールを「分解」して仕組みを理解する

先ほどの例では、音を分解することでその仕組みを理解することができました。それと同じようにルール=ソフトウェアも分解して、仕組みを発見することができます。ルールを分解する方法のひとつとしてわかりやすいのは「ルールを少し変更してみて、元のルールと比べてどう変わるか?を観察してみる」ということです。

では、たとえばジャンケンのルールを分解してみましょう。ジャンケンはグーとチョキとパーの3つ種類で行いますが、これを「4種類にしてグーチョキパーのじゃんけんに比べてどんな問題が起こるのか、どんなときによりおもしろくなるのか?」と考えることは、ある意味ジャンケンを「分解」したと言えます。そしてこの工程は「4種類でするジャンケン」という「ルールをつくる」=プログラミングをしているとも言い換えられます。

このように、目にするいろいろなもののルールを観察し、分解してみることで、日常生活においても「プログラミング」能力を鍛えることができるのです。

© Valed.press