2011年10月1期ゲ製作技術テトリスのCPU思考ルーチンをおしえろ TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
MMORPGをHSPで作りたいな Rev.2
今までにないSRPGを作るスレ
ワロタ
J−RPGって良くね?


テトリスのCPU思考ルーチンをおしえろ


1 :06/09/29 〜 最終レス :12/01/05
具体的に記せ

2 :
>>1の思考ルーチンをおしえろ

3 :
全ての落とし方をしらべて一番いいのを選ぶ
ぷよでも同じ
The Endォォ!!

4 :
>>3
以前やってみたことあるけど、あまり面白くならなかったな
ttp://www5b.biglobe.ne.jp/~clap/other/tetra/index.html

5 :
#define ITIHASINE ( rand() % RETU );

6 :
while(1){
  naguru(>>1);
  if(>>1 == dead){fukkatsu(>>1);}
}

7 :
無限ループって恐くね?

8 :
おまえら案の定焼くただズ

9 :
>>4
見てみたけど
できてないじゃん・・・

10 :
9
所詮2CHに出入りしている奴らがつくれるわけないじゃん

11 :
うん.

12 :
穴にハメるだけだお

13 :

精神同様幼稚なコードだ。ゴミ

14 :
age

15 :
アルゴリズムでしょ?
現ブロック&&次ブロックでifで列の穴が0に近いように選ぶ
って言うのが簡単なんじゃないの?

16 :
         ‖
         ■
         ■
   ■     ■
  ■■■   ■
■■■■■■■ ■■
■■■■■■■ ■■
■■■■■■■ ■■
■■■■■■■ ■■

17 :
ブロックの方4通り。
ブロックの置く位置10通り。
落すブロック1個につき40通りを試行し、
・はみ出るケースは除外。
・一番ラインを消せるケースを優先。
・高低差が(絶対値の合計)少なくなるケースを優先。
で、いいんじゃないか?
落下速度が速くても間違えないし、結構強いはず。
積み方を間違える割合を設定すれば難易度調整も楽々。
まぁ落下速度が速くなる前に積みあがったら駄目だがw
はいはい終了終了

18 :
それだけだったら簡単だけど、テトリス狙いとかさせなきゃダメだし。
次のブロックも見えてるから、先読みさせなきゃいけない。

19 :
一直線の穴を作るように積み上げる。赤が来たら4ライン消し。
穴が作れないようなブロックが来たらジャマにならないように
すみに捨てる。そのときなるべく隙間が出来ないように積み上げる。
プレイヤーより赤の来る確率をやや高くするよう乱数を片寄らせる。
・・・文章で書くとこんな感じ?
そういえばセガのゲーセンテトリスって絶妙のところで赤の棒が来たり、
期待してたらずっと出てこなかったりわざとらしいプログラムだなーと
昔から怒って台を叩いたりしてた。普通の乱数じゃないよね?
あ、でも別の乱数使ったゲーム作ったときにいかにも調整したような
いやらしい並びになってて感心したことがあるから、乱数ってそういうもの
なのかな?

20 :
あるいは、
すでにテトリスが出来るような並びのデータを配列で持って再生するだけ。
これ最強。
弱くするには相手からのおじゃま割り込みを許可するくらい
積み上げるのを遅くするとか、乱数で時々失敗して置くとか。

21 :
穴を作るように積み上げる。
穴が太く、LやZが入るような形に穴が空いている場合はそれで消す。
何にしても難しいな、もう少し考えて出直してきます。

22 :
テトリスを作ること自体は簡単だが、パズルそのものが苦手だ。頭いてー。

23 :
>>19
>そのときなるべく隙間が出来ないように積み上げる。
プログラムよろうとしてる人間が
こんな曖昧な条件設定をしたらあかんだろ
すみに捨てるも何段までまたは条件を設定した方がいい
乱数についても考えが浅すぎ・・・
乱数は設定次第だけど
君が感じるようなことは完全なランダムでも十分ありえる
人は気に入らないことのほうが記憶に残りやすいだけ

24 :
単に強くするだけでも難しいよな
相手のプレイスタイル見ないと勝てなくなる

25 :
無理して多段消しするよりもちょこまか消してったほうが楽だと思った。
実際俺が遊んだときの感想だけど。

26 :
>>25
楽って何が?
遊んだってプレイしたってこと?
それと思考ルーチンがどう関係するの?

27 :
普通に関係あるんじゃない?
>>25
ただゲームを続ければいいっていうなら>>4ので十分かもしれない。
でも特定の対戦ルールで勝つとか、時間やライン数に制限を設けての
スコアアタックをさせるほうが、作るほうも見てるほうも面白いと思う。

28 :
セガのテトリスは固定乱数
電源入れてから同じパターン

29 :
テトリス・ザ・グランドマスターのシリーズで高い評価が出るようなプレイをさせたい
さてどうすればいいか

30 :
将棋と違って先読みなんてほとんど無いし、絶対ゲームオーバーにならないCPUなんてすぐ作れそうだな。

31 :
人間の俺がテトリスやるときは、なるべく、
・□形のブロックが来てもいいように平らな所を残しとく
・幅1・深さ2以上の穴を複数作らない(L形、J形、I形のブロックじゃないと埋めれない)
・4行消し狙いのときも、ある程度ブロックが高く積もってきたら、少し消す
ぐらいは考えてやってたなぁ。

32 :
超高速で落とせば絶対人間には負けないと思う。

33 :
>>32
そうでもないよ
http://jp.youtube.com/watch?v=-Oy3oLAtk1w

34 :
>>33
見た。やっぱり絶対人間には負けないと思うが?

35 :
>>34
確かに人間とは思えない……
"混沌のテトリス猿人"か何かが操作しているのか

36 :
346 名前: 消防士(アラバマ州)[] 投稿日:2007/10/30(火) 08:53:39 ID:Kk34TRTd0
1kbに満たないソースでテトリスが出来るのには感動した
<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>
メモ帳に貼り付けてhtmlで保存。レッツテトリス!
エンターで回転、カーソルキーで移動っぽ

37 :
>>33
スピードの速いものなら
ttp://arika.co.jp/
のSpecial -> TGM3 SHIRASEモード TGMタイプでのレベル1300クリアムービ(38.6MB) でも見れ。
人間でもこのぐらいはできる。

38 :
>>35
は?「人間とは思えない」なんて言ってないが?
「人間には絶対負けない」だ。どんな文盲ですか。

39 :
>>37
見た
速すぎる
ネット対戦だとこのレベルがゴロゴロいるんだろうなー。
>>38
なんだよそれ、「うまいこといいやがって」と思ってたのに(つ∀`)
「(動画を見たうえで)人間には絶対に負けない」というレス
しかし動画の最後で*プレイヤーが勝っている*

たしかに59回もやる根気とあの最後の絶妙の
タイミングのTスピンダブルは人間技じゃないw

>>35

40 :
テトリスをきめたら「テトリスだビコビコワーオ」と叫ぶこと

41 :
対戦モードの勝敗なんてルール次第でなんとでもなるでしょう?

42 :
ロシアの数学者が黒白青赤の四色の石を使った4人囲碁を考案 さらに黄緑橙紫の石も加えた8人囲碁も考案中
http://toki.2ch.net/test/read.cgi/news2/1291898789/

43 :
教えてもいいけど、1の知識、知恵がどの程度か知りたい。

44 :
>>37
アリカが営業停止してる
>>4
これすごいな
技術解説orソースが見てみたい

45 :
対戦型テトリス(PC用やわ
http://swfup.info/view.php/0171.swf

46 :
ルミネスUってPSPのソフトがテトリスっぽいけど、どうなんだろ?

47 :
まずお猿の絵を用意します
そしてお猿が笑ってる絵、怒ってる絵を用意します

48 :
対戦のCPU側のことだろ?
かなりインチキしてるんじゃないか
ランダムに出現するピースの処理
 縦に置こうとして合う形があればそこにはめる 最大四段消し
   横にして合う形があればそこにはめる
    合う形が無いとき
      長い穴があるときはそれを潰さないように置く
      長い穴が無いときは適当に隅っこに置く
CPUのインチキ・・・CUPの強さレベルが高いとき
 四段消せる長い穴があるとき、ランダムではなく長い棒を出現させる
 □で二段消せそうなとき、□を出す
 Lで三段消せるとき、Lを出す

49 :
10x22くらいのマップデータを用意して
左から10行に分けて調べる
上から空いてるかどうか調べて、ブロックがあるチップに当たったら
その周辺の形を調べる
置こうとしてるピースがLでちょうどLの形に空いていればそこに置く
置けないようなら、次の行を調べる
10行調べてどこにも置けないようなら長い穴を潰さないように適当に置いてしまう
長い穴を作るロジックもあってもいいかも。
まず、右端に長い穴を作ると決めて、必要なピースを出して積み上げていく
もちろん人間である対戦者に対してはインチキ。

50 :12/01/05
>>42
誤爆かな?
どうでもいいけど、碁でも将棋でも二人だから競技となるけど、三人以上だともう単なる遊びだな。
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
MMORPGをHSPで作りたいな Rev.2
今までにないSRPGを作るスレ
ワロタ
J−RPGって良くね?