11/03/22 15:33:07.92 eIV0YQSI
テトリスのブロックの形ってどういうデータにしてますか?
たとえば
□□□□
□■■□
□■■□
□□□□
の場合、
やり方1
0, 0, 0, 0,
0, 1, 1, 0,
0, 1 1, 0,
0, 0, 0, 0,
2次元配列でこういう風に持っておく
やり方2
1, 1
2, 1
1, 2
2, 2
1次元配列でこういう風に持っておく
1のほうが直観的でわかりやすいけど
2のほうがプログラムがシンプルになりそう
自分がやるならどっちか、それぞれのメリットデメリット、
他にこんな方法があるよっていうのがあれば教えてください
742:名前は開発中のものです。
11/03/22 19:48:55.69 P3mon26Q
4つだけの時はそれほど変わりは無い。
大きい変則ブロックを出したいなら二次元配列がいい。
回転以外の変形や分割もさせたいなら一次元配列がいい。
743:名前は開発中のものです。
11/03/22 20:17:37.29 ZyN29BQg
>>721とは別人だが、完成したのでうp
URLリンク(www1.axfc.net)
意見、感想求む
(音楽データがあるので46.8MBとちょっとサイズが大きいです)
744:名前は開発中のものです。
11/03/22 20:19:52.43 ZyN29BQg
>>741
>>742のいうとおり、イレギュラーに対応することを考えると違ってくるかもね
1だと無駄が多い(ブロックのある場所を調べるのに配列の中全部を
調べないといけないし、配列のサイズも大きい)けど、自由度は高い
2だと無駄は少ないけどブロックを5個にしたりはできない
↓私はこんな感じでやった(HSP)
; J型
tet(4,0,0,XE) = 2 : tet(4,0,0,YE) = 2 ;
tet(4,0,1,XE) = 1 : tet(4,0,1,YE) = 2 ;3
tet(4,0,2,XE) = 0 : tet(4,0,2,YE) = 2 ;210
tet(4,0,3,XE) = 0 : tet(4,0,3,YE) = 1 ;
tet(4,1,0,XE) = 1 : tet(4,1,0,YE) = 2 ; 23
tet(4,1,1,XE) = 1 : tet(4,1,1,YE) = 1 ; 1
tet(4,1,2,XE) = 1 : tet(4,1,2,YE) = 0 ; 0
tet(4,1,3,XE) = 2 : tet(4,1,3,YE) = 0 ;
tet(4,2,0,XE) = 0 : tet(4,2,0,YE) = 1 ;
tet(4,2,1,XE) = 1 : tet(4,2,1,YE) = 1 ;012
tet(4,2,2,XE) = 2 : tet(4,2,2,YE) = 1 ; 3
tet(4,2,3,XE) = 2 : tet(4,2,3,YE) = 2 ;
tet(4,3,0,XE) = 1 : tet(4,3,0,YE) = 0 ; 0
tet(4,3,1,XE) = 1 : tet(4,3,1,YE) = 1 ; 1
tet(4,3,2,XE) = 1 : tet(4,3,2,YE) = 2 ;32
tet(4,3,3,XE) = 0 : tet(4,3,3,YE) = 2 ;
tet(種類の番号, 回転の状態, ブロックの番号, X座標かY座標か) という
四次元配列で、事前に全て決めておく方法
745:名前は開発中のものです。
11/09/08 20:50:24.43 cPUulUtX
はい、ムリ~。