テトリスを作るat GAMEDEV
テトリスを作る - 暇つぶし2ch741:名前は開発中のものです。
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
はい、ムリ~。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch