てきとうにテトリスを作ったら長棒の幅が少し太かった。ついカッとなってやった、反省しています


# 記事を読むまでもなく全てが予想出来るタイトル

完全に出オチなのに、タイトルでネタばれしております。
お察しの通り、**クソアプリ**です。

[クソアプリ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/kuso-app) の記事(3-19)です。


# 早速、証拠の品をご覧いただこうっ！

以下のURLから、犯人が作成した「**てきとりす**」なる、
テトリスに**非常によく似たゲーム**を**実際に遊べます**。

https://sage-momentum-211505.web.app/

**PWA**で作成されているため、スマホからもボタンタップ操作で遊べますが、
**てきとうな作り**で操作性が悪いため、PCのキーボード操作でのプレイ推奨です。


# プレイの様子が録画されております

![Tekitris1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/efbd5be0-c185-8b3d-d93f-118ab4b29108.gif)

## プレイ動画の解説

### 一見、普通のテトリスのようです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/961417b0-ac85-015c-f202-7c6e261f2440.png" width=50%>

### ブロックは順調に積みあがってゆき・・・

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/4865acb9-174f-5119-278f-f2ba32a53357.png" width=50%>

### 長棒が望まれるようになりました！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/1d5743c2-400a-7cb3-3edc-856e8872cf44.png" width=50%>

### とうとう待望の長棒が登場っ！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/f6d0c28c-6d19-229b-374b-666d6d38a4f8.png" width=50%>

### あれ、ちょっと微妙に幅が？？

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/2aeb177d-e7df-9b31-b500-b8b607ab06f6.png" width=50%>

### ガツッ！？入らない！！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/75a795bf-9a36-7e41-197f-731c51ecb524.png" width=50%>

呆然自失、前代未聞、驚天動地、怒髪衝天、
こんな事態を誰が予想出来るでしょうか？

~~もしイチジョウがパチンコではなくテトリスの「沼」を~~
~~作ったら、最後のトラップはコレになるでしょう~~

こんなことをした犯人を許しておけはしない！！


# どこをとってもクソアプリ

長棒をいれようとした瞬間、**クソッ！**となります。
長棒を石切り場から切り出した**石切り職人**も**クソ**ですし、
それを検品せずに取引をした**石材商人**も**クソ**です。
リリース前に動作チェックをしなかった**上流ベンダー**も**クソ**です。

記事や実装もてきとうなクソっぷりで、
**クソアプリの真髄**に一歩近づけた気がいたします（個人の感想です）

超難易度が高くて作者も実現出来ていませんが、
実は、理論上は「テトリス消し（４段同時消去）」は可能です。
クソほどヒマな人にはお楽しみいただけるゲームかもしれません。


# 犯人からの反省文

大変申し訳ございません。
てきとうに作ったので**長棒の幅を間違えて**しまいました。
(・ω<) ﾃﾍﾍﾟﾛ


# 余罪多数

犯人は過去のクソアプリアドベントカレンダーでも、
[今シンガポールにいますLineBot](https://qiita.com/youwht/items/014aa6e69657c5070593)
など、**世の中の同級会を破壊しかねないアプリ**を作成しています。

また、2021年12月に以下の
**怪文書の出版/配布**を行っているようです。

https://www.shoeisha.co.jp/book/detail/9784798170268

こちらは自然言語処理に関する本のようですが、
「てきとりす」のような**キテレツな実装が多数紹介**されており、
その実装手口を**超平易なコード＆コピペでさくさく動かせる**ようにして、
**自然言語処理の秘密を、広く社会に流布しようとした罪**にも問われている模様。
また、技術書にあるまじく、数式や専門用語の説明を省略し、
**面白さと簡単さ/分かりやすさのみを追求した点**も、反省の色が見られません。

アマゾンで、書籍版/Kindle版も両方ございますので、
お早めに**証拠の品**を確保してください。

https://www.amazon.co.jp/dp/4798170267?tag=shoeishacom-22

~~オマケ的に「斬新なアイデアを出すためのコツ」も載っています~~


# 「てきとりす」の犯行手口

まず、テトリスのベース動作として、
こちらのブログで公開されているコードを参考に、
作成させていただきました。ここに感謝の意をささげます。

https://torisky.com/javascript：テトリスプログラム/

次に、ベースを元に「マス目」の数を１０倍にして、
描画処理を1/10に縮小します。
つまり「てきとりす」は実際は、
横は１０マスではなく、１００マス扱いになっていて、
一つのブロック（テトリミノ）は、１０×１０×４マス使っています。
長棒だけ、１０×１２×４マス、になっているわけですね。
※この情報は「４段消し」を狙う場合に重要なヒントです。

最後に、左右や下移動の処理も１０倍にします。
ポイントは、移動距離を１０倍にするのではなく、
１ボタン操作に対して「１の移動を１０回繰り返し」にすることです。
「１０マス移動」だと、例えば残り８マスで接地するような状態のときに、
下ボタンが効かなくなってしまうのです。


# もなか＆Firebase

「てきとりす」を広く社会に流布させるためには、
PC、スマートフォン、両方に対応し、
アプリをホスティング出来る環境が必要です。

JavaScriptのコードを、Monacaに乗っけておくと、
Firebaseへ簡単にリリースすることが出来ます。

https://ja.monaca.io/

[「接待どうぶつ将棋」](https://qiita.com/youwht/items/5989e046d0edac565f05)
も、フロント部は同様にMonaca＆Firebaseで作成されています。
個人開発時には、おすすめしたい構成です♪


# あとがきと反省。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193512/9d552c65-fc9f-daf0-b528-0e56ae1371ae.png" width=50%>



長棒の幅を、ほんのちょっと間違っただけなのに、
**テトリスの難易度が究極的に跳ね上がりました**

ほんのちょっとの油断、ほんのちょっとのてきとーな仕事が、
命取りになることもありえるということですね。
今回の件で、深く学びを得ることが出来ました。

また、普段テトリスをプレイするときに、
当たり前のごとく長棒をねじ込めていた日常は、
**なんと幸せなことだったのか**
日ごろ当たり前だと思っていた事柄にも、
それを支える丁寧な仕事をしているかたが居ます。

日々そうした「当たり前の幸せ」を噛みしめながら、
丁寧な仕事への感謝を忘れない人間になれるよう祈りを込めて、

今度テトリスを作る際には、同じ誤りを繰り返さぬように、
きちんと石を切り出すところから、入念に品質を確認し、
再発防止に努めることを、ここに宣言いたします。

(・ω<) ﾃﾍﾍﾟﾛ

以上です。