テトリスを作る
みなさん言語は、javaでもHSPでもCでもいいからテトリス作って
ソースを載せてください 企画は総合発表&雑談スレッドに書いて下さい
このスレッドでまとまり次第、独立したプロジェクトスレッドを立てて下さい
(前触れの無いプロジェクトスレッドは削除対象となります)
この板のローカルルール
>企画は総合発表&雑談スレッドに書いて下さい
>このスレッドでまとまり次第、独立したプロジェクトスレッドを立てて下さい
>(前触れの無いプロジェクトスレッドは削除対象となります)
総合発表&雑談スレッド
http://game.2ch.net/test/read.cgi/gamedev/1033812109/
>>1は即座に削除依頼を出してください。
それでは、削除されるまでの間またーりでお待ちください。 ソース
int WINAPI WinMain(...)
{
return WinExec("tetris.exe", SW_SHOW);
}
※別途作成のtetris.exeが必要
遊び方:カーソル左右で移動、リターンキーで回転
プレイ環境:おそらく IE 5.01 以上?
<body onKeyDown=K=event.keyCode><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
if(e=!e){if(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>
>>12
うぅーー。ほんとにテトリスになってる。
Javaスクリプトってテトリスできるんですね?
感動。
しかも7行で。
>>12
すまん、悪いんだが、普通に展開するとどんな感じになるんでしょ?
いかんせん for() がどこまでかかるか分からなくて。(JAVAスクリプト書いた
ことないもので) いちいち終了とカキコする必要無し
だまって放置できねえのかガキども
みっともねえなあ、ゲーム系PGは V=20:screen ,200,400:title "0":dim B,4:dim C,10,V:dim D,10,V:randomize:F=2:boxf
dim A,4,7:A=1,4,5,6,5,6,10,14,5,6,9,13,5,6,9,10,2,6,5,9,1,5,6,10,1,5,9,13:repeat
wait 1:if G=0{rnd N,7:memcpy B,A,16,,16*N:H=3:I=-4:J=0:G=1}J-F:if J<0{K=0:L=1
gosub Z:if M=0{N=0:repeat 4:O=B.cnt\4+H:P=B.cnt/4+I:if P<0{N=1:break}C.O.P=1
loop:if N{break}dim Q,V:R=0:repeat V:S=cnt:N=0:repeat 10:N+=C.cnt.S:loop:if N>9{
Q.cnt=1:R+:palcolor 255:boxf 0,cnt*V,200,cnt*V+18}loop:if R>0{wait 50:color:boxf
E+R*R:title ""+E:N=19:repeat V:S=19-cnt:if Q.S=0{memcpy C,C,40,N*40,S*40:N-}loop
memset C,,N*40}G=0}J=100}stick T,8,1:K=T&4!0+(T&1!0*-1):L=T&8!0:gosub Z:if T&16{
dim U,4:memcpy U,B,16:repeat 4:N=B.cnt\4:B.cnt=N*4+3-(B.cnt/4):loop:K=0:L=0
gosub Z:if M=0{memcpy B,U,16:gosub Z}}redraw 0:repeat V:S=cnt:repeat 10:K=cnt*V
palcolor D.cnt.S*9:L=S*V:boxf K,L,K+18,L+18:loop:loop:redraw:loop:dialog "over"
end:*Z:M=1:repeat 4:O=B.cnt\4+H+K:P=B.cnt/4+I+L:if (P>19)|(O<0)|(O>9):M=0:break
if P<0{continue}if C.O.P=1{M=0}loop:if M=0{return}memcpy D,C,10*V*4:H+K:I+L
repeat 4:O=B.cnt\4+H:P=B.cnt/4+I:if P>=0{D.O.P=1}loop:return
>>22
コピペって他人のコピペということか。
なら出典も書こうぜ。作者への敬意はどうした。 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| お姉さま、今日は「作ろうよ」特集よ
\_____ _________________
//
∧_∧ ∧__∧
( ´∀`) ( ・∀・)
〉 <、 n ,> 〈
イ´γ 、ヽ ,||、 ,,ノ,_i⌒) __/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(⌒r´⌒y/ f々) (;:..(..:::;ノ / \ ゴミクズみたいな>>1が
ハ::,;、::::ノ〈//`´ (二二ノノ | 存在する限り私達も不滅…
|ノ:::::::〈\./ (_ミ:::〈 \__________
ィf::::::::::;ヽ、 〈;::::::;::ヽ
(ミ:::;;:::;;:::::} 〉;;;::::)::)
人;;;;;y;;;;;;ノ /^i;;:イ;;;ノ
| / / / /| /
`y / 〈 < | |
|| | ヽ `ヽ| i
| ト.、 \`ヾ:|
| |/^〉 ノ ^〉|
ノ__.|ヘ;| しヘ;|_ 〉
∠_ノL! ∠_ノL! テトリスなんてソースを要求するようなレベルじゃないだろ >>28
クソスレ上げる貴様は馬鹿を通り越してキチガイだがな。( ´,_ゝ`)プッ どちらかというと対CPUの思考ルーチンがいいんじゃないの?
テトリスサーバ立ててに思考ルーチンから信号投げあって強さ競う段階だろ。テトリスなら。 >>30
テトリスの強さを競うのは不可能
瞬時に計算できてミスが無いのなら永遠に終わらない
そのくらいのことも分からないのに何が「段階だろ?」なんだか >>31
たまには検索しろ
テトリスが対戦ゲームになってることを知らないのか? >>32
やっぱり分かってない
通常の対戦ルールでは多少ブロックがせり上がってくる程度では
瞬間的に計算可能である限り終わらない
三目並べの強さを競っているのと同じ状態になる
だからといってCPU戦専用に特殊ルールを導入したらテトリス以外の何かであって
テトリスの「強さ競う段階だろ」ということにはならない >>33
天然か?
テトリスには先読みの要素があるから、思考ルーチンにも癖が出るだろうが。
どうしても4段消ししたいからと粘って積み上がってしまうとか、より早く組むために加速と連打を駆使したがブロックがせりあがりハマるとか。
テトリスやったことあるなら、予測が必要なことぐらいわかるぞ?
囲碁や将棋のようなターン制じゃないんだから、逐次状況を把握する必要があるし。
考えが浅はかすぎ。 >>35
ブロックがせりあがる程度ではミスも遅れも無いCPUでは永遠に勝負がつかない
かといってテトリスを出すと10段上がってくるようなルールにするとテトリスとはよべない
そうなるとアルゴリズムの強さではなく、ほとんどの要素が運だけになってしまう
>囲碁や将棋のようなターン制じゃないんだから、逐次状況を把握する必要があるし。
これで全然理解していないのが確定
人間にはリアルタイムアクションに見えてもCPU側から見ればターン制と変わらない
プログラムをまともに組んだことが無いから理解できないんだろうが >どうしても4段消ししたいからと粘って積み上がってしまうとか、
>より早く組むために加速と連打を駆使したがブロックがせりあがりハマるとか。
それは単なる程度の問題ってことで。
「死なないように消していけば」絶対終わりませんな。ぷよぷよじゃあるまいし。 ターン制の話は無かったことにするのか?
もう少しプログラムを勉強してから出直せ
死なないようにちまちまやってて最強とはな。
残りの隙間1ブロックから初めても打開出来るかのような理屈じゃ話にもならんよ。 age荒らしのおかげで再生したじゃん、このスレ
珍しいこともあるもんだ >>36がなんか勘違いしてるよな。
対人ではなくCPU同士で対戦させようとしてる話じゃないのか? >>41
CPU同士だから内部処理ではターンがまわってくるのと変わらないということでは? >>39
いつそんな理屈になったんですか?逃げないでください。 おまえら意思疎通ができていない。超馬鹿だな(www
馬鹿同士永遠に討論してろ。 >>45
うーん、見ればわかることをそのまま書くだけで興奮できるなんて器用だねえ。
うまく皮肉れなかったのを、wの数増やしてカバー? うわあ。 >>43
内部処理的にはそうなるな。一見するとリアルタイムバトルのようだが、
内部処理的には1/60秒(一例)のスパンで切って、ターンを交互に回してその間に思考→移動(何もしない事もあり得る)
を繰り返すわけで実質パスの許されるターン制になるわけだね。
しかし、その「制限時間内」にコンピュータが次のアクションを考えきれなかったらいったいどうするのか
・・・・これへの対処法がわからない。
(オセロみたいに結論が出るまで処理待ち、なんてアフォな事は許されないし)
>・・・・これへの対処法がわからない。
対処法はない
ゲーム自体を進行させているのがCPU側だから
制限時間内に処理できなければゲームの進行が遅くなるだけ
シューティングゲームでオブジェクトが増えると遅くなるのと同じ
そもそもCPU側に正確な時間制限を課すのは不可能
正確に測定可能だったとしても強さがマシンの性能によって左右されることになる
>(オセロみたいに結論が出るまで処理待ち、なんてアフォな事は許されないし)
だから前提条件もなにも提示せず、
テトリスで「強さ競う段階だろ」というのはナンセンスだということになる ブロックがせりあがるだけなら問題無いような気もする >>43
>>30の話してるんじゃないの?
そりゃ、1CPUなら言ってる通りだけど。
まずは日本語だな。お前の場合 信号?というのは置いておくとして
メッセージを投げ合うということは通信延滞の少ない方が有利になります。
そんなアンフェアな状態でどうやって強さが競えるのでしょうか?
それを防ぐためにテラリウムのようにアルゴリズムそのものを投げる方式になると思うのですが? 少なくとも>>30は「強さを競う段階だろ」と言いきっている
ならばどうやってネットワーク越しに強さを競うのか「方法を提示すべき段階だろ」 ゲームを楽しむことが目的の対人戦と強さを競うことを目的とするCPU戦では条件が異なる
少なくとも>>30は「強さを競う」と言っている
ではどうやって強さを競うのか説明すべき テトリスはターン制だと言っておきながら同期を問題にするのはナンセンス >>55
おまえ人からよく頭悪いって言われるだろ?
>>30>>35ときてターン制じゃねえって言ってんのにどこから勘違いできんだよ。 テラリウムのような方式にすればネットワーク越しでも同期は問題になりませんが、
>信号投げあって強さ競う段階
という方法がどのようなものなのか説明してもらわないと話が進みません
落ち着いて>>30の説明を待ちましょう COM同士が対戦するのになぜ同期が問題になってんのよ?
どうせありもしない俺ルールに縛られてるんだろうけどな
特に>>54氏など見てると見てられない アホか。
先に謝るのが筋だろうが。
それに説明って何を説明すんだよ。
思考ルーチン持ったアプリ作って、テトリスサーバと信号やり取りするっつってんだろカスが。
回線状況云々はもう思考ルーチンの話だろ?
その話ならまだ追求する余地があるったんだよ。まんまじゃねーか、話聞いてんのか!! >>60
だからその方式だと回線が弱いほうが不利になるつってんだろボケが >>60
通信条件が違ったら強さが競えないんですが
それをどうするつもりなのかというところを説明してください
そうしないと
>強さ競う段階
にたどりつけません 舗装道路と泥沼でかけっこをして足の速さが競えると本気で思っているのか?
オメデテェナァ 未だにダイアルアップな人が不平を鳴らすインターネットはここですか? >>63
まず謝れよ。
煽り方だけ一人前で謝り方は乳幼児以下か?てめえは。
通信条件をどうするかなんて何も言ってねぇだろ。
話の主旨をコロコロかえて逃げてんじゃねぇよ。
>テトリスの強さを競うのは不可能
>アルゴリズムの強さではなく、ほとんどの要素が運だけになってしまう
>CPU側から見ればターン制と変わらない
>「死なないように消していけば」絶対終わりません
>CPU同士だから内部処理ではターンがまわってくるのと変わらない
>ゲーム自体を進行させているのがCPU側だから
こんだけのアホ発言をまず訂正しろバーカ
>>66
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
ハハハ イキデキネーヨ
∩_∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ハライテ- ゲラゲラ
. ( ´∀`) < わははは ∩_∩ 〃´⌒ヽ ゲラゲラ
. ( つ ⊂ ) \_______ (´∀` ,,)、 ( _ ;) シネヤザコ>66
.) ) ) ○ ∩_∩ ,, へ,, へ⊂), _(∪ ∪ )_ ∩_∩ ○,
(__)_) ⊂ ´⌒つ´∀`)つ (_(__)_丿 し ̄ ̄し ⊂(´∀`⊂ ⌒ヽつ
タッテ ラレネーヨ
ワハハハ >>66
それが示しているのは1CPUで強さを競うには問題があり
それ以降の話で通信させても問題があるということになった
じゃあ、どうやって強さ競う段階に出来るのかということだろ
>強さを競う段階だろ
と断定している以上、責任持ってどうすればいいのか説明するのが筋だろ
どうせ無理だろうけど タイムアタックにすればよい。
例えば100ライン消すまでの時間を競う。 そうなるとサーバは不要、同期の問題も無く、
単発消しがメインで運に左右されることになるけど、
それを強さと主張すれば競うのは不可能ではない
が、イマイチ面白くない | /\ | /|/|/|
| / / |// / /|
| / / |_|/|/|/|/| (´⌒(´⌒`)⌒`)
| / / |文|/ // / (´⌒(´クソスレダ!!クソスレダ!!`)⌒`)
|/ /. _.| ̄|/|/|/ (´⌒(´∧ ∧⌒`)`)`)⌒`)
/|\/ / / |/ / (´⌒(´(,゚Д゚ )つ `)`)
/| / / /ヽ (´⌒(´⌒ (´⌒( つ |〕 /⌒`)⌒`)
| | ̄| | |ヽ/| 遅れるな!! ( | (⌒)`)⌒`)
| | |/| |__|/ ∧_∧ ⌒`)ドし'⌒^ミ `)⌒`)ォ
| |/| |/ ( ´∀` )つ ド ∧_∧⌒`)
| | |/ ( |〕つ/] / ォと( ・∀・ ) 終了させるぞ―!!
| |/ ( | (⌒)`) ォ ヽ|〕⊂〔| )`)
| / (´ ´し'⌒^ミ `)`)ォ (⌒) |
|/ 彡  ̄(__)`)`
>>68
謝れよ。ウンコ野郎。
>それが示しているのは1CPUで強さを競うには問題があり
>それ以降の話で通信させても問題があるということになった
>じゃあ、どうやって強さ競う段階に出来るのかということだろ
>>強さを競う段階だろ
>と断定している以上、責任持ってどうすればいいのか説明するのが筋だろ
>どうせ無理だろうけど
バカがうろたえる様はいつ見ても気分がいいな。
>>68
強さを競う段階っていうのはな、
テトリスのゲーム自体のロジックではなく、
CPUの思考ルーチン(の強さ)を考える段階ってことだよな?解かるか?
『強さ』を決める要素には、そら一杯あるだろうな。
それを考えたらいかがですかー?って書き込みだったんだから。
…なんか、いくら打ってもお前が理解出来る気が全然しないよ。
日本語が出来ないくせに筋うんぬん言うお前はなんだ?
日本語っていうより言語ロジックがもうありえんわ。おまえの場合。
マンガばっか読んでて、あのフキダシに入る文しか理解できないようになったのか?
おまえのアホさは日本のマンガ文化が原因なのかもな。 >テトリスのゲーム自体のロジックではなく、
>CPUの思考ルーチン(の強さ)を考える段階ってことだよな?解かるか?
つまりテトリス自体のロジックが無い状態で
どうやってその思考ルーチンを考える段階になるのかまた謎が深まったと
説明求む タイム縮めようと思ったら1ライン消しとかやってられないから
タイムアタックも賢さの指標になると思うよ 下押しっぱなしの速さで後は積まないようにするだけだから
最後はかなり微妙な差を競うことになりそうな気がするけど で、結局>>1はソースを貰ってもコードが読めなかったというオチですか? 結局「強い(と思われる)ルーチンを考えよう」なのか。 いやいや、全部1ラインで消すのと全部4ラインで消すのとじゃ
消す回数が4倍違うから、どちらも下入れっぱなしでもかなりの時間差になるよ
(ラインが1回消えるごとにラインが消えるアニメの時間があるから)
テトリスでは一般に、ちまちま消すよりも4ラインまとめて消すほうがすごいってのは
誰もが直感的にそう思うと思うけど、では4ラインまとめて消していくためには
どうしたらいいかってのはなかなか難しい