テトリスを作る
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/10/07 16:53ID:Pf3z3KIHソースを載せてください
0522名前は開発中のものです。
2005/08/17(水) 22:54:58ID:wHJ/Q6SP俺は、4行4列の行列として扱って「行列の回転」の演算を利用したよ
0523名前は開発中のものです。
2005/08/20(土) 03:05:28ID:QiGA0Fi6!!!
カ、カコイイ!!
0524名前は開発中のものです。
2005/08/21(日) 18:54:13ID:2QzGJoIB赤以外のブロックの最底面の位置は合わせた方がいいぞ。
じっくり遊べば気づくかもしれんが、接地中の操作性がまるで違うから。
テトリスワールドは床蹴りやらで対応しているが、個人的にそれはどーかと。
0525名前は開発中のものです。
2005/08/22(月) 23:42:58ID:Hcei4f6p■■■□←■■□□←■■■□←□■■□
□■□□→□■□□→□□□□→□■□□
□□□□ □□□□ □□□□ □□□□
↑
こうだったら接地中、回転させると浮いてしまうはず。
当時、なぜ接地中でも浮かないんだろうと思ったけど、こんな事だったとかなり後で分かったぽ
0526名前は開発中のものです。
2005/08/24(水) 16:35:32ID:eB4TKXgy│ │ .│
│■ │■ ...│ ■
│■■ → ■■■ → |■■■
│■ │ .│
│ │ .│
これができれば大半の人は満足するんじゃね?
0527名前は開発中のものです。
2005/08/25(木) 03:04:25ID:gBFFCRwbただ、確かにシフトして底面を合わせる回転方式をスマートに実装するのは難しいな。
補正量を記述した定義ファイルを別に作ってそれを読み込ませて対応したが、少し非効率な気もする。
0528名前は開発中のものです。
NGNG0529名前は開発中のものです。
2005/11/06(日) 01:22:19ID:u20WXTTw0530名前は開発中のものです。
2005/11/06(日) 01:52:42ID:9g77vaev0531名前は開発中のものです。
2005/12/22(木) 10:21:46ID:gp4MJFmZ2次元配列を使うのですか?
0532名前は開発中のものです。
2005/12/22(木) 20:37:29ID:rrOTwdfxまずはこのスレを頭から読み直せ
話はそれからだ。
何がわからないか書いてみな、
今漏れも久しぶりにHSPさわってるから。
0533531
2005/12/26(月) 15:02:04ID:TOAf+nRFとりあえず、見づらいですが途中までのソース載せときます。
buffer 1,,,1
picload "tetris.bmp" ;32×32の灰色のブロックと黄色いブロック
screen 0,415,607,1
palcopy 1
*START
gmode 2
gosub *SETMAP
0534531
2005/12/26(月) 15:04:40ID:TOAf+nRFredraw 0
gosub *ブロック
gosub *DRAWMAP
redraw 1
await 60
goto *LOOP1
*ブロック
BY+3
stick KY,8
if KY=1 :BX=BX-32
if KY=4 :BX=BX+32
if KY=8 :BY=BY+16
return
0535531
2005/12/26(月) 15:08:09ID:TOAf+nRFcolor 0,0,0 :boxf 0,0,414,606
repeat 19
RCNT=cnt
repeat 19
if MAP.cnt.RCNT=1 {
pos cnt*32,RCNT*32 :gcopy 1,0,0,32,32 ;壁用灰色ブロック
}
loop
loop
pos BX,BY :gcopy 1,32,0,32,32 ;落下用黄色ブロック
return
0536531
2005/12/26(月) 15:14:43ID:TOAf+nRFdim MAP,19,19
MAP.0.0=1,0,0,0,0,0,2,0,0,0,0,0,1
MAP.0.1=1,0,0,0,0,0,0,0,0,0,0,0,1
∫
MAP.0.17=1,0,0,0,0,0,0,0,0,0,0,0,1
MAP.0.18=1,1,1,1,1,1,1,1,1,1,1,1,1
repeat 19
RCNT=cnt
repeat 19
if MAP.cnt.RCNT=2 {
BX=cnt*32 :BY=RCNT+32
MAP.cnt.RCNT=0
}
loop
loop
return
0537531
2005/12/26(月) 15:19:58ID:TOAf+nRFまずは黄色いブロックが、底辺まできたら蓄積されるようにしたいのですがどうしたら良いでしょうか?
ちなみに、1が壁用ブロック、2が落下用ブロックです。
(本当は12×19マスの配列にしたいのですが、良くわからず19×19の配列になってます)
0538531
2005/12/28(水) 08:35:46ID:ex+d93O5いや、随分と素っ頓狂なプログラムを書いてしまいました。
アドバイスのしようがありませんものね。
どうぞ、僕のことはスルーして次の話題に行ってください。
0539名前は開発中のものです。
2005/12/28(水) 11:43:22ID:xg7Xr6Blちょwww自分のレス遅かったのにそれかよwww
>>532が来るまでこれでも見とけ
ttp://gamdev.org/w/?%5B%5B%A5%C6%A5%C8%A5%EA%A5%B9%C9%F7%CD%EE%A4%C1%A4%E2%A4%CE%A5%B2%A1%BC%A5%E0%A4%F2%BA%EE%A4%EC%5D%5D
0540531
2005/12/28(水) 21:00:04ID:az8NFlCHリンク先見ました。
スプライトとプレイフィールドの意味がわからないですが、
とりあえずペイントソフトで七種のブロックをつくってみます。
0541531
2005/12/29(木) 15:38:50ID:w8wWzACBdim A.12.21
A.0.0=9,0,0,0,0,0,0,0,0,0,0,9
A.0.1=9,0,0,0,0,0,0,0,0,0,0,9
( 省 略 )
A.0.19=9,0,0,0,0,0,0,0,0,0,0,9
A.0.20=9,9,9,9,9,9,9,9,9,9,9,9
repeat 21
rcnt=cnt
repeat 12
pos cnt*15,rcnt*15
if A.cnt.rcnt=9 { mes "口" }
loop
loop
stop
0542531
2005/12/29(木) 15:42:57ID:w8wWzACBブロックは別に配列を作るそうですが、どうしたら良いのかまったくわかりません。
0543名前は開発中のものです。
2006/02/01(水) 21:56:18ID:SLzdgd4fttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi23414.exe.html
win32 SDL.dll 必須(同じフォルダに置く)
SDL.dll
ttp://www.libsdl.org/release/SDL-1.2.9-win32.zip
0544名前は開発中のものです。
2006/05/01(月) 23:56:41ID:cQ5CvRYf0545名前は開発中のものです。
2006/05/02(火) 11:11:24ID:UeNfZ0vHム板に将棋や麻雀のCPUアルゴリズムを競うスレがあったが
ID表示が無いせいでなかなか議論が進まない傾向が見られた
一方こちらは人が居ない
0546名前は開発中のものです。
2006/05/20(土) 04:26:00ID:uT0leoeUだから速度で競うしかないからやってもつまらんよ
0547名前は開発中のものです。
2006/05/20(土) 19:52:09ID:sPNnlt1N後はTGMみたいにアイデアと操作性の勝負になるんだよな。
0548名前は開発中のものです。
2006/06/27(火) 21:10:04ID:SYe9nV570549名前は開発中のものです。
2006/06/28(水) 02:46:18ID:oP0nDtg4下まで掘り返すプログラムも簡単にできるのか?
0550名前は開発中のものです。
2006/06/28(水) 16:16:04ID:J/FopGa80551名前は開発中のものです。
2006/07/08(土) 06:15:01ID:iDFm5g4rパズルモードを攻略できるの?
0552名前は開発中のものです。
2006/08/18(金) 22:21:38ID:9Ph8mdvxT-SPINとスーパーローテーションの実装方法が分かりませんでつ。
ご指南いただければ幸いかと。
0553名前は開発中のものです。
2006/08/18(金) 23:00:50ID:2vFjQPe30554名前は開発中のものです。
2006/08/19(土) 16:59:32ID:mSi6sXts@固定される直前の動作が回転である
A左右移動できない
B最後に回転した方向にもう一度回転できない
この条件がすべて揃っていればイイんじゃないでしょうかね
0555名前は開発中のものです。
2006/08/20(日) 02:16:52ID:F5ABO99M晒すのが先
出来たところまででいいからさ
0556名前は開発中のものです。
2006/08/20(日) 05:14:44ID:D2IGNiOdクレ厨の言うことなんか聞くこと無いんだぞ
0557552
2006/08/20(日) 11:54:36ID:Evk47mxtすんません
ttp://www.freewebs.com/pme_jp/tetris.lzh
いちを操作方法。キーコンフィグはまだ無い。すまんね。
←→:移動
↓:高速落下
↑:ハードドロップ
[A]or[C]:回転
[X]:ホールド
※:[ ]の中はキーではなくてボタン。F1キーを押して変更できる
注意:今のところどれだけライン消してもレベルは上がりません
ツクールXPで作ってるから、RTPのダウンロードしてない人はやっといて。
0558名前は開発中のものです。
2006/08/22(火) 00:22:04ID:2zQdqnMCRTPのダウンロードやっといてとは随分な言い方ですね
0559名前は開発中のものです。
2006/08/22(火) 00:30:49ID:4ZUgGe3Mスーパーローテーションは、まず壁に当たらずに回転できるならそうして、できなかったら4つの壁蹴り候補を総当りするっぽいです。
ここの画像が参考になるかも。
ttp://www.the-shell.net/img/srs_study.html
T-SPINは、
1.種類がT型テトラミノ
2.固定前に行った操作が接地した状態での回転
3.固定したときに、テトラミノの四隅(☆の部分)に3つ以上のブロックまたは床、壁がある
☆■☆ ☆■☆ ☆ ☆ ☆■☆
■■■ ■■ ■■■ ■■
☆ ☆ ☆■☆ ☆■☆ ☆■☆
これら全ての条件が成り立てば成立します。
ちなみにこれはテトリスDSの判定方法です。
テトリスワールドだと壁や床がブロックと見なされないようです。
TGM3だと3番の条件が無く、その代わりに1ライン以上消えることが条件となります。
そもそもT-SPINが無いゲームもいっぱい存在するのでT-SPINは必須では無さそうです。
0560552
2006/08/22(火) 16:49:50ID:oA77I8Wu書き方が悪かったら謝ります orz
でも無いと動かないから勘弁して。
>>559
GJ&dクス!!
これを参考にしてやってみて、うまくいったらまたここに晒してみます
0561名前は開発中のものです。
2006/08/29(火) 00:19:12ID:jvGgJvl50562名前は開発中のものです。
2006/08/30(水) 01:45:46ID:kVooqL3x>>559さんの貼ってるサイト見ました。
総当りというのは、それぞれのブロックのページにある、ブロックのアニメーションの
数だけ全部総当りてことでしょうか?
やはりスーパーローテンションの挙動はブロックによって考える必要があって、
統一された規則があるわけではないんですかね・・・?
ちなみに今途中まで作ってるのはこれです。
http://hilala-web.hp.infoseek.co.jp/Tetris/
0563名前は開発中のものです。
2006/08/30(水) 02:02:35ID:Zrib/N2uそっからさらに続くのが壁蹴りの総当たり。
要するに左にずれて回転すれば回転出来るか、右にずれて回転すれば回転できるかってのを
順々に試していって、成功したらその状態に確定という事をやる。
(L字ブロックのいわゆる『陰謀』は、この順々に試すという性質によるもの。つまり仕様ってのは嘘じゃない)
んで、セガテト以外の回転方式だと上にずれて回転できるかってのを試す、
いわゆる床蹴りってのが必要になってくると思うんだが
個人的にはこれやるぐらいならおとなしくセガテト方式にした方がいいと思うなぁ。
0564562
2006/08/30(水) 02:12:13ID:kVooqL3xああ、なるほど。
なんとなく床蹴りは入れてみたいと思ってるのですがw
とりあえず左右だけ、壁蹴りの実装に挑戦してみます。
0565名前は開発中のものです。
2006/08/30(水) 11:58:31ID:PTc/E9ytBASIC覚え始めてから3週間くらいで
テトリス作った。
でも、どんなにコードをブラッシュアップしても
遅すぎてゲームにならんかった・・・。
0566名前は開発中のものです。
2006/08/30(水) 18:37:30ID:iaNQ+h6j勝負させたらいいんじゃないの?
0567562
2006/09/01(金) 05:18:52ID:1r191EMk細かい挙動や、バグはまだ確認していないので何か不具合あるかもしれませんが・・・
http://hilala-web.hp.infoseek.co.jp/Tetris/
0568名前は開発中のものです。
2006/09/01(金) 09:13:39ID:Nes3LbOvその状態で
恥ずかしげもなく作ったと言えるね
0569名前は開発中のものです。
2006/09/01(金) 10:44:22ID:s9Yotxsiはいはい、日本語の勉強の時間ですよ。
0570テトリス先生
2006/09/02(土) 00:17:34ID:iXZl3z8R0571KFJGJGJ
2006/09/02(土) 00:19:26ID:iXZl3z8R0572テトリス先生
2006/09/02(土) 00:20:24ID:iXZl3z8R0573名前は開発中のものです。
2006/09/02(土) 02:06:39ID:VDs1F/a3テトリスDSで色々実験してみたんだが、
床スレスレで自動下降しようとしたときから
時間を計り、一定時間経過後に固定という処理をしているように思えた。
壁蹴りで浮かせて永遠に固定を阻止できたから
床スレスレ状態でなくなったら時間はリセットされているみたいなんだが、
普通のテトリスはこんな厨房プレイを許しているの?
0574名前は開発中のものです。
2006/09/02(土) 02:12:45ID:Gj2iNCEWこれは違うだろ
DSスレで検証も出てる
>普通のテトリスはこんな厨房プレイを許しているの?
してるのも、してないのもある。
実験するならもう少し考えてやった方がいい
0575名前は開発中のものです。
2006/09/02(土) 02:29:00ID:VDs1F/a3ご丁寧にありがとうございます。他の方の検証をあたってみます。
っていうか実験は適当にやっただけだ。うざい。検証結果くらい書け。氏ね。
0576名前は開発中のものです。
2006/09/02(土) 02:31:22ID:pUSUJZmQ0577名前は開発中のものです。
2006/09/02(土) 03:31:07ID:oKo/J0RPこの流れは前にどっかで見たことがあるぞ・・w
0578名前は開発中のものです。
2006/09/02(土) 20:51:16ID:VECYO51qそれだ!
0579552
2006/09/19(火) 12:53:42ID:chzxPqSdとりあえず、スーパーローテーションとゴーストブロックを搭載しました。
http://www.freewebs.com/pme_jp/tetris.lzh
Tスピンは、消しエフェクトがまだ決まってないので未搭載。
形になってきたらまた晒しておきます。
0580名前は開発中のものです。
2006/09/23(土) 00:01:26ID:H8vvAyE30581名前は開発中のものです。
2006/09/23(土) 13:05:23ID:KsCkxLjX0582名前は開発中のものです。
2006/09/29(金) 20:55:10ID:OF60b4X90583名前は開発中のものです。
2006/09/29(金) 21:20:32ID:htuq4KNGテトリスのCPU思考ルーチンをおしえろ
ttp://pc8.2ch.net/test/read.cgi/gamedev/1159531055/l50
1 名前:名前は開発中のものです。 本日のレス 投稿日:2006/09/29(金) 20:57:35 OF60b4X9
具体的に記せ
0584名前は開発中のものです。
2006/09/29(金) 21:23:37ID:OF60b4X9//<script>
X = [Z = [B = A = 12]];
h = e = K = t = P = 0;
function Y () {
C = [d = K - 38];
c = 0;
for (i = 4; i-- * K; K - 13 ? c += !Z[h + p + d] : c -= !Z[h + (C[i] = p * A - Math.round (p / A) * 145)]) {
p = B[i];
}
!t | c + 4 ? c - 4 ? 0 : h += d : B = C;
for (f = K = i = 0; i < 4; f += Z[A + p]) {
X[p = h + B[i++]] = 1;
}
0585名前は開発中のものです。
2006/09/29(金) 21:24:34ID:OF60b4X9if (f | B) {
for (l = 228; i--; ) {
Z[h + B[i]] = k = 1;
}
for (B = [[-7, -20, 6, 17, -9, 3, 6][t = ++t % 7] - 4, 0, 1, t - 6 ? -A : -1]; l--; h = 5) {
if (l % A) {
l -= l % A * !Z[l];
} else {
for (P += k++, j = l += A; --j > A; ) {
Z[j] = Z[j - A];
}
}
}
}
h += A;
}
for (i = S = ""; i < 240; X[i] = Z[i] |= ++i % A < 2 | i > 228) {
i % A ? 0 : S += "<br>", S += X[i] ? "■" : "_";
}
//document.body.innerHTML=S+P;
Z[5] || setTimeout (Y, 99 - P);
}
Y ();
//</script>
0586名前は開発中のものです。
2006/09/29(金) 21:26:41ID:OF60b4X90587名前は開発中のものです。
2006/09/30(土) 10:03:35ID:MbfF/7Peそれよちも設計を語った方が有意義
0588名前は開発中のものです。
2006/09/30(土) 15:59:49ID:KazxttD+「ハットリスはどうすれば面白くなるか」
0589名前は開発中のものです。
2006/09/30(土) 22:57:59ID:GcnXxyiI0590名前は開発中のものです。
2006/10/01(日) 10:17:17ID:IrowYbpc0591名前は開発中のものです。
2006/11/02(木) 05:52:49ID:U5773Gdm0592テトリス君
2006/11/29(水) 16:41:16ID:fZySn/APどなたかお勧めのサイトや、自分で作成したことがある・・という方
お願いします・・・・
ソースわかればなんでもいいです。
0593テトリス君
2006/11/29(水) 16:46:16ID:fZySn/AP0594名前は開発中のものです。
2006/11/30(木) 03:11:54ID:cyVv0HkZ0595名前は開発中のものです。
2006/12/29(金) 21:00:44ID:JSMgW4kBいま出来てるところまででいいからアップ汁
話はそれからだ
0596名前は開発中のものです。
2007/02/19(月) 10:55:56ID:qBnrOPZ60597名前は開発中のものです。
2007/02/19(月) 12:38:32ID:N5sPNDQgもっとゆっくりしてないと設計できん。
0598名前は開発中のものです。
2007/02/19(月) 16:47:04ID:UF2QT//t0599名前は開発中のものです。
2007/02/19(月) 19:22:56ID:tfJQzvTc0600名前は開発中のものです。
2007/02/19(月) 23:30:47ID:UF2QT//t0601名前は開発中のものです。
2007/02/20(火) 23:46:48ID:RRWDRZkB神バランスに調整できる奴はマジ尊敬する。
0602名前は開発中のものです。
2007/02/21(水) 00:52:03ID:UEBJJhZl今のワールドルールとかもそうだが。
アリカのクラシックルールのがよっぽど操作性いい。
0603名前は開発中のものです。
2007/03/31(土) 11:04:47ID:5f2AkY1Bレスポンスやリズム感を無視すればな
0604名前は開発中のものです。
2007/04/11(水) 00:08:31ID:328Girn7ttp://www.csync.net/service/file/view.cgi?id=1176217453
0605名前は開発中のものです。
2007/04/11(水) 00:27:56ID:k/jmTQMs0606名前は開発中のものです。
2007/04/13(金) 16:40:09ID:L7sMPCL+すごーい。よく出来てますね。
ご苦労様です。
0607名前は開発中のものです。
2007/05/09(水) 02:51:05ID:0yOxHzOUお前さんすげえわ
0608名前は開発中のものです。
2007/08/12(日) 20:30:35ID:MGACeO4cすげぇ
0609名前は開発中のものです。
2007/08/31(金) 20:28:39ID:tHtHy9JVもどきじゃねえじゃん
0610名前は開発中のものです。
2007/09/19(水) 15:53:02ID:0xZKOPiKつ【ttp://www.csync.net/service/file/view.cgi?id=1190184754】
0611名前は開発中のものです。
2007/09/19(水) 17:09:39ID:TgZUsUk6フィールド上にブロックが表示される前にNEXTがずれるから
次に出てくるはずのブロックとは違うブロックが出てきたように感じる
ブロック固定後のインターバルを無くすか
インターバル後にNEXTをずらしたほうが良心的かも
0612610
2007/09/20(木) 14:54:21ID:6W9lr3bYfix終わりました。
つ【ttp://www.csync.net/service/file/view.cgi?id=1190267586】
0613名前は開発中のものです。
2007/10/25(木) 23:44:29ID:bLhl0bBS0614名前は開発中のものです。
2007/10/25(木) 23:49:35ID:eVqprg000615名前は開発中のものです。
2007/10/28(日) 12:38:53ID:vaAKfkt00616名前は開発中のものです。
2007/11/22(木) 23:49:19ID:E4jdbeq0http://gamdev.org/up/img/10597.zip
別のスレで発表したやつなんだけどある程度テトリスへの見解がありそうな人に
キーの操作感やレベルの上昇具合などの意見がほしかったので、
ワールドルールの基本的な部分はほぼできてると思うけどT-spinの判定部分が少し違うので
市販ゲームだとT-spinとなる場面でもならない場合があります。
隠し機能…というかデバッグ用の機能でポーズ中にEnter+初めからでブロックが置かれた状態でスタートします。
0617名前は開発中のものです。
2007/11/23(金) 00:09:56ID:3Xtf45deDirectXインスコしなおしてもだめぽお
0618名前は開発中のものです。
2007/11/23(金) 00:14:50ID:lJWTC5zBDL出来ない
0619名前は開発中のものです。
2007/11/23(金) 00:22:09ID:gkLsBEsUd3dx9_30.dllが見つからないって怒られた
0620名前は開発中のものです。
2007/11/23(金) 07:17:15ID:NiLEtXSfhttp://www.dll-files.com/dllindex/dll-files.shtml?d3dx9_30
DirectX9が初期化できない問題については調査中です
0621名前は開発中のものです。
2007/11/23(金) 15:43:06ID:NiLEtXSfたぶんこれで大丈夫かな?
http://gamdev.org/up/img/10601.zip
DirectX9のデバイス作成部分は日経ソフトウェアの2006年9月号にあったサンプルコードのコピペなので
それが動かなければ自分にはどうしようもありません(日経ソフトのサイトのダウンロードの項目に
実行形式を含んだサンプルがあるのでそれを試してもらえるとありがたいです)
・・・これでDirectX8Verが動いたのなら日経をうらむZE
■ このスレッドは過去ログ倉庫に格納されています