2020-12-01

anond:20201130214610

自分の土台が理解が出来ないの辛いよなあ……自分の足元がどうなっているかというのを意識しだすと大抵の人は精神を壊しがちになる

ただ元増田に関しては以下のことを意識してほしい

ある問題があった時にその問題は複雑で巨大でそれ単体で挑むと全然わからん状態になる。だから「分割する」。

おそらく元増田に関して言えばループとif文というのはわかっているのだろう。

じゃあそれがどういった風に組み合わせればゲームというものが組み上がるか、という点に関していきなり挑戦しだすと大変なことになる。

ということでゲームというものそもそも分解して考える。

ここでゲーム(いわゆるテレビゲーム)というもの

ー画面にキャラクター画像が表示される

ーそれらを操作が出来る

ー何がしかの終わりだったりクリアがあるもの

という定義をしてみる。これで三要素。

次に「画面に画像を出す」を分割する

画面に画像を出す、ということは「画像を画面の決められた位置に置いて表示する」ということが必要

さら画像は「色の粒」と「その色の粒がどこに置いてあるか」というので表現できる

ピクロスとかあるだろ?あれと同じだ

ということは

画像を置く場所を決める

画像の色の粒を抜き出して画面に表示する

となる。

ここでまた問題が出てきた。「画面に表示する」だ。

画面に表示するということは画像の色粒情報が何がしかデジタル情報から自分たちのアナログ世界に出すということになる

これをしてくれるのは画面に並んでる赤と青と緑のめちゃくちゃ小さな電球LED)だ。

昔のブラウン管テレビなんかすごい近くで見ると赤と青と緑の粒が並んでる。

俺たちが画面を通して色を知るのはこの粒が「ある面積(1cmでも1mm四方でもいい)の中でどれだけの割合でどの色の電球が光っているか」という情報しかない

例えば赤だけ光っていれば赤と認識するし、赤と緑が同時に光っていれば混ざって黄色に見える

まり画像の粒の情報から「ここの赤はこの数値だった光る、そうでなければ光らない」ということで色が決定される

ほら、if文が出てきただろ?

ここまで分割してようやっとif文の世界にたどり着く。しかし、逆に言えばこれだけ分割すればifの世界にたどり着けるということでもある。

大きなものを大きなもののまま考えるのはどんな人でも無理だ。

もし「わかっている人」がいるのならその人はどこまでもこの問題の分割を行って分かる範囲まで落とした人だ。

プログラムをやるには実はこの「問題を分割する」という行為が一番大事になる

ただの四則演算ループやif文の組み合わせでなぜゲームが出来るのかといえば、それはゲームというものをそこまで分割しきったからだ。

んで、この分割を毎回色んな人が繰り返し実装するのはきついのでみんなすでにある道具を使ってしま

画像を表示する」という解決だけしたいからみんなそれがすでに出来るようにしてくれる道具を使う

それがライブラリだったり、もっと大きくなるとUnityというゲームエディターだったり、更に広い範囲でいうとOSになったりする

とまあ、ここまで言ったがこの「分割」をあらゆるものにやっていくのは本当に大変な作業だ。

色んなものを分割していくと「じゃあなぜ俺たちはifという命令PCにわからせることが出来るんだ?」とか

「なぜループできるんだ?」というところまでに行く

けれどそこまで行くこと自体がある種の経験だしそれが自分たちが立っている土台を知る学ぶということでもある。

なので、自分がどこがわからないのかをまずは大きく分割してみよう。

それができれば少しはあなたイライラが解消できるかもしれない

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん