JavaScriptによるテトリス制作日記 その2

2021年4月21日水曜日

JavaScript 日記

では昨日の続きから。JavaScriptを用いたテトリスのコード修正を早く終わらせて次の動画を視聴する気満々だったわけですが…次から次へ気になることが出てきていつまで経っても先へ進めない泥沼状態になっていました。考えに煮詰まっている箇所が他の動画で説明されているかもしれない…と思いながらも自力で修正したい気持ちもあり先へ進めませんでした。中途半端なところで作業を止めて先へ進むのが気持ち悪いという思いもありましたし。


泥沼にハマる男


そんなこんなで長々とテトリスのプログラムをいじることになっていました。まず最初にテトロミノがフィールドの壁際で回転できない問題ですが、それはすぐに解決。ただ…テトリスはこんな動きじゃなかった気がする、と気になってしまった。それが全ての始まり。とりあえずテトリスってどんなのだったかな?とグーグル検索。そしてテトリスのWikipediaのページを開いて…そっと閉じる。紹介文が長かったのです。別にテトリスに興味があるわけではないので読みたくなかった。しかしそうもいかないので、もう一度開き直して適当に流し読む。ルールとか覚えたくないので本当に適当に。そして何やらSRSなる衝突判定が使われていることを知りました。一体どういうものだ?と思いながら検索していると↓のサイトに流れ着きました。


テトリス SRS


どうもSRSのアルゴリズムを詳しく説明されている記事みたいです。それを見てなるほど、とはならずに「読みたくない…理解したくない…」と苦しむことに。プログラミングがしたかったわけでテトリスのルールを覚えたかったわけではないので。無駄なことは覚えたくないなぁ…と葛藤しながら目を通しました。そしてそのアルゴリズムを参考に衝突判定プログラムを修正。ちなみに↑の記事の説明ですが図におかしいところが。説明文と図の動きが一致していない箇所があるという。僕が理解できていないだけかもしれないですけど。一体全体どちらが正しいのやら…理解したくない思いが強く結局適当な感じでコードを組みました。なのでSRSになっていない可能性が実際、夜中に寝ぼけながらコードを組んでいたので大きく打ち間違いしていた箇所も後に見つかりましたし。ややこしいので自分が納得いく動作を考えてコードを組めばよかった…と少し後悔。


嘆くクマ


↑の記事では回転入れなどのテクニックも紹介されていましたので、その通りに動けばSRSが実装できているかの確認になるかもしれない。しかし動作の説明を読んだりステージを用意するのが面倒だったのでスルー。テトリスに詳しくなりたいわけじゃない。動けばなんだって良いじゃないか?と妥協しました。目的はプログラミング学習ですからね。ここでコード修正が終わっていればまだ良かったのですが、SRS(擬き)を実装できたことで次の動画学習へ進む…ことにはなりませんでした。多少なりともテトリスのWikiに目を通したことで他にも修正したい箇所が増えてしまいましたから。まだまだ修正は続く…。




やっぱり文章が長くなってしまう。もう一記事くらいでコード修正でしたことを適当に書いて、考えに詰まった箇所は別記事で気が向いたときに書くことにしようかな。

最新の投稿

このブログを検索

ブログ アーカイブ

自己紹介

ひきこもっていたらお爺さんになりました…嘘です。プロフ写真はFaceAppで老化したものです。本人はもう少しだけ若いです。
ブログ管理者は15年程ひきこもっている、長期ひきこもりのオッサンです。現在ブログは休止中。再開は未定です。 詳細なプロフィール

QooQ