00:05
こんにちは、ながおかのプログラミングチャンネルです。
今回は、何か勉強するときに、最初はもちろん、興味が一番大事、楽しいとか、何か目的があるとかが大事なんですが、
いざある程度やろうと思ったら、とりあえず何か汎用性が高い、
より最初にやった方がいいことから始めていくといいのではという、ちょっと当たり前の話ではあるんですが、
についてちょっと話したいと思います。
なんでこういう話をしようと思ったかというと、最近ちょっとテトリス99というニンテンドースイッチのゲームにちょっとハマってまして、
テトリスをやってるんですが、テトリス実は昔、携帯ゲーム、ガラ系に入っていたのをちょっとやってたぐらいなんですが、
そのときあんまり真剣にやっておらず、真剣にやるって何だって話なんですけど、
ただ、ここでニンテンドースイッチのテトリスを始めて、そういえばTスピンとかあったなっていうのを思い出して、
それを色々調べてみたんですね。
このTスピンって何かっていうと、テトリスって4つの四角が組み合わさったテトリミノというものを積み上げていくゲームなんですが、
この4つに組み合わせるうち7通りあるんですが、そのうちのT型3つが一列で、その真ん中に1個四角が付くT型のミノをスピンすることで、
本来物理的には入れられないところにねじ込むことができるんですね。
その技名がTスピンと言われてまして、Tスピンミニ、Tスピンシングル、Tスピンダブル、Tスピントリプルという4種類あってあります。
これ何なのかっていうと、これがあると威力が高いんですね。威力って何だよと。
テトリスって基本的に列を消してスコアとかを競っていくんじゃないのかって話なんですが、
テトリス99というゲームが99人のバトルロイヤルなんですね。
なので、PUBGとかフォートナイトみたいな最後のドン勝するためのゲームになってまして、
みんなにどんどん攻撃するんですがお互い、その攻撃力が高いという意味で重要であって、重要になっています。
このTスピンというのを昔ちょっと真剣にやってなかったから調べてみようかなと思って、
ちょっとブログを、解説しているブログの方を見ていろいろ調べていたら、
かなりわかりやすく説明されている暇つぶしブログさんという方がありまして、それをいろいろ読んでいたんですが、
03:02
Tスピンすごいと、最初できたときすごい嬉しかったんですけど、
それができるようになり、そのブログを読み進めていくうちに、
結構後の方に最適化についてという話がありまして、
この最適化というのは何かというと、テトリスの動きの中で、
1個でも入力を少なくするだったり、ミスするのを少なくするという話がありまして、
例えば最初真ん中からブロックが降りてくるんですけど、
それを一番端っこから1個左、例えば右から2列目まで移動するときに、
何回も方向キーを押すんじゃなくて、一番端まで一度ガッて移動してから、
1個戻すという入力をした方がいいよみたいな、
そういった細かい積み重ねを最適化と呼んでいるんですが、
その最適化をしないと上級者から超上級者へはいけませんみたいな話だったんですね。
これを読んでちょっと思ったのが、
これって逆に一番最初にやった方がいいなと思いまして、
それが何でかというと、例えば最初動かし方ってすごく癖になってしまうので、
最初に最適化から考えるとあんまり良くない動かし方でずっとやってしまうと、
どんどん染み付いてしまって、もう変えるのがすごく大変になるというのがありますし、
あと一回覚えてしまえば、その後ずっと使い続けるものだから、どんどん体に馴染んでいって、
最初にやればやるほどお得なんですよね。
福利的にお得になっていくというか。
だから、それって例えばプログラミングの勉強とかで言えば、
最初に良いコンピューターを買うとか結構それに近い気がしていて、
最初に、しかもこれってテトリスの動き方を覚えるよりさらに簡単。
簡単というと言い過ぎですけど、お金がもちろん必要ですが、
何とかして、ローンを組むなり、お金を頑張って貯金するなりして、
最初ある程度の、別に何百万もするものじゃないですからね。
10万円とか12万円とかで、ある程度のちゃんとしたものを買えば、
毎日毎日使うもので、1個1個の反応がすごい速いとか遅いとかあるわけで、
どんどん良さが積み重なっていくわけですよね。
逆に言えば、あんまり非常に遅いものを使っている人は、
ワンアクションワンアクションでどんどんイライラだったり、
時間も使いますし、やる気もなくなっちゃうだろうし、
というのが積み重なっていくわけで、そういったものってあるなと。
そういったものを最初にやるって、
これ想像以上に後々積み重なっていきそうだなというのを思いました。
06:05
これってただ、いきなり最初からそれをやるとくじけちゃうというか、
Tedrisで最初から動かし方をまず完璧にするぞなんて思う人はいないわけで、
最初は列消えて楽しいとか、そんな感じで始めるわけですよね。
ただ、できれば早い段階で、これは結構面白いし、
ちょっと真剣にやるかってなった段階で、
基礎的なところをやってしまうのが良さそうだなというのが感じたことで、
それって例えばプログラミングで言えば、
最初動くものを作るとか、本をそのまま社協するとかから始めて、
結構これいいなと思ったら、
早い段階でコンピューターサイエンスの基礎みたいな本をちょっと読んだりとかすると、
裏側の雰囲気がつかめてくると。
イメージとしては、山を反対側から穴を掘り続けるみたいな話なのかなと思っていて、
全部理解できている人は、
違うな、山を反対側からというより、
高レイヤーから低レイヤーまで、
理解できるみたいな話で、
一番最初にやる、動くものを作ろうとかは一番高レイヤーの話。
コンピューターサイエンス、CSの基礎みたいな話は低レイヤーの話になっていて、
その低レイヤーの話、だから最初上から始めるんだけど、
下からもちょっと掘り進んでいって、
どんどん続けていくうちにどっかでガチャンと繋がる瞬間が来るんです。
すると何が起こるかというと、
上から下まで一気通貫でわかると。
理想としては、
ウェブアプリケーションならウェブアプリケーション動いているところからどんどん下まで降りていって、
最後機械に変換されたものがCPUの中で、
CPUが半導体をオンオフして0101で計算してみたいな、
そういうところまで流度の違いはあるにせよわかるみたいな、
そういったのが一気通貫で理解できるというところまでいくために、
最初からある程度上下でやっていった方が、
基礎からもやっていくといいんじゃないかと。
このCSの基礎とかって正直このTetrisの動かし方ほど毎回毎回使う話ではないので、
よりもうちょっと実践に即して言うと、
エディターの便利ショートカットとかですかね。
それは知ってる知ってない人は相当違う気もしていて、
せっかくなら覚えても。よく使う機能は。
だからCtrl-C、Cmd-Cでコピーとかは、
かなりの方が使っていると思うんですが、そういうやつですよね。
09:01
そういうのを結構組み合わせていくといいんじゃないかと。
だからこれちょっと今ちょっと頑張ればすげー後でこれからお得だなみたいのを積み重ねていくのと、
基礎をやっぱり早い段階でやりたいなと。
あんまり基礎だからってすごいもんだと思わないで、
身構えたりせずにフランクな感じでサラッといけるといいなと思いましたと。
ちょっと長くなってしまったんですが、
最近感じた基礎が大事であったり、
早めにやっとよりお得なことは最初からやった方がいいよなというお話でした。
いいねやコメントとかぜひいただけると嬉しいです。
あとフォローもぜひお願いします。ありがとうございました。