シンプル

スマホが普及したせいもあり、最近、パソコンを使う人が減ったように思います。

私はLINEでも何でも、パソコンで打ちたい派です。

スマホのフリッカー入力より圧倒的に速く文字が打てますし、パソコンのほうが画面が大きいし、できることが多いので、近くにスマホとパソコンがあったら、パソコンを触ります。

 

 

そんなパソコンにはキーボードにテンキーがついています。

と言っても、最近はテンキーは外付けだったりしますけれど。

 

 

テンキーというのは、電卓みたいなものです。

0から9までの数字が書いてあって、主に数値を入力したり、計算したりするときに大活躍します。

たくさん数字を入力する仕事があるときに、テンキーのないキーボードだけだと心が折れます。

 

 

そんなテンキーですが、パソコンが普及されたばかりのころはゲームのコントローラーとしても活躍しました。

画面内のキャラクターは「6」を押せば右に、「4」を押せば左に動くといった具合です。

なぜ6と4かって?

テンキーをよく見てみてください。

真ん中の段は「4」「5」「6」と並んでいるでしょう?

 

「5」を中心に考えているので、「4」は左、「6」は右なのです。

 

 

ゲームをプログラミングする際に

「4を押されたら」キャラクターを「−1動かす(左に1マス動かす)」

「6を押されたら」キャラクターを「+1動かす(右に1マス動かす)」

という命令文を書きます。

 

そうすれば、4を押すと左に、6を押すと右に動かせるようになります。

 

 

このプログラムを書くときに、何も考えずにやると今のように2行になります。

 

それを賢いプログラマーは1行で済ませるような方法を考えるんだそうです。

 

どうするかというと

「キーを押されたら、その押されたキーから5ひいた数だけ動かす」

という命令文を書く、と。

 

友人Y
よくわからん

 

つまり「4を押されたら」その4から5を引いて「−1動かす(左に1マス動かす)」ということです。

これなら「6を押された」場合も、6から5を引いて「+1動かす(右に1マス動かす)」というのもできます。

 

 

「もし4を押されたらAで、もし6を押されたらB」なんていう分岐を作らずに「押された数から5を引いた数だけ動かす」という1つの命令文で右にも左にも動かせるようになるということです。

 

 

こういう発想って、どうやればできるのでしょうね。

 

当たり前のものを当たり前と思って見ていると見逃しそうです。

 

 

おそらく大抵のプログラマーはそれまでどおり「4なら左」「6なら右」という2行の命令文を書いていたと思いますが、それを見た天才プログラマーは「押された数から5引けば1行の命令で良いんじゃない?」なんていう飛び抜けた発想を持って、新たな常識を作っていくのでしょう。

 

5を引くなんて、言われてみれば簡単なことなのに、思いつきそうで思いつきませんよね。

 

 

常に「もっと簡単に書く方法はないか」という視点で生活していないと思いつかないものでしょう。

 

私もぜひそういう人の視点を持って、あっと驚くような発見をしてみたいものです。

 

 

今回のプログラマーの話は受け売りなんですが「ずいぶんわかりやすい例を出して、うまく説明するなぁ」と思ったので私も挑戦してみましたが、いかがでしたか?

 

シンプルにわかりやすく表現するって難しいですね。

 

日々精進です!

清水のフリートークの最新記事8件

>学習塾Lilyの方針

学習塾Lilyの方針

通塾生の学力向上を第一に考え、行動します。

Lilyのブログを毎日更新します。

CTR IMG