テトリスを作る
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/10/07 16:53ID:Pf3z3KIHソースを載せてください
0680名前は開発中のものです。
2009/02/12(木) 14:09:05ID:6jowvibW>>672
0681名前は開発中のものです。
2009/02/26(木) 23:14:40ID:6CNqUajY0682名前は開発中のものです。
2009/03/02(月) 23:11:29ID:L1WHkI3Zttp://circle.zoome.jp/apptown/media/659/
0683名前は開発中のものです。
2009/03/09(月) 00:13:05ID:88I9p0Nz0684名前は開発中のものです。
2009/03/10(火) 23:42:49ID:8Ev7tmIW落下の3種類があるがどれのこと?
0685名前は開発中のものです。
2009/03/12(木) 01:17:07ID:V0oPeIhvあと、最近のだと上とか押して瞬間的に一番下まで落ちるのもあるよ
0686名前は開発中のものです。
2009/03/13(金) 13:13:25ID:0W25G/7Jキーを押している間、落下中のテトリミノのyをインクリメントし続ける(着地したら停止)
・自動的な落下
インターバルをおいて落下中のテトリミノのyをインクリメント
・ブロックが消えたときの落下
消えたラインから上にある積まれたテトリミノすべてのyを、一度に消したライン数ぶんだけ加算
・上を押したときの落下(ハードドロップ)
落下中テトリミノのyインクリメントを着地するまで繰り返す
0687名前は開発中のものです。
2009/03/13(金) 16:48:19ID:sfYjktESたぶんもっと基礎的なところで躓いている
0688名前は開発中のものです。
2009/03/13(金) 18:00:56ID:olBL6Hp0答える必要ないかと。
0689名前は開発中のものです。
2009/06/06(土) 08:23:39ID:FXw0rCGK0690名前は開発中のものです。
2009/06/06(土) 17:52:17ID:At8g59+40691名前は開発中のものです。
2009/06/07(日) 12:34:29ID:cgH0fsjW一週間でテトリス
ttp://d.hatena.ne.jp/portown/20090415/1239801213
うん、二ヶ月近く経った今でもまだ完成はしてないようだけどね。
C++でデザインパターンも使いまくりで、まあなんというか
こういう人が開発する様子を眺めてみるってのもおもしろいかも。
>>690
昨日googleのロゴが変わっていてびっくりした。
0692名前は開発中のものです。
2009/06/07(日) 13:06:59ID:a8YEZg9NBASIC+マシン語を使って一週間くらいでテトリス作った事があって
「テトリスなんてちょろいぜ」と思っていたが
三行テトリスを知って、自分の無力さを思い知った。
(当時とは環境が違うとはいえ……)
0693名前は開発中のものです。
2009/06/08(月) 14:15:24ID:NMisg64Hマジレスすると
基本操作、列消えはすぐ作れるんだ
テトリスの一番難しい箇所は
下に付いてから位置が確定される時間差の処理
穴に回転させて入れる場合の確定要素
そう言った余剰処理の方が難しいのさ
0694名前は開発中のものです。
2009/06/08(月) 14:23:05ID:NMisg64H□□□□
□□□□
□□□□
□□□□
これが一個の回転領域とすると
□□□□
□■□□
□■■□
□□■□
なのか?
□■□□
□■■□
□□■□
□□□□
なのか?で処理の仕方が変わるし
回転制御も
どのマスを最初に処理するソースにするかで隙間入れの処理が違う
初心者ほど
途中の回転と一列消ししか気にしない駄作作る事実
これ位覚えておけカス
0695名前は開発中のものです。
2009/06/08(月) 14:28:52ID:NMisg64H□□□□
□■□□
□■■□
□□■□
↓
回転後は
□□□□
□□■■
□■■□
□□□□
なのか?
□□□□
□■■□
■■□□
□□□□
なのか?
どっちで処理するんだ?って話
0696名前は開発中のものです。
2009/06/08(月) 14:37:36ID:NMisg64H抽象的な方が分かりやすいと思うから
■□□□
■□□□
■□□□
■□□□
□□□□
□□□□
□□□□
□□□□
↓
処理(タイム関数でループ処理)
↓
□□□□
■□□□
■□□□
■□□□
■□□□
□□□□
□□□□
□□□□
表示するプログラムと
処理するプログラムは別と考えるんだ
0697名前は開発中のものです。
2009/06/08(月) 14:50:00ID:NMisg64H3月って・・・
すまん
0698名前は開発中のものです。
2009/06/08(月) 16:19:14ID:CpLOgfEO0699名前は開発中のものです。
2009/06/08(月) 16:56:39ID:o+iAtdVT0700名前は開発中のものです。
2009/06/08(月) 18:38:01ID:ciQxNixs↓
■□■□■■
■□■□■■
■□■□■■
■□■□□■
■□□□■■
■■■■■■
こういう状況で回転させた時どうすべ、って事だな。
0701名前は開発中のものです。
2009/06/08(月) 18:58:54ID:CS5VoGMq・T○Mっぽくする
・セガテトリスっぽくする
とりあえず回転法則は既にあるものをまねてみるべきだと思う。
0702名前は開発中のものです。
2009/06/08(月) 21:14:09ID:mnboJmcu■□■□■■
■□■□■■
■□■□■■
■□■□□■
■□□□■■
■■■■■■
..■
■□■□■■ これなら
■□■□■■
■□■□■■
■□□□□■
■□□□■■
■■■■■■
昔のセガふうテトリスだと一段上に戻って
乗っかるような動きになるのでは
■■■■
■□↑□■■
■□□□■■
■□□□■■
■□□□□■
■□□□■■
■■■■■■
0703名前は開発中のものです。
2009/06/08(月) 21:22:27ID:ScR8iayc悩んだっつーだけで地力で解決した昔の話なの。
0704名前は開発中のものです。
2009/06/10(水) 09:40:47ID:Yyxw5vo50705名前は開発中のものです。
2009/06/11(木) 21:10:01ID:TGzW5zV20706名前は開発中のものです。
2009/06/11(木) 22:05:13ID:gjZGF+thそんな細かい回転法則とか操作性の工夫とかっていらないんじゃないのか
0707名前は開発中のものです。
2009/06/11(木) 23:31:10ID:/TMuiCwD何も用意しなくてもウィンドウ作ってくれるHSPから離れられん。
0708名前は開発中のものです。
2009/06/12(金) 00:03:47ID:ulpNcVjf0709名前は開発中のものです。
2009/06/30(火) 23:19:09ID:kpfmSDmAHSPとそう変わらない感覚で作れるぜ
0710名前は開発中のものです。
2009/08/07(金) 15:35:29ID:aw3m8zWsttp://kanataofstars.web.fc2.com/tetrin.html
ページとアップローダーのテストも兼ねています。よろしくお願いいたします。
回転法則とか無視してますけど…。
0711名前は開発中のものです。
2009/08/07(金) 16:34:41ID:1yFyUDa10712名前は開発中のものです。
2009/08/07(金) 18:35:55ID:YopJz8wT0713名前は開発中のものです。
2009/08/09(日) 11:26:42ID:5UNaihht0714名前は開発中のものです。
2009/08/09(日) 19:13:38ID:xdUCSZLHすみません知りませんでした。削除しておきます。
0715名前は開発中のものです。
2009/08/09(日) 22:29:54ID:2l2vvz9Zリードミー入ってない。
コンピュータが弱い。
0716名前は開発中のものです。
2009/08/09(日) 22:47:10ID:xdUCSZLH>リードミー入ってない。
すみません。>>714修正時に誤って削除していました。一応ホームページから見られるようにしておきました。
>コンピュータが弱い。
調整を検討しておきます。
0717名前は開発中のものです。
2009/12/08(火) 18:34:45ID:gFAFbPam回転いれたぷよぷよフィーバーみたいな操作性のよいものがうまくできないです。
というより回転まではうまくできたんですがフィールドにぷよがあるときの当たり判定とクイックターンのアルゴリズムなどがうまくできないで悩んでます。
なんかいい方法ないですかね?
ちなみに今は32のマップチップみたいなものにぷよを配置するような方法でやってます。で、アクションゲームでやるような当たり判定で…
めりこんだときに上に配置するべきか横に配置するべきかがうまくできなくて挙動がおかしいんですよね
だれかいいソースみたいなの教えていただけないでしょうか?
0718名前は開発中のものです。
2009/12/08(火) 20:08:39ID:NvDi18bm入力があった時に、変化できるかできないかと、変化後の形処理をして、結果を段階的に表示する方法にしたほうがいい。
でないと意図しない動きで変な動作をすることになる。
パズルゲームなんだから、落下も回転もマップの1マスずつ移動させるように処理する。
まずは1マス単位で動くようなものを作ってから、途中段階を表示させるように変えてみようよ。
0719名前は開発中のものです。
2009/12/08(火) 20:55:09ID:gFAFbPam何ヶ月もレスのなかったスレに書き込んで、正直回答もないと思ってたので、とてもうれしいです。
ありがとうございます。
>変化できるかできないかと、変化後の形処理をして
なるほど、こういう考え方をすれば必ず処理はできそうですね。参考にさせていただきます。
>パズルゲームなんだから、落下も回転もマップの1マスずつ移動させるように処理する。
>まずは1マス単位で動くようなものを作ってから、途中段階を表示させるように変えてみようよ。
すいません、自分の説明が足らなくて、一応マス単位には消去や着地判定などもしてうごかせるものはできました。
なので、マスに縛られないものを作りたいと思いまして…。
それとどうしてここまでそこにこだわるかの理由なんですが、やはり32単位のマスで動かすとカクカクに見えるという難点があり、これはかなりゲームのクォリティを下げてしまうように感じるのです。
それだけではなく、ぷよぷよが好きなので、どうしても"まわし"に関する部分の再現であるとか地面についてから子ぷよを持ち上げて軸ぷよを浮かし、待機させるといったような表現も再現したいのです。
クイックターンも然りです。
この、http://www.youtube.com/watch?v=TGi42Csclwcにあるぷよぷよの続編(ぷよぷよフィーバー)なんですか、これらはマスに縛られないきれいな動きをしていて、こういうのを作ってみたいのです。
こういった自分の考え方は客観的にどのように感じるのかも思ったことあればまたレスお願いします。
0720名前は開発中のものです。
2009/12/08(火) 21:53:25ID:665owXk2内部ではマス単位で移動し、表示をドット単位にする方が正しい
0721名前は開発中のものです。
2009/12/08(火) 22:49:31ID:gFAFbPamおおおおおなんかひらめくものがありました!
完成したらうpするのでそのときまた評価などしていただけたらお願いします
たぶん今週末までにはできそうです!
0722名前は開発中のものです。
2009/12/09(水) 00:56:44ID:IOr6Snmx内部処理ではとっくに右に移動しているが
ドット単位移動で表現しているんだな。
左右移動中に反対に入力したりとか、高速下降を中断した時とか
考えることはたくさんあるぞ。
0723名前は開発中のものです。
2009/12/09(水) 17:04:36ID:wrqBjGoehttp://www.nicovideo.jp/watch/sm8517855
「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー
──「プログラミングの楽しさ伝えたい」
ブロードテイル CEO 紀平 拓男 氏
http://itpro.nikkeibp.co.jp/article/Interview/20091104/340019/
0724名前は開発中のものです。
2009/12/10(木) 09:30:27ID:GOd4BvIs作ってもいないやつから想像だけのアルゴリズムとか真に受けないほうがいいよ
よさそうと思っても実際やってみたら使えないなんてことざらにあるし
最近は適当なこというやつ多いな
0725名前は開発中のものです。
2009/12/10(木) 10:50:48ID:/9raUUtW0726名前は開発中のものです。
2009/12/12(土) 18:38:05ID:o24Vdapk0727名前は開発中のものです。
2009/12/12(土) 20:31:55ID:sRj/YPfWこんなところじゃなくても公開はしないだろ
0728名前は開発中のものです。
2009/12/12(土) 22:29:39ID:o24Vdapk一応でも明日またくるよ
0729名前は開発中のものです。
2009/12/12(土) 22:39:30ID:sRj/YPfW0730名前は開発中のものです。
2009/12/12(土) 22:44:53ID:o24Vdapk俺は今週末うpってレスがあったから今日、明日じゃないかと思ったんですよw
0731名前は開発中のものです。
2009/12/12(土) 22:56:37ID:0++6BlhBパズルゲーの劣化コピーはプレイヤブルな状態で公開すると
完成度によっては面倒なことになるから
基本的にうpは無いものだと考えてるんだが
ID変わってるけど俺727ね
0732名前は開発中のものです。
2009/12/12(土) 23:42:46ID:jl0uP9p70733721
2009/12/16(水) 10:05:51ID:mP5Wb4vT誰か操作の部分だけでかまいませんのでお手本のソース作っていただけないでしょうか?
0734名前は開発中のものです。
2009/12/16(水) 14:27:12ID:2ThoUv3k自分でここまでやった、てのを出すと出やすいと思うぞ。
0735721
2009/12/16(水) 15:04:05ID:mP5Wb4vTHSPです。しかしC言語もかじっていたので条件文などはおおよそCに近く書いてあります。
今いらないものごちゃごちゃしてるので整理してうpしてみます
よろしくお願いします。
0736721
2009/12/16(水) 16:26:28ID:mP5Wb4vTモジュールだったのですが今書き直します
ちょっと待っててください
0737名前は開発中のものです。
2009/12/16(水) 17:26:17ID:ujk7acGK頑張れ
0738名前は開発中のものです。
2009/12/16(水) 18:24:09ID:2ThoUv3k0739名前は開発中のものです。
2009/12/27(日) 08:14:22ID:O973uBUqhttp://www.nicovideo.jp/watch/sm9203192
iアプリのテトリスとしては良い動きしてる
0740名前は開発中のものです。
2010/04/21(水) 04:39:50ID:jrhisQ/90741名前は開発中のものです。
2011/03/22(火) 15:33:07.92ID: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のほうがプログラムがシンプルになりそう
自分がやるならどっちか、それぞれのメリットデメリット、
他にこんな方法があるよっていうのがあれば教えてください
0742名前は開発中のものです。
2011/03/22(火) 19:48:55.69ID:P3mon26Q大きい変則ブロックを出したいなら二次元配列がいい。
回転以外の変形や分割もさせたいなら一次元配列がいい。
0743名前は開発中のものです。
2011/03/22(火) 20:17:37.29ID:ZyN29BQgttp://www1.axfc.net/uploader/O/so/158875
意見、感想求む
(音楽データがあるので46.8MBとちょっとサイズが大きいです)
0744名前は開発中のものです。
2011/03/22(火) 20:19:52.43ID:ZyN29BQg>>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座標か) という
四次元配列で、事前に全て決めておく方法
0745名前は開発中のものです。
2011/09/08(木) 20:50:24.43ID:cPUulUtX■ このスレッドは過去ログ倉庫に格納されています