LoginSignup
1
1

More than 1 year has passed since last update.

Reactでテトリスをつくる①_枠をつくる

Last updated at Posted at 2021-06-06

目次(このシリーズの記事検索結果)

はじめに

Qiita投稿のため

Qiita投稿のための取り組みとして、テトリスをつくりたいと思います。
なぜテトリスにしたかというと、有名なゲームであり難易度も多少高いと思うからです。

テトリスの作り方には様々なやり方があり、それらは既にノウハウとしてWebにアップされているものもあります。

それらと同じことをやっても、やる方も見るほうもあまり意味ありません。まだ、だれもやっていないやり方でやろうと思うわけです。

れもやっていないやり方でやる

今回は上記の観点で、以下の方法でプログラムすることにします。

  • 画面を方眼紙のように見立てて、配列で表示を全渡しする。
  • 配列は1次元配列にする

画面をドットにして渡す

工数

これはあくまで、「Reactでテトリスつくったらこんな感じです。」
というのをやりたいので、プロトタイプです。
それで、プロトタイプというものは、たとえ時間かけてつくったとしても、没になれば全く別のやりかたで作り直す可能性があるので、普通は時間をかけません。
個人開発ですと3日以内にデモンストレーションレベルに仕上げる算段です。

プロトタイプの品質

デモンストレーションレベルでは、バグがあってもOKです。
動くところをみせられればよいです。だから、とくにかっちりとしたテストとかも必要ありません。

const Base=[
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,0,0,0,0,0,0,0,0,0,1],
    [1,1,1,1,1,1,1,1,1,1,1],
]
function Display(props) {
    let screen = []
    for(let i = 0; i < props.disp.length; i++) {
        for(let j = 0; j < props.disp[i].length; j++) {
            (props.disp[i][j] === 1) ? d.push(<Dot x={j*20} y={i*20}/>) : null
        }
    }
    return ({screen})
}

function Dot(props){
    return <div style={{'width': '20px', 'height': '20px', 'backgroundColor':'red','position':'absolute', 'top':props.y,'left':props.x}}></div>
}

キャプチャ2.PNG

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1