開発者が語る、無線技術についてや製品開発の秘話、技術者向け情報、新しく興味深い話題、サイレックスが提供するサービスや現状などの話題などを配信していきます。09:15YS今回はプログラミングのおはなしです。生まれて初めて自分で書いて、自分で動かしたコンピュータプログラムを覚えているでしょうか。殆どの人は覚えていないでしょうね。したら「コンピュータプログラムなんて書いたことがない」という読者の方もおられるかもしれませんね。days...さて幸か不幸か、私は今でも「生まれて初めて動かしたコンピュータプログラム」を覚えています。円のミカンの合計金額を表示するというプログラムです。打ち込んで動かし「すごい!本当に動いた!」などと感動していました。当時パソコンを買うお金はないけどコンピュータを触りたくて仕方がない子供たちは、こうやって店頭デモのパソコンを恐る恐る触りながらパソコンを学んだものですが、彼等は「マイコン族」をもじって「ナイコン族」と呼ばれていました。「パソコン」よりも「マイコン」の方が広く使われていた時代ですね。いえばTVドラマ「太陽にほえろ」にもマイコンという渾名の刑事が登場していました。リンゴとミカンの合計金額算出プログラムは「そんなの電卓で出来るじゃん」と一蹴されそうな「実用的」プログラムです。次のプログラムはどうでしょうか。固有の画面設定命令です。応じて丸印を描き、この●は乱数で上下左右に(画面上の表示を「食いつぶしながら」)動きます。パソコンでは遅延を入れなくても●の動きは数コマ毎秒でした。画面の外へ出ないためのリミッターです。Call」を表示して止まってしまいます。これでもピンと来ない?乱数で●が動くのが何が面白いのって?では、判断を1行追加してみましょう。30こうすると●は画面上を「食いつぶしながら」ではなく、画面上の空白を縫って動くようになります。領域に直接アクセスして画面上の情報を拾ってくるものです。位置指定・表示はできても、表示済みの情報を拾う方法はありません(※註)。パソコンを設計していた人たちは、それをゲームプログラムに使うという意識はあまり持っていなかったようですね。読む実装がポピュラーでした。水を開けられて歯噛みしたものです...。「●が画面上の空白を縫って動く」ということは、これは「乱数アルゴリズムによる迷路脱出プログラム」として動かすことができます。「ゴールに向かって動く」という明確なアルゴリズムを入れていないため、あらぬ方向へ行ったり来たりを繰り返すので、乱数「だけ」で●が迷路を脱出するのを眺めているのはイライラするだけで楽しくはないかも知れません。すれば良いでしょう?たとえば「障害物に当たるまでは直進し、突き当たるたび右90度に回頭する」というアルゴリズムは組めるでしょうか?「分岐点を覚えておいて、一度通った道は二度と通らない」アルゴリズムは組めるでしょうか。乱数ではなく、キー入力に基づいて動くようにすれば「自キャラ」ができますし、乱数で動く「敵キャラ」とキー入力で動く「自キャラ」の2つを動かせば「迷路型ゲーム」の基本形です。lifeこういうものを見て「すごい!僕もこれをやってみたい!」とワクワクするか、「それが一体何の役に立つの?」「そんなのお金出せばもっと良いのが手に入るじゃん」とシラけた顔をするかが「オタク」と「一般人」の分水嶺になるのでしょう。「オタク」という人種は物事の仕組みを知りたくて仕方がない人種で、時計だろうがカメラだろうがTVだろうが分解したくてたまらないし、分解したらもう一度組み立てて自分オリジナルのモノを作りたくてたまらない人種なのです。それが既に世の中に存在して、お金を出せば簡単に手に入るようなものであっても。パソコンの能力など、今から思えば「パーソナル・コンピュータ」の名を冠したことが恥ずかしくなるくらいに貧弱です。リンゴとミカンの合計金額を計算するのも迷路を抜けるのも、プログラムなんぞ組んでいる間に自分でやったほうが「結果としては」早いでしょう。「迷路を抜けるにはこうすれば良いんじゃないか?」と思い付き、それをプログラムコードとして打ち込み、それを走らせた結果迷路脱出が早くなれば「やった!」という気になりますし、袋小路をぐるぐる無限ループしてしまえば「どうすれば袋小路にハマらないで済むようになる?」と更に考えることができます。それを「楽しい」と思えるか、「過程なんてどうでもいいから、さっさと結果だけくれよ」と思うかが、「ものづくり」を楽しめるか・ただの作業になるかの違いではないかと思います。個人情報の取り扱いについて。