tamakipedia

フロントエンドエンジニア。Typescriptもう特訓中です。一日の振り返りや学んだことをちょっとずつ吐いています。

テトリスを回転させる

オーストラリアにいた際にあった出来事なのですが、

シドニーに滞在してた頃、週末は毎回港にあるバーに行っていました。その時はまだ全然英語も話せなかったのに、スタッフと色々仲良くなっていくうちに

「バー好き?ならここで働こうよ」

って言ってもらえて、偶然仕事がもらえました。

英語も知らない状態から英語だけの環境へ、できない状態から臨めることが「良い環境」の定義ですよね。

https://diamond.jp/articles/-/224919  (ってこの記事をみて思いました笑)

 

その友人から久しぶりにメッセンジャーで連絡がありました。

ハッピーニューイヤー!!って笑

少し三年前を懐かしむ昨日でした(笑)

 

 

昨夜テトリスがかんせいしました。

でも参考にした記事の回転ボタンが全く理解できなくてコピペしたので

整理しようと思います。

 

--- テトリミノが回転する関数

f:id:okinawanpizza:20200108060110j:plain

とりあえず、座標を書いてみたら規則性があった!!

こちらは I 字のテトリミノの、「回転前」と「回転後」座標です。

実は回転と言っても、xの座標がy座標に変わって、

3 - y座標が xに変わっただけでした!!( 規則がわかれば怖くない!!! )

 

あとはループ文を書いて

rotated[y][x] = mino[x][- y + 3];

 

リターンで返してあげる

return rotated;

 

 

 

const rotate = (mino)=>{

    const rotated = ;

    for(var y = 0; y < 4; ++y){

        rotated[y] = ;

        for(var x = 0; x < 4; ++x){

            rotated[y][x] = mino[x][- y + 3];

        }

    }

    return rotated;

} 

 こんな感じです

 

 

 

とりあえずわかんないときは座標を書いてみるものですね笑

おしまい!