マイコンに関する本とか雑誌とかも読んでいろいろ学んでいたので、アルゴリズムという言葉はその頃に知ったと思います。
そしてアルゴリズムという言葉で私が連想するのはパックマンです。ゲームのパックマンですね。
パックマンの敵キャラはゴーストともモンスターズとも呼ばれているらしいんですが、赤青ピンクオレンジ色4体いますが、この4体のゴーストそれぞれが違ったアルゴリズムで動いてるんですね。
赤のモンスターは常に最短距離でパックマンを追いかけるとか、ピンクのゴーストはパックマンを先回りするみたいにそれぞれが違ったアルゴリズム。
パックマンの動きや他のゴーストの動きに合わせてこういう時にはこう動くみたいなルールが決められていて、そういうアルゴリズムがプログラミングされていて、その通りにそのルールに沿って常に動いているということです。
オレンジ色のモンスターは結構気ままな動きをするタイプなんですが、気ままと言ってもランダムな要素は一つもなくて決まったルールの中で動いているということです。
ちなみにランダムという言葉も私はマイコン用語、コンピューター用語として覚えました。
日本語では乱数と言いますが、例えばプログラムの中でランダム関数というのを使って1から6までの数字をランダムに出してくれと言ったら、1の確率で1から6の数字を出してくれる。これがランダムということですね。
適当という言葉を使ってしまうとちょっと違うので、やっぱりランダムはランダムですよね。
話し逸れましたが、パックマンの話に戻って、パックマンには必勝法というのがあって、決まったルート通りに動けば必ずクリアできるという移動ルートがあるんですね。
今風に言えばチートですかね。そういう裏技的なものがあります。
この必勝法があるというのが、敵の4体のゴーストがアルゴリズムによって必ず決まったパターンで動いているということの証明になると思います。
4体のゴーストは必ず決まったアルゴリズムに沿って動いているので、誰がプレイしてパックマンを動かしても同じ動き方をすれば、4体のゴーストも同じ動きをするということですね。
そしてこの必勝法でのパックマンの動かし方自体もアルゴリズムと言えますよね。その手順の通りにすれば必ずクリアできると。誰がやってもクリアできると。
そしてパックマンが面白いゲームとしてこれだけ受け入れられたというのも、敵の4体の動きのアルゴリズムがよくできていたからと言えると思います。
人間対コンピューターで行うゲームの場合、敵が強すぎても弱すぎても面白くないので、そのバランスみたいなものがよく取れているアルゴリズムだったんだなと思います。
ゲームといえば娘とボンバーマンをやるときに他人数プレイにしてコンピューターのプレイヤーを何人か追加して遊ぶことが多いんですけども、そのときに娘がコンピューターのプレイヤーのことをAIと呼んでるんですね。
なのでその度にAIじゃなくてアルゴリズムと口癖のように言っています。娘がAIに負けたくないとか、このAIは頭が悪いみたいなことを言ってくると、その度にAIじゃなくてアルゴリズム、AIじゃなくてアルゴリズムだよと言っています。
あとアルゴリズムといえばNHKのピタゴラスイッチのアルゴリズム体操を思い出す人もいると思います。このアルゴリズム体操の存在はもちろん私知っているんですが、なんでアルゴリズムなのかなーってそこまで深く考えたことはありませんでした。
公式の説明によると、一人でやっても意味がわからない動きでも、二人が組み合わさることによって意味を持つアルゴリズム、物を解くための手順をテーマにした体操ということでした。
で、このアルゴリズム体操が結構アルゴリズムというものをちゃんと表現していると解説しているノートの記事を見つけました。
で、その記事によると、アルゴリズムには3つの基本構造というのがあって、順次、繰り返し、判断、分岐の3つということで、順番通りにやっていくというのと、あと繰り返しの作業というのと、あとこういう場合はこうという状況を判断して、次の処理を変えるという。
条件分岐というのと同じだと思うんですけども、この3つがちゃんとアルゴリズム体操には含まれていて、よく考えられているということでした。