C言語でトランプゲームを作りたいat TECH
C言語でトランプゲームを作りたい - 暇つぶし2ch175:デフォルトの名無しさん
07/09/20 02:35:27
URLリンク(dictionary.goo.ne.jp)
りゅうど りふ― 1 【粒度】
粉状物体の粒子の大きさの度合。一般に、粒子の平均直径で示される。

164 名前:デフォルトの名無しさん 投稿日:2007/09/20(木) 02:03:31
>>163
おおまかすぎつか粒度がおかしいだろ

これは何が言いたかったんだろうか?最近覚えた言葉をなんとなく使っただけの
初心者です、ありがとうございました。

176:デフォルトの名無しさん
07/09/20 02:43:23
あーあ、わりと良スレだったのに。

177:デフォルトの名無しさん
07/09/20 02:43:51
こんな瞬発力のある粘着は初めて見た

178:デフォルトの名無しさん
07/09/20 05:43:43
Cがらみででこいつを知らないのは素人だぜ

179:デフォルトの名無しさん
07/09/20 05:56:58
大富豪の英語訳はMulti Millionaireなんだがwikipedia日本語版にはmuiti millionaireとある。
てっきりmultiだと思ってコピペしてたらmultiと打って弾かれたのでおかしいとは思ったんだ。

180:デフォルトの名無しさん
07/09/20 18:11:02
URLリンク(ja.wikipedia.org)
とりあえず七並べ作ろうぜ?

181:デフォルトの名無しさん
07/09/20 18:13:45
っつか具体的な内面的な処理やコードはおいといて、大まかにどういう流れで
勧めていくかの項目くらい作っておくだろ。それに応じて必要な部分を作っていくなんて
プログラミングをやっていれば当たり前だと思うが。
まさか、mainの中に全部詰め込んでしまうタイプ?

182:デフォルトの名無しさん
07/09/20 18:40:41
ごちゃごちゃ言ってねーでそろそろ誰もが納得する>>34を実現した理想的なコードをあpれや

183:デフォルトの名無しさん
07/09/20 18:51:46
お前がやれよ

184:デフォルトの名無しさん
07/09/20 19:24:49
>>182
やだぷー、俺は今から七ならべを作るからw

185:42
07/09/20 19:27:05
>>182
ごめん、まだできてない。

186:デフォルトの名無しさん
07/09/20 19:40:15
しょうがねえなお前ら
俺が今からjavaで作ってやるよ

187:デフォルトの名無しさん
07/09/20 19:41:13
>>186
スレタイ読んでくれい。「C言語で」な。

188:デフォルトの名無しさん
07/09/20 19:46:52
っつーか、カードをシャッフルして分配するところまで作ったけど
対戦相手のコンピュータがどのようにカードを場に出すかってところでつまづく。


189:デフォルトの名無しさん
07/09/20 19:48:56
とりあえず、なにも考えずにそのとき出せるカードで一番弱い奴を出すって実装してみたら?
その実装のままゲームとして出してる例もあることだし。

190:デフォルトの名無しさん
07/09/20 19:49:03
とりあえずは一番小さいのから出すってのでいいんじゃない?

191:デフォルトの名無しさん
07/09/20 20:09:42
>>189-190
甘いな。
最初からwikipediaに載ってるローカルルールを全て実装可能なように設計するのだ。

192:デフォルトの名無しさん
07/09/20 20:11:22
ルールとCPUアルゴリズムの区別もつかないバカはひっこんでろ

193:デフォルトの名無しさん
07/09/20 20:12:36
おっと先に言われた

194:192
07/09/20 20:13:37
すいませんちょっといいすぎました
これからはきをつけますので

195:デフォルトの名無しさん
07/09/20 20:15:39
誰だ、お前w

196:デフォルトの名無しさん
07/09/20 20:17:37
んじゃ俺はおっきいのから出すようにするよ。ナニの小さい奴は最後ね

197:デフォルトの名無しさん
07/09/20 20:18:29
男ならランダムだろうが!

198:デフォルトの名無しさん
07/09/20 20:26:15
>>197
いや、ランダムったって、ゲームのルールに応じて出せないカードじゃ仕方がないし
出せる中からなんて探しててもそれはそれで面倒だし・・・

199:デフォルトの名無しさん
07/09/20 20:28:39
ルール上次に出せるカードをリストアップするのなんか簡単だろ・・・

200:デフォルトの名無しさん
07/09/20 20:31:02
ルール通りに動くものなんて再発明はどうでもいいよ
URLリンク(www.tnlab.ice.uec.ac.jp)
これに従ってAI作って競う方が面白そう

201:デフォルトの名無しさん
07/09/20 20:35:52
そうだね
君はそれをやればいい

202:デフォルトの名無しさん
07/09/20 20:37:50
>>200
SDKのコンパイルの段階で躓く奴が多そうだ

203:デフォルトの名無しさん
07/09/20 20:57:30
宣伝スレおつ

204:デフォルトの名無しさん
07/09/20 23:16:30
ちゃらんらん

205:デフォルトの名無しさん
07/09/21 00:48:40
7ならべを作ったらここで公開しても良い?それとも公開したら後悔しそう?

206:デフォルトの名無しさん
07/09/21 00:55:58
そのセンスの無さから見るとたぶん後悔することになるだろうな

207:デフォルトの名無しさん
07/09/21 01:06:31
んじゃ公開せずに作ったことを後悔しまつ orz

208:デフォルトの名無しさん
07/09/21 01:08:15
後悔後に立つ

209:デフォルトの名無しさん
07/09/21 01:24:55
あっ、それじゃソースは公開せずに、チョンパイルした
Win32用の実行プログラムだけをうpするわ。

210:とりあえず
07/09/21 01:31:27
>104 で場に出すまで (しかしまだ入力できない...力尽きた)
int field[52],numOfSet,passCount;

int sequence(int *chkHand, int len){ int i=0;
if(len>=3) for(i=1; i<len; ++i) if(getCmpRank(chkHand+i)!=getCmpRank(chkHand+i-1)+1 || *(chkHand+i)/13!=*(chkHand+i-1)/13) break;
return (i==len)?getCmpRank(&chkHand[len-1]):0;
}
int pair(int *chkHand, int len){ int i;
for(i=1; i<len; ++i) if(*(chkHand+i)%13!=*(chkHand+i-1)%13) break;
return (i==len)?len*10+*(chkHand+len-1)%13:0;
}
int higher(int *nowHand, int len){ int stat;
if(numOfSet==0 && (len<=1 || pair(nowHand,len) || sequence(nowHand,len))) return 1;
else{
if(0<(stat=sequence(field,numOfSet)) && stat<sequence(nowHand,len)) return 1;
if(0<(stat=pair(field,numOfSet)) && stat<pair(nowHand,len)) return 1;
}
return 0;
}
int putCard(int player, int *list, int len){ int i, nowHand[52];
if(len<=numOfHand[player]){
for(i=0; i<len; ++i) nowHand[i]=hand[player][*(list+i)]; qsort(nowHand, len, sizeof(int *), cmp);
if(higher(nowHand, len)){
for(i=0; i<len; ++i){ hand[player][*(list+i)]=hand[player][--numOfHand[player]]; field[i]=nowHand[i]; }
return (numOfSet = len);
}
}
return 0;
}
:
numOfSet=passCount=0;
if(putCard(i, list, len)==0) ++passCount; else passCount=0;

211:デフォルトの名無しさん
07/09/21 01:58:31
>>210 プログラム見るの面倒だけどどんな仕様ってかルールで作ってるんだ?

212:デフォルトの名無しさん
07/09/21 02:02:15
うpロダにまとめてうpしてくれい。コピペしてコンパイルするのまんどくせっ

213:デフォルトの名無しさん
07/09/21 03:17:55
手持ちのカードについて思ったんだけど、やはり数字とスーツの情報を持った
構造体を作って、それを双方向リストにでもして、抜いたカードの部分を
リストを削除するように消してといった感じにして、手持ちのカードリストが
ヌルポになったら手持ちがなくなったという感じにするとか考えてみたけど
やっぱやーめた。

214:127
07/09/21 04:00:02
>>213のような話は既に実装済みで今はこんな感じ

*** Card Simulation ***
#InCase
S-A S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S10 S-J S-Q S-K H-A H-2 H-3 H-4 H-5
H-6 H-7 H-8 H-9 H10 H-J H-Q H-K D-A D-2 D-3 D-4 D-5 D-6 D-7 D-8 D-9 D10
D-J D-Q D-K C-A C-2 C-3 C-4 C-5 C-6 C-7 C-8 C-9 C10 C-J C-Q C-K (J) (J)
*** Multi Millionaire Begin ***
<Shuffle>
#Shuffled(HinduShuffle X10 / RifleShuffle X1 / HinduShuffle X10)
S-A D-2 S-2 D-3 S-3 D-4 S-4 D-5 S-5 D-6 S-6 D-7 S-7 D-8 S-8 D-9 S-9 D10
S10 D-J S-J D-Q S-Q D-K S-K C-A H-A C-2 H-2 C-3 H-3 C-4 H-4 C-5 H-5 C-6
C-7 H-6 C-8 H-7 C-9 H-8 C10 H-9 C-J H10 C-Q H-J C-K H-Q (J) H-K (J) D-A
<Deal>
#Player01
H-3 D-3 S-4 C-5 D-6 S-7 H-7 C-7 D-9 S10 H10 C10 D-Q S-K H-K C-K S-A C-2
#Player02
C-3 H-4 D-4 S-5 C-6 D-7 S-8 H-8 C-8 D10 S-J H-J C-J D-K H-A D-A S-2 (J)
#Player03
S-3 C-4 H-5 D-5 S-6 H-6 D-8 S-9 H-9 C-9 D-J S-Q H-Q C-Q C-A H-2 D-2 (J)

215:デフォルトの名無しさん
07/09/21 05:25:32
>>214
というか、実装したコードを書いてもらわんとさっぱり・・・

216:デフォルトの名無しさん
07/09/21 22:16:49
今からC言語猛勉強やって1ヶ月で大富豪できるかな。前やって途中でやめてしまったんだよな

217:デフォルトの名無しさん
07/09/21 22:20:42
前やって途中でやめたんなら状況が変わらない限りまた途中でやめてしまうだろう
何か意欲を維持できるものができたのなら話は別

218:デフォルトの名無しさん
07/09/21 23:38:50
いい感じで実装できてきたので、ちょっとルールについて質問。

革命のルールなんだけどさ、たとえば3人でゲームをしている状況で、
A氏が 6 を 4枚、B氏が 9 を4枚、C氏が Q を 4枚持っている。
B 氏から始まる場になったので、B氏は 9 を 4枚出した。
そしたら、この場はどうなるの?

1. そのまま流れて、次のB氏の場から革命の場になる。
2. B氏が 9 を 4枚出した次点で革命が発動するので、A氏が 6 を 4枚出せば切れる。
さらにこの場合だと、そのあとC氏が Q を 4枚出せば切れる。
3. B氏が 9 を 4枚出した場はまだ革命の場ではないから、C氏が Q を 4枚出せば切れる。
この場合、次のC氏の場は革命の状態?それとも通常に戻る?
4. その他

さて、どれが主流?
オレは2でやってたけど。熊本で。


219:210
07/09/21 23:41:01
>211
複数枚カードの組 or 3枚以上の同じスーツのシーケンス は出せる、ルール
当然、場札より大きくないとダメ(3,4,...J,Q,K,A,2の順)

>212
「うpロダ」って何?

220:デフォルトの名無しさん
07/09/21 23:42:31
もいっこ。

次はパスのルールなんだけど、
場で一度パスしたらその場はもう参加できないの?

また3人でやっているとして、
A氏が4、B氏が7ときて、C氏はQがあるけど、出したくないからパスした。
そしたらA氏がJで切った。B氏はパスした。

この状況で、C氏はQ出せる?それとも強制パスでA氏の場になる?


221:デフォルトの名無しさん
07/09/21 23:43:41
>218

もれも 2. だな。埼玉、千葉で。

222:デフォルトの名無しさん
07/09/21 23:44:45
>>218 俺のところでは2の条件かな。
>>220 パスした人はその場が切れるまで参加できないってしてた

おそらく地方とかでルール変わるかもしれないけど、公式ルールってないのかな

223:デフォルトの名無しさん
07/09/21 23:45:37
>>221
お、2が増えた。
母集団が増えることはあまり期待していないので、
もう2人くらいいるなら2で実装してみようかな。

一番簡単だし。


224:221
07/09/21 23:46:46
>220

C氏はQ出せる。
場に出した人"以外の他の人全て"がパスした時だけ流れる、ルール
だったな

225:221
07/09/21 23:49:07
>224 ちょっと説明不足だな

誰かが出したらその時点でカウントがリセットになって、それ以降からパスのカウントが始まる
って感じ

言葉にするとよく分からないな...

226:デフォルトの名無しさん
07/09/21 23:51:46
>>225
分かるよ。自分が出したカードを自分が切ることになったら流れるってことでしょ。


でもやっぱり>>222タイプもあるんだよねぇ。

いや、CPUの思考ルーチンに差を出せないかと思ってさ。
昔でいうパックマンのモンスターみたいに。

とりあえず手札を減らしたい派、Aや2を温存する派、革命できるときは何より革命を狙う派…とか。
もちょっと考えてみる。


227:デフォルトの名無しさん
07/09/22 01:24:42
ちょっと頑張って、テストまったくせずに一通り書いた
エラー直してコンパイルしたら、手札のあまりの見にくさに吹いた
二人対戦だと一人のカード多いよ('A`)

おまけに複数枚出しを忘れてたorz
もういいや寝よ
俺みたいな初心者じゃなくてちゃんとした人が結構作ってるみたいだし

228:デフォルトの名無しさん
07/09/22 01:36:07
何故Cでやらねばならないのかと言えば
スレタイに「C言語で」とはっきり断ってあるからだ。
これがなければどれだけ簡単だっただろうか。

229:デフォルトの名無しさん
07/09/22 01:57:11
>>228
1はCで作りたいといっているだけで、
ほかのやつは他の言語を使ったって一向に構わないと俺は思うぞ。

230:デフォルトの名無しさん
07/09/22 02:05:29
作るのは勝手だが、このスレには必要ないな

231:デフォルトの名無しさん
07/09/22 03:39:44
rank = ( num + 11 ) % 13

232:デフォルトの名無しさん
07/09/22 03:45:16
>>229
君は本当にC言語もスレタイも理解できてないのかね?
ある程度の実装がされている開発環境なら言語を選ばずとも作れるんだよ。
このスレは”C言語で”だからね。かまわないって言い出すとキリがなくなるだろ。

東京から京都へ東海道を歩いて行くというイベントで
移動して目的地に到達すりゃ良いから鉄道でも自動車でも
一向に構わないなんて言ったら歩いていくという目的が無視されるでしょうに。

233:デフォルトの名無しさん
07/09/22 03:47:31
東京から京都へ 足を使って移動 ってなら
歩くも良し、走るも良し、屁理屈抜きで足でこぐ自転車でも良し
という条件ならおkとも言えよう。歩くって言ったら歩く。

234:デフォルトの名無しさん
07/09/22 04:03:42
楽しむのが目的だあな
おおらかさが無いとつまらん

235:デフォルトの名無しさん
07/09/22 04:11:08
頑張ってソートのアルゴリズムとかを調べながら作ってて、
ふとスレ読み返したら>>104を見てソート関数があらかじめ用意されていたことを知ったorz
なんか負けた気分


配列でやるのはやっぱりきついかな?
出したカードの分、穴が空いちゃうし。

236:デフォルトの名無しさん
07/09/22 04:13:47
出したら詰めればいいだけじゃね?

237:デフォルトの名無しさん
07/09/22 04:32:48
出したカードを詰めるところをどうしようか考えたが
やはり双か単方向リストでリストを削除するかのように実装すべきか、それが問題だ。

238:235
07/09/22 04:44:37
>>236
いやあ、何かスマートじゃない気がして
いっそ詰めないで、カード無いとこには-1とか入れて、画面表示の際のループで残り枚数カウントするとかも考えたんだけど
無駄なループだ

>>237
やっぱ単か双のリストが良いかねえ
まあプログラミング初心者としては、それも面白そうではあるんだけど

239:デフォルトの名無しさん
07/09/22 08:16:51
ゲ製に移動したら?

>>232
君は本当にスレタイを理解できてないのかね?
このスレは”トランプゲームを作りたい”だからね。かまわないって言い出すとキリがなくなるだろ。

240:デフォルトの名無しさん
07/09/22 09:30:59
スレタイは「C言語でトランプゲームを作りたい」です。

241:デフォルトの名無しさん
07/09/22 13:54:47
流石にJavaで作ったら1の神経逆撫でだろうな。

242:デフォルトの名無しさん
07/09/22 14:00:44
いいねそれ
Javaで作ろうか

243:デフォルトの名無しさん
07/09/22 14:09:52
JavaでもC++でもいいよ
できないよりマシ

244:デフォルトの名無しさん
07/09/22 17:15:48
>>239は何が言いたい?バカじゃね?

245:デフォルトの名無しさん
07/09/22 17:21:51
大丈夫、>244ほどじゃない。

246:デフォルトの名無しさん
07/09/22 17:43:13
>>232はスレタイの「C言語」にこだわっているが、
スレタイにこだわりだしたら、「ゲーム」と入ってる時点でLR違反だってことを>>239は皮肉ってるつもりだろう

俺はCだけにこだわる必要はないと思うし、
わざわざ移転する必要もないと思うが

247:デフォルトの名無しさん
07/09/22 17:49:45
javaとかいってる奴らは、自分じゃ書かない癖に間口を広げて、
少しでもゲームできる可能性を増やしたい乞食だろ。

248:デフォルトの名無しさん
07/09/22 17:58:38
>>245 お前がバカなだけだろ

249:デフォルトの名無しさん
07/09/22 18:00:49
>>246
必要があるないじゃないんだよ、スレタイは C言語で って書かれてあるだろ。
日本語が読めないなら祖国に帰れよ

250:デフォルトの名無しさん
07/09/22 18:01:57
>>246
お前みたいな奴ってトランプゲームを作ることだけに頭がいっているんだろうけど
C言語の宿題や質問スレでJavaやその他の言語の質問してもスルーされるだけだぞ

251:デフォルトの名無しさん
07/09/22 18:03:26
アホか
ゲームやりたいだけならヤフーとかハンゲにでも行くさ

252:デフォルトの名無しさん
07/09/22 18:04:19
>>249
スレタイは ゲーム って書かれてあるだろ。

> ゲーム関係の話題はゲーム製作板へどうぞ。

日本語が読めないなら祖国に帰れよ

253:デフォルトの名無しさん
07/09/22 18:06:52
板違いとスレ違いの区別ぐらいつけろよ。

254:デフォルトの名無しさん
07/09/22 18:08:09
板違いのスレでスレ違いの指摘とは。
それなんてダブスタ?

255:デフォルトの名無しさん
07/09/22 18:12:38
板違いといいたいなら最初からそういえばいいのに
性格ねじまがってるのかな??

256:デフォルトの名無しさん
07/09/22 18:13:30
板違いだろうと>>1が立ててしまったのだから仕方がない。

257:デフォルトの名無しさん
07/09/22 18:13:43
gdgdC言語以外の言語で作ることを言っている奴はもう一度
ス  レ  タ  イ  読  め  

C言語でトランプゲームを作りたい
スレリンク(tech板)

スレ違いの奴らは出ていって結構

258:デフォルトの名無しさん
07/09/22 18:14:49
それなんて開き直り?

259:デフォルトの名無しさん
07/09/22 18:16:52
板違いだと思うんなら、javaとかCとか関係なく書き込むべきじゃないだろ。

260:デフォルトの名無しさん
07/09/22 18:18:21
○○言語で○○作りたい

って言ったらキリがないぞ。ここに立ってる以上ここを有効活用するべき

261:デフォルトの名無しさん
07/09/22 18:18:25
Cにこだわる意味がわからん

262:デフォルトの名無しさん
07/09/22 18:21:57
>>1ってまだ居るの?

263:デフォルトの名無しさん
07/09/22 18:47:42
何か普通に作る流れだったのに、gdgdになってきてこのまま誰も作らなそうだな

264:35
07/09/22 18:58:33
>>35ですが、
通常ルール部分の判定処理(出せるか出せないか)
AI(簡単なものなら、上の判定を使って適当にカードを選ぶ)
特殊ルール(8切りなど)の実装
がコーディングできれば完成です。

265:デフォルトの名無しさん
07/09/22 18:58:35
俺は自分で作る気は無いけど質問とかがあれば答えてるよ
正直言って今ここのレベルは高くないと思ってるけど
作る人が居るなら成長できるよう応援する

266:デフォルトの名無しさん
07/09/22 19:03:03
俺も他の人が悩んでるのを見て一緒に考えるのが楽しいわ

267:デフォルトの名無しさん
07/09/22 19:23:43
複数枚出しの指定方法てどうしたらいいかな?

1.
[1:H4][2:D6][3:S6][4:C9]
番号を入力してください>1 //一枚出し
番号を入力してください>23 //二枚出し?

2.
手札/[H4][D6][S6][C9]
Single/[1:H4][2:D6][3:S6][4:C9]
Double/[5:D6,S6]
番号を入力してください>4 //二枚出し
(出せるカードのみリスト)

3.
[H4][D6][S6][C9]
出したいカードを入力してください>H4 //一枚出し
出したいカードを入力してください>DS6 //二枚出し

268:デフォルトの名無しさん
07/09/22 19:24:58
2番の方向で

269:デフォルトの名無しさん
07/09/22 19:26:20
>>267
手順が一つ増えるけど...

もう一枚手札を切りますか? (y or n) :

270:35
07/09/22 19:27:50
>>267
カード選択 > S1 H1
みたいなのを有効にしてます
手札からカードを選ぶだけ選んで、出せなかったら選び直しにしてます
>>267の方がUI的に優れてるかな

271:デフォルトの名無しさん
07/09/22 19:31:20
既に複数枚出しの場になってることきのことも考えれば、2がいいと思う。

272:デフォルトの名無しさん
07/09/22 19:45:31
>219
「うpロダ」はアップローダのことだな。

ただ、巷のアップローダは画像用とか圧縮ファイル用が多いから
あんまりテキストアップロードには向かないかもね…
サイトとかブログとか持ってるならそこに上げたりしてもいいと思う。

昔、プログラムコード用の外国のアップローダ
見たことあるんだけど、忘れちゃったな…どこだっけか。

273:デフォルトの名無しさん
07/09/22 19:55:21
うpろだなら、C/C++の宿題スレに張ってあるのはどうだろう?

274:267
07/09/22 20:24:11
>>268-271
ありがとうございます
その方向で作ってみます

>>267の2番はユーザー入力値間違えましたw
あれじゃ一枚出しだ……

275:デフォルトの名無しさん
07/09/22 20:43:07
大富豪作ってる人は一日どのくらいのペースで作ってる?

276:デフォルトの名無しさん
07/09/22 21:31:37
できる人はルールを設定してくれれば一日でその通りに作れる。
普通は一週間以内かな。大富豪作ってばかりもいられないし

277:デフォルトの名無しさん
07/09/22 21:49:12
大富豪でこのスレが終わるわけじゃないからな
大富豪が終わったら次は何にする?

278:デフォルトの名無しさん
07/09/22 21:49:59
仕切りたがるだけのアホは市ね

279:デフォルトの名無しさん
07/09/22 21:50:15
>>277
王道なトランプゲームをいくつか実装してみる

280:デフォルトの名無しさん
07/09/22 22:19:44
>>278
自己紹介乙

281:デフォルトの名無しさん
07/09/22 22:23:00
思考ルーチンはこんな具合で造った。
URLリンク(www.imgup.org)

282:デフォルトの名無しさん
07/09/22 22:28:12
>>281
参考にさせてもらうぴょん。

ところでJkKってのは何?誤記?



283:デフォルトの名無しさん
07/09/22 22:33:57
C言語暦三日の俺が一ヶ月でこれ作れるかな。Cについてはポインタやって今は構造体やってる

284:デフォルトの名無しさん
07/09/22 22:35:11
プログラミング暦三日じゃなきゃ、できるんじゃね?

285:デフォルトの名無しさん
07/09/22 22:37:13
プログラミング暦三日です・・・

286:デフォルトの名無しさん
07/09/22 22:51:11
とりあえずCやって目標は11月までに作る!これを一ヶ月で作るなんて考えがやっぱ初心者だな
って思った方。あなたが正しい

287:デフォルトの名無しさん
07/09/22 22:53:32
>>282
Joker Killerの略です。すまんこって。

一応ルールは、2/Jk上がり禁止、革命有り、Jk殺し有り、が前提です。

288:デフォルトの名無しさん
07/09/22 22:57:10
複数枚(ダブル等)の表現方法(表示方法では無しに)で困っているんだが、
配列以外でいい方法無いかね
複数枚だと必ず数字が同じだから(階段は考えないで)、
それを利用して排他な表現方法が無いものかと思うんだけど……

289:デフォルトの名無しさん
07/09/22 23:00:19
>>288
どういう意味?

290:デフォルトの名無しさん
07/09/22 23:01:34
カード選択前に「何枚モード」を選ぶとか
ルーチンは簡単になるけどあんまりスマートではないか

291:デフォルトの名無しさん
07/09/22 23:04:57
>>289
場札をint型変数で管理してるんだけど、
複数枚出してる時はどんな値を格納しようかと思って。

単純に要素数が4の配列で場札を管理すりゃいいのかもしんないけどさ、
せっかく「数字が同じ」て限られているのに、
わざわざ実際にはありえない物も含めた全組み合わせを格納できる方法を採用するのも癪で……

292:デフォルトの名無しさん
07/09/22 23:08:28
このスレには実際に大富豪作ってる、または作った経験があるって人はどのくらいいるんだろう。
ちなみに俺は作りたいけど作れない人だけど

293:デフォルトの名無しさん
07/09/22 23:15:52
>>291
階段は使えない仕様なん?

294:デフォルトの名無しさん
07/09/22 23:18:16
>>293
とりあえず基本ルールのみ実装だからw
でも後でいろいろ加えていくとき、やっぱ困るか……
大人しく配列にします。

295:デフォルトの名無しさん
07/09/22 23:28:35
>>291
階段なしなら、(出してる枚数-1)*13を加えてやればいいんじゃないかと
>>294
階段ありなら配列は4じゃなくて出せる最大枚数分だな

296:デフォルトの名無しさん
07/09/22 23:33:10
>>295
>(出してる枚数-1)*13
スートはいらないならそれでいんだけど。
まあ大富豪においてスートなんか飾りだけど。

そうかあ、階段ありなら出せる枚数増えるんだよな……定数宣言しとこ

297:デフォルトの名無しさん
07/09/22 23:40:07
>>292


プレイできる所まで作ったら飽きちゃって、そのまま。

298:デフォルトの名無しさん
07/09/22 23:42:04
>>296
>まあ大富豪においてスートなんか飾りだけど。

ローカルルールにはスートがかなり絡んでるようだよ

299:デフォルトの名無しさん
07/09/22 23:46:27
>>267の2の方法でやるとき、
ユーザー入力と一対一対応させるために出せるカード組み合わせの配列を作ろうとしたんだ。


この配列の要素数っていくつにすればいいんだ?

300:デフォルトの名無しさん
07/09/22 23:52:26
>>299
自由に出せるときにもその方法を取るのか
そうなると手札が多いとき選択肢が多くなるぞ


301:デフォルトの名無しさん
07/09/23 00:09:02
昔ポーカーなら作った事あるが、変な最適化はしなかったな。
トランプをデッキとして捕らえ、54枚のデッキをひとつ使うゲームとして組んだ。
俺も当然のごとく飽きて、折角用意した汎用性は無に帰したけど。

302:デフォルトの名無しさん
07/09/23 00:12:13
その昔、といっても、もう6年以上前になるが、ブラックジャックを作ったことがある

303:デフォルトの名無しさん
07/09/23 00:36:39
プレイヤーが知っているはずであることは知ることができなければならないし、
プレイヤーが知らないはずであることは知ることができてはいけないし、知ろうとしてはいけない

という自分で作った条項に苦しんでる。
クラスじゃないから隠蔽ができないので結局そのつもりだけなんだが。

304:デフォルトの名無しさん
07/09/23 00:47:50
54枚がどの領域に配置されてるかが管理されてれば出来るでしょ。
公にオープンされる場(7並べなら並べる場所)と自分にだけオープンされる場(手札)
場構造体にユーザIDとカード配列を持たせればいい。何か難しく考えてない?

305:デフォルトの名無しさん
07/09/23 01:15:12
ユーザIDがグローバルなら0、それ以外ならrandで割り振れば嫌でもクローズドな世界に突入さ

306:デフォルトの名無しさん
07/09/23 01:17:11
やべっ、なんかVisualC++で作りたくなってきたw

307:デフォルトの名無しさん
07/09/23 01:30:11
そっちのほうが楽かも

308:デフォルトの名無しさん
07/09/23 01:34:02
本当にやりたいと思っている奴はやりたいなんてわざわざ書き込まない

309:デフォルトの名無しさん
07/09/23 01:35:00
やべ、なんかVisualC++で作りたくなくなってきたw

310:デフォルトの名無しさん
07/09/23 02:02:50
プログラミング初心者です
カード出した後の穴空き配列の対処に困っているんですが
・穴空きはそのままループ用いて処理
・一回一回詰める
どちらが良いんでしょうか?

311:デフォルトの名無しさん
07/09/23 02:04:56
空を表す常態で放置

312:デフォルトの名無しさん
07/09/23 02:24:33
一回一回詰めてたが、考え直してみればその方がいいな

313:310
07/09/23 02:38:51
>>311
ふと思ったんですが、その場合ユーザー入力はどうすればよいでしょうか?
-1をカードが無い状態として、配列に
{6,-1,8,-1,-1}
と入ってるとします
-1はループで飛ばされるので、ユーザー的には{6,8}と同義です
つまりユーザーが入力した数値が添字に対応してなくて不便ではないかと。

一回一回、ユーザー入力に対応した別の配列を生成するくらいなら、
配列を一々詰めた方が効率が良いのではないでしょうか?
もっと良い方法がありますかね?

314:デフォルトの名無しさん
07/09/23 02:42:42
6,8 で添字を合わせたいなら、{-1,-1,-1,-1,-1,-1,1,-1,-1,1,...} じゃないの?

315:デフォルトの名無しさん
07/09/23 02:49:37
ランダムアクセスできないといけない問題でもあるの?
if (EMPTY_CARD != card[i]) みたいに毎度サーチすればいいじゃん。

316:デフォルトの名無しさん
07/09/23 03:04:39
>>314
ああ、そういうタイプの配列にすればできますね
{6,8,11,23,48,51}(実際にはランク順ソート)
みたいな配列ばかりイメージしてました

>>315
例えば{6,8,11,23,48,51}で、
ユーザーが2と入力したら11を出す、と添字に対応させることを考えていました。
{6,-1,11,23,48,51}
↑こうなると表示の際には-1は飛ばされて{6,11,23,48,51}と表示されますから、
ユーザーが23を出すつもりで2と入力しても、そのまま添字にできないなあ、と。
かと言って一々ユーザー入力に対応する配列を作るなら、詰めていく方が効率良いでしょうし。

それとも、ユーザー入力nに対して、ループで配列の有効な値のn個目を毎度探せばよい、ということでしょうか?

317:デフォルトの名無しさん
07/09/23 03:07:38
>>316
そういう選択のさせ方をするならその通り

318:デフォルトの名無しさん
07/09/23 03:13:46
コンパクションや線形リストのためのコード書くほうが手間じゃない?
カードゲームなんて配列の要素数が少ないんだから
変に手間掛けてもCPUは喜ばないよ。

319:デフォルトの名無しさん
07/09/23 03:14:58
やべっ、トランプゲームより子供を作りたくなってきたw

320:316
07/09/23 03:57:41
>>317
すいません、こんなこと聞くのも恥ずかしいんですが、「その通り」って
>一々ユーザー入力に対応する配列を作るなら、詰めていく方が効率良い
>ユーザー入力nに対して、ループで配列の有効な値のn個目を毎度探せばよい
どちらの意味で?

321:デフォルトの名無しさん
07/09/23 04:18:59
>>320
後者だろ常考

322:210
07/09/23 09:27:46
>316

もれのは前者(いちいち詰めているタイプ)
高々50数枚程度なら効率とか気にしない

まぁプログラミングの勉強に、って観点なら効率を考えてみるのもよいかもだが

323:デフォルトの名無しさん
07/09/23 09:47:09
c++とboostとpstade解禁してくだちぃ
あとついでにpdcursesも

324:デフォルトの名無しさん
07/09/23 10:11:28
>>323
公開したもの勝ちだ

325:デフォルトの名無しさん
07/09/23 12:56:36
わざわざお題から外れてまで他の言語を使用する程の問題でも無いと思うけどね。
無粋と言うか子供っぽいと言うか…

326:デフォルトの名無しさん
07/09/23 13:02:09
わざわざ議論を蒸し返すなよ

327:デフォルトの名無しさん
07/09/23 13:16:05
ま、そういう事だね。

328:210
07/09/23 13:34:35
宿題スレの借りますた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

とりあえずゲーム進行まで。
革命なし。2上がり禁止なし。

次は思考ルーチンかぁ...

329:デフォルトの名無しさん
07/09/23 13:43:35
>281
...見れないorz

330:デフォルトの名無しさん
07/09/23 16:53:46
ポーカ作ってみたけど、途中で飽きた…
URLリンク(kansai2channeler.hp.infoseek.co.jp)

331:デフォルトの名無しさん
07/09/23 17:52:00
ぽーかぽーか(ほうかほうか > そうかそうか)

332:デフォルトの名無しさん
07/09/23 18:19:24
とりあえず初心者向けの本一冊読んできたけどカードを作る際に実際に使えるものとして宣言するには
どうすればいいか分からなかった

333:デフォルトの名無しさん
07/09/23 19:26:03
今デバッグ中だが、ソースサイズが>>328の倍近くあるw
やべえ、公開したくなくなってきたww

334:デフォルトの名無しさん
07/09/23 20:04:21
>333
むしろ公開して、サイズが膨れあがった原因を突き止めるんだ

335:333
07/09/23 20:11:17
>>334
むしろデバッグが終わらな(ry
・複数枚が何故か出せない
・出せるはずのカードが何故か出せない
・AIが何故かたまに無限ループ
関数関係が複雑でデバッグめんどいw

336:デフォルトの名無しさん
07/09/23 20:13:14
混乱するならオートマンを書く。整理大事。

337:デフォルトの名無しさん
07/09/23 20:13:26
>>335
今のところバグはないが、俺は12000バイト前後あるぞ

338:デフォルトの名無しさん
07/09/23 20:13:43
>>335
関数毎にテスト。
それで問題ないなら組み合わせてテスト。

339:デフォルトの名無しさん
07/09/23 20:21:09
>>335
カードどうやって扱ってるんだ

340:333
07/09/23 20:31:59
>>336>>338
試してみまつ

>>337
こっちも修正したらそんくらいになるかもorz

>>338
int cards[PLAYER_NUM][PLAYER_CARD_MAX];

341:デフォルトの名無しさん
07/09/24 14:51:45
ほほう

342:デフォルトの名無しさん
07/09/24 20:56:21
URLリンク(www.microsoft.com)
んもう、これ使っちゃおうぜ?

343:デフォルトの名無しさん
07/09/25 09:48:13
C#解禁してくれたらxnaで書く。
ってスレが違っちゃうか・・・

344:デフォルトの名無しさん
07/09/25 09:50:32
まずスレ建てればいいんだよ
ほぼ確実にここに誘導されるから
そういう経緯なら追い出されることは無いだろうよ

345:デフォルトの名無しさん
07/09/25 13:01:09
まあ、C/C++/C#ならこのスレでいい。

346:デフォルトの名無しさん
07/09/25 13:07:03
ちょっと質問
言語何でもOKならみんなは何で作る?

347:デフォルトの名無しさん
07/09/25 16:33:12
オブジェクト指向を取り入れた言語が溢れる昨今
敢えて非オブジェクト指向言語であるC言語を使って
四苦八苦することにノスタルジーを感じるのがこのスレの趣旨だと理解しているが

348:デフォルトの名無しさん
07/09/25 17:04:22
324 名前:デフォルトの名無しさん[sage] 投稿日:2007/09/23(日) 10:11:28
>>323
公開したもの勝ちだ

349:デフォルトの名無しさん
07/09/25 17:58:13
喪前らゲ制作板逝けw

350:デフォルトの名無しさん
07/09/25 18:05:51
ゲ制でCUI大富豪なんて誰も参加しねぇよw
あそこでやるなら普通GUI

351:デフォルトの名無しさん
07/09/25 23:58:11
>>103は今頃何してるだろう

352:デフォルトの名無しさん
07/09/26 02:00:40
他人のことを気にしていたって何にもならないさ。
むしろ調べようもなく知る術すらないのに、気にしてばかりいると
すぐに禿げて寿命も縮んで、いつの間にかコロッと死んでしまうかもしれないぞ。
人間、くよくよしない、それが長生きの秘訣だって100歳になった双子が言ってたじょのいこ?

353:デフォルトの名無しさん
07/09/26 02:06:14
日本語でおk

354:デフォルトの名無しさん
07/09/26 02:17:37
最近、日本語がまともに読めない、理解できないのはゆとり世代が
社会人になったせいか。時間の流れは速いなw

355:デフォルトの名無しさん
07/09/26 02:18:49
日本語でおkとか言う奴に限ってまともに日本語を理解できない、使えないのが特徴てき。
自分が知る日本語の範囲内で理解しようとしても、レベルが低いから相手にならない。
こんなプロジェクトに参加すること自体、厚かましい。早々に立ち去れい >>353


356:デフォルトの名無しさん
07/09/26 02:22:34
>>353
お前には朝鮮語で話をした方が良かったか?悪い、俺日本人だし
朝鮮語は勉強したことないからさっぱり分からん。

357:デフォルトの名無しさん
07/09/26 02:25:35
ネタをネタと読みきれない奴が多いな。やっぱパソコンばっかいじってると頭が論理的な思考になって
他人が知って欲しい「意味」を読み取れないのかな

358:デフォルトの名無しさん
07/09/26 02:30:35
URLリンク(www.chunichi.co.jp)
ゆとり世代の日本語おk君、君は記事をしっかり読みましょう。まずはそこから。
まぁ、お前の日本語力じゃ記事の意味すら理解できないだろうし、長生きの秘訣すら
理解できないだろうね。ほら、お前今何歳だ?鏡を見ろ、何歳に見える?
20代なのに、禿げたりデヴってたり、しわやしみが増えて
30代を過ぎたオッサンになってねーか?w

359:デフォルトの名無しさん
07/09/26 02:34:59
ちなみに、~じょのいこ ってのは、「簡単じゃないか」を
「こんとんじょのいこ」って言うと、えなりかずき君が言っている様に
聞こえるというネタだから。それを指定したのなら、ネタに反応したのはどっちやら?w

360:デフォルトの名無しさん
07/09/26 02:36:55
それくらい知ってるんだからね・・・!勘違いしないでよね!!

361:デフォルトの名無しさん
07/09/26 02:43:41
チョンのスレに迷い込んでしまった

362:デフォルトの名無しさん
07/09/26 02:45:31
>>360
チュンデレでちゅか?
>>361
それはちょんでもないことだ。

363:デフォルトの名無しさん
07/09/26 02:46:59
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /

364:デフォルトの名無しさん
07/09/26 02:47:40
            ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつが最高にアポー

365:デフォルトの名無しさん
07/09/26 02:50:25
 

366:デフォルトの名無しさん
07/09/26 02:52:35
っつか、君たち暇なら何かトランプゲームを作れYO!

367:デフォルトの名無しさん
07/09/26 06:39:40
君たち、急に静かになったね。そもそも「トランプ」って英語じゃないって知っているよね?
トランプとは「切り札」を意味する言葉で、英語では「プレイングカード」といった呼び名。
だからcardsと言うのさ、俺は、ふっ。

368:デフォルトの名無しさん
07/09/26 15:31:20
>>367
ここは日本語で大丈夫なスレです。
英語に堪能なあなたにはきっと辛いこともあるでしょう。
でも大丈夫。この壷をあなたの家のトイレに飾r

369:デフォルトの名無しさん
07/09/26 18:47:54
初心者が独学でCやって大富豪とか時間かかりそう

370:デフォルトの名無しさん
07/09/26 19:09:02
俺も作ろうかと思ってやってみたけどここにうpされてるのとは全く違うし俺のやり方でできるの?って感じ

371:デフォルトの名無しさん
07/09/26 21:01:27
汚いし長くてもいいならできるんじゃない?まさに今の俺

372:デフォルトの名無しさん
07/09/26 21:37:27
汚くて長い…正にウンコcodeってか。

373:333
07/09/26 22:33:00
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ウンコcodeがなんとか形になりましたので上げてみた。
複数枚処理を書き直して、入力方式は>>328さんのを真似てみますた。
コードが汚い・分かり辛い(特にAI周り)はとりあえず勘弁してくださいw
・ローカルルールや上がり制限は無し
・ジョーカーあり(ワイルドカード・最強カード)
・プレイ人数はデフォルトで3人。コード冒頭の定数を書き換えて変更できるが、54の約数以外では多分おかしくなる。
・AIは「出せるカードのうち最弱」なのを出すようにしてる。AI周りのコードは未整理なんでw

374:デフォルトの名無しさん
07/09/26 22:52:07
安心しろ。俺なんてカードを一枚ずつ作っていったバカだ

375:デフォルトの名無しさん
07/09/26 22:53:39
>>373
エラー(デバッガ例外)がでるのは仕様?
当方C++Builder6

int turn(int *cards , int *hasnum , int *fieldcard , int fieldnum , int pnum){



num = userturn(cards , hasnum[i] , fieldcard , fieldnum , nextindex); ←ココ

376:333
07/09/26 23:11:47
間違えてデバッグ用にAIの手札も表示したままだった……orz
一旦削除しましたので、修正版↓
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>375
まじすか
うちは5.5だけど出ないorz
もっと具体的なエラーの文面とか出ますか?

377:デフォルトの名無しさん
07/09/26 23:13:48
bcc55は異常なし

378:333
07/09/26 23:19:25
あれ、うちの5.5ってbuilderじゃないのか
compiler

379:デフォルトの名無しさん
07/09/26 23:22:58
>>376

//戻り値:PASS or 出した枚数
int num , nextindex[ONCE_CARD_MAX];
int i;

if (ptype[pnum] == MAN){
disp(cards , hasnum , fieldcard , fieldnum , pnum);
num = userturn(cards , hasnum[i] , fieldcard , fieldnum , nextindex);

iの値不定じゃない?

380:デフォルトの名無しさん
07/09/26 23:23:48
Borland C++ Compiler 5.5だけど動いた。そして俺のプログラムが改めてうんこなんだと思った。

381:333
07/09/26 23:34:18
>>379
それだ! 変数名間違えたorz
はい、ということで修正しますたorz
URLリンク(kansai2channeler.hp.infoseek.co.jp)
しかしよくこんなミスしてバグ出ずに動いてたな。
削除してばっかでろださんに悪い……
てかさっきからそこ眺めてたのに気づかない俺ってorz

382:333
07/09/26 23:38:29
やべ、まだデバッグ用のが残ってたorz
修正版は上げませんけど、247行目、userturn関数の最後から2行目のprintfは消して構いません。

ミス多すぎですねorz
少し吊ってきまつ

383:デフォルトの名無しさん
07/09/26 23:41:08
みんなプログラミング暦どのくらい?学生?社会人?

384:333
07/09/26 23:43:55
今自分でやってたら手札に2が5枚出てきました
どうみてもおかしいです
本当にありg(ry

385:デフォルトの名無しさん
07/09/27 00:24:32
>>384
がんがれw

386:デフォルトの名無しさん
07/09/27 00:53:12
ここでプログラミング暦一週間の俺が登場。トランプゲームだと思って甘く見てました。
>>381のプログラム見てもサパーリ

387:333
07/09/27 02:06:29
>>386
俺のコードはかなり汚いからw
>>328さんのとかは一つ一つの関数がすっきりしてて、
俺のなんかよりよっぽど分かりやすいと思うよ

>>383
初めてCに触れたのは3年くらい前
だけどちゃんとしたプログラミングは今回が初
学生でつ

388:デフォルトの名無しさん
07/09/27 04:22:01
オレは>>328のコードより>>381のコードのほうが好きだけどな。
コンパイルしていないから実装のレベルは無視。

でもまぁ、なんていうか、もうちょっと空白や改行を大事にしてくれよ。


389:デフォルトの名無しさん
07/09/27 23:11:15
頑張って7行で書くんだ。

390:デフォルトの名無しさん
07/09/28 00:28:12
○行って言うけど、それってかなり曖昧じゃね?
1行何文字って定義の元で行数を言わないと
改行するまで1行ってことにすれば、すべてのコードが
扱うコンピュータやエディタが表示可能な限り、1行で済むぜ?

391:デフォルトの名無しさん
07/09/28 00:30:13
この板で「7行」っつーと、7行×79バイトのことだ。


392:デフォルトの名無しさん
07/09/28 00:35:47
んで、1行の文字数や情報量が決められているってなら
今度は別にそれに応じて行数は無視してもなら問題はない。
要するに○行という考え方そのものがナンセンスだということさ、ふっ。
俺、今世紀最大の偉人じゃね?ぜってー俺って歴史に名が残るぜ?
お前ら名の残らないパンピーは俺にひれ伏すが良い

393:デフォルトの名無しさん
07/09/28 00:36:53
ナンセンスなハイセンス

394:デフォルトの名無しさん
07/09/28 01:05:17
っつーわけで、○行なんてわけのわからん規定はやめて
○バイト、半角文字の数を基準にした方が良いじょのいこ?

395:デフォルトの名無しさん
07/09/28 01:15:32
7行プログラミングってジャンルがあるんだ
単なるネタだしょ

396:デフォルトの名無しさん
07/09/28 01:25:01
なんでそんなに七行にこだわるのだろうか?
なーなーなななーなななーなーなー(DJ OZMA!)

397:デフォルトの名無しさん
07/09/28 01:26:17
>>390
プログラマの中では共通理解が出来ているから良いんだよ。
1行80桁というのはテレタイプとかの時代からなのかな。
今でも端末エミュレータを開くとデフォルトで横幅80桁の
表示になるよ。7行というのはDVDのコピーガードを、とある
学生がたった7行のスクリプトで破ったという故事から。

398:デフォルトの名無しさん
07/09/28 01:32:17
>>397
プログラマの中で共通っていうのは分かるが、問題はそこじゃない。
行という言葉に対してどういう定義がされているのか?
そもそも7行にこだわる意味があるのか?
それらを含めたら、7行なんていうこと自体がナンセンスなのさ。

399:デフォルトの名無しさん
07/09/28 01:36:54
何を問題にして何を言ってるのかわからんが、酔ってるのか?

400:デフォルトの名無しさん
07/09/28 02:23:44
長かろうが短かろうが正しく動くプログラムが良いプログラム
その上で仕様変更があるなら正しく変更できるプログラムが良いプログラム

401:デフォルトの名無しさん
07/09/28 02:31:16
「7行プログラム」を知らない素人が、的外れな突込みをして恥かいたってとこか

402:デフォルトの名無しさん
07/09/28 02:32:38
cならせめて2行でしょ

403:デフォルトの名無しさん
07/09/28 04:28:09
>>401
知っているからこそ疑問に思ったんだろ。そういう定義による7行ってのが
果たして意味があるのか?って話。むろん、こだわる必要がない以上無意味。
また、言うなれば実行プログラムのサイズや使用するライブラリの制限をした方が面白そうなんだが

404:デフォルトの名無しさん
07/09/28 04:34:43
URLリンク(pc.2ch.net)

405:デフォルトの名無しさん
07/09/28 05:06:40
なんでこの人恥の上塗りしてるの?


406:デフォルトの名無しさん
07/09/28 07:49:46
>>403
いや、明らかに知らなかったよ。まあ良いじゃん。

407:デフォルトの名無しさん
07/09/28 11:52:55
今も現役

七行プログラミング part5
スレリンク(tech板)

七行プログラミング
スレリンク(php板)

408:333
07/09/28 21:42:48
ちょっと>>381のコードは忘れてください
シャッフル処理が明らかにおかしいことに気づきましたorz
カード重複しまくりじゃん……

409:デフォルトの名無しさん
07/09/28 22:13:04
だが断る

410:333
07/09/28 22:13:46
void shuffle(int *cards){
int i,r;
srand(time(NULL));

for (i=0; i<CARD_MAX; i++) {
r = (i+1.0) * rand() / (RAND_MAX + 1.0);
cards[i] = cards[r];
cards[r] = i;
}
}
shuffle関数をこれに置き換えれば大丈夫です。多分。

>>388
改行・空白が少ないってことですか?

411:デフォルトの名無しさん
07/09/28 23:12:40
シャッフルじゃなくて
> #define CARD_RANK(n) ((n)/13 == 4 ? JOKER_RANK : ((n) + 11) % 13)
のせいじゃね?

あと、>410 と >381 のシャッフルに違いがあるとは思えんのだが

412:デフォルトの名無しさん
07/09/28 23:31:15
>>410
このシャッフル(?)って、全員の枚数は均等になるの?
たとえば53枚を5人で分けたら、3人11枚で2人は10枚になる?

413:デフォルトの名無しさん
07/09/28 23:35:26
このシャッフルはただたんにカードをきるだけであって配るではないんじゃないの?

414:デフォルトの名無しさん
07/09/28 23:40:43
>>413
そうだね

415:デフォルトの名無しさん
07/09/29 00:00:27
>>410
細かいことだけど、ループはi=0からじゃなくてi=1からでok

416:デフォルトの名無しさん
07/09/29 00:09:57
>>413>>414 ごめん、勘違いしてた。

>>410
>>388もオレなんだけど、空白については>>328のほうのコードに対するコメントね。

ただ、>>333のコードでも、
int turn(int *cards , int *hasnum , int *fieldcard , int fieldnum , int pnum){
    if (ptype[pnum] == MAN){
        ...
    }
    else if (ptype[pnum] == COM) num = AIturn(cards , hasnum[pnum] , fieldcard , fieldnum , nextindex);
    if (num == PASS) (ptype[pnum] == MAN) ? puts("USER:PASS!") : printf("COM%d:PASS!\n" , pnum);
    else {
        ...
    }
    return num;
}

上からゆっくり読めば分かるんだけど、たとえば
    }
    else if (ptype[pnum] == COM)
      num = AIturn(cards , hasnum[pnum] , fieldcard , fieldnum , nextindex);

    if (num == PASS)
      (ptype[pnum] == MAN) ? puts("USER:PASS!") : printf("COM%d:PASS!\n" , pnum);
    else {
って感じで空行を入れたりインデントしたりすれば、もちょっと分かりやすいかなと思うんだ。

いや、オレの読む力が無いだけかも知れんので、
こういう風に感じる人もいた、とだけ覚えておいてくれれば。


417:デフォルトの名無しさん
07/09/29 00:13:12
ブロックで囲まない一行をインデントするのはイヤだ

418:333
07/09/29 00:15:36
>>411
CARD_RANKどっかおかしいですかね?
シャッフルについては、cards配列の初期化とcards[i]とcards[r]のスワップをまとめた感じの処理ですから、
>>381だとcards[r]=i;はいいとしても、cards[i]=r;はcards[r]に元々rが入っていなければスワップになっていないと思います。
cards[i]の元の値はiと考えても問題ないので(実際には値不定)、>>410で良いと思います。多分。

>>412
>>413さんの言うとおりです。それと多分54の約数以外だと多分バグります。

>>415
それだとcards[0]の値が不定のままの可能性があると思ったのですが……初期化処理はしていないし、グローバル変数でもないので。
(グローバルでなくては勝手に初期化されないんですよね?)
>>381だとcards[0]=0;と入れていたんですが、まとめた方がすっきりするだろうと思ってまとめました。

419:333
07/09/29 00:19:45
リロードしてなかった……

>>416
今度から気を付けてみます
どっか別のところは一行ifでもインデント入れてたような気もしますが……統一しなきゃ
本当いうと三項演算子にifの変わりするのもあまり褒められたもんじゃないんでしょうけどね

420:デフォルトの名無しさん
07/09/29 00:20:57
ああ、すまん勘違いしてた。
でも、配列を{0}で初期化しといて無駄な計算とスワップ減らした方がよくね?

421:333
07/09/29 00:28:10
>>420
ああ、それ、この前から気になりつつも検索してなかったですw>配列を0初期化
{0}でできるんですね。じゃあそれでやっておきます。
ありがとうございます。

なんかレスしてばかりで悪いのでそろそろ何か自粛しときます。

422:デフォルトの名無しさん
07/09/29 00:31:40
>>421
学生でここまでできるならすごいと思うぞ。特にわざわざCでトランプとか作る奴も少ないし

423:デフォルトの名無しさん
07/09/29 00:41:31
>>422
今時それくらいじゃすごいなんて思わんけど。むしろやっている奴は
それくらい出来て当たり前。俺なんてC言語を週1の授業で習った程度で
本格的にやらずとも、学生時代は普通にトランプゲームなんて作ってましたが何か?

424:デフォルトの名無しさん
07/09/29 00:48:09
Cを独学で2週目に突入。毎日やってるわけじゃないけどこのスレに書かれてるプログラムくらいは
完璧とは言わないけど少しは読めるようになった。ただこれを作れって言われたらシャッフルするところで
限界

425:デフォルトの名無しさん
07/09/29 00:49:15
>>423
はいはい、すごいすごい

426:デフォルトの名無しさん
07/09/29 00:51:13
あのな、今じゃ普通にプログラム開発環境なんて手に入るし
PCも10年前と比べたら性能は雲泥の差でしょ。それに日本は
生活水準も上がってきて、パソコンなんて簡単に手に入る。
この程度のことを高校生で出来ない奴が情報系の学校に来ても
将来が危ういだけなんだよ。すごいじゃなくて当然。

427:デフォルトの名無しさん
07/09/29 00:54:25
>>426
はいはい、すごいすごい

428:デフォルトの名無しさん
07/09/29 00:55:40
できる奴から見たらたいしたことないし、できない奴から見たら凄い、
で良いじゃん

429:411
07/09/29 00:55:52
わかった cards[i]=r; と cards[i] = cards[r]; が違うのか。理解した。

((n) + 11) % 13 って
n
=0 -> 11
=1 -> 12
=2 -> 0
=3 -> 1
:
=11 -> 9
=12 -> 10
ってことだ! すんません理解できますた。おかしくないです。

430:デフォルトの名無しさん
07/09/29 00:58:31
すごい の基準が主観的、自分基準だからダメなんだよ、成長しない奴ってのは。

431:デフォルトの名無しさん
07/09/29 01:03:04
パソコン以外できなさそうな感じだな

432:デフォルトの名無しさん
07/09/29 01:05:03
>>421
なんとなく勘違いしてそうなので書いておく。

配列を{0}で初期化するってのは、
int array[10] = {0};
ってすると、array[0] ~ array[9] が 0 になる、ってことを期待しているんだろうし
実際にそうなるんだけど、
これは array[0] は {0} で指定されているから 0 になって、
array[1] ~ array[9] は何も指定されていないから 0 になるんだよ。

だから、int array[10] = {1};
ってやっても array[0] だけが 1 になって、
array[1] ~ array[9] は何も指定されていないから 0 だ。

間違って覚えないように。


433:デフォルトの名無しさん
07/09/29 01:07:02
パソコンが出来るという意味すら曖昧だろ。単にパソコンで簡単な操作をするくらいなら
誰でも出来る。しかし、プログラミングが出来る奴でもパソコンの操作が苦手な人もいる。
なんだかんだ言っても、プログラミングには数値計算や理論的な考え方が必要になる。
もっと柔軟な考えを持つんだな。

434:デフォルトの名無しさん
07/09/29 01:11:15
>>433
たいしたソースでなくても、実際に上げてるぶんだけ、口先だけのお前よりよっぽど凄いよ

435:デフォルトの名無しさん
07/09/29 01:12:23
初期化子の足りない要素は0で初期化する。
a[5]={0}はa[0]を初期化するだけで他の初期化子の足りない要素は全部0、
a[5]={0}は{0,0,0,0,0}ってことだしa[5]={0,1}は{0,1,0,0,0}になる

436:デフォルトの名無しさん
07/09/29 01:13:11
>>432
更新せずに書き込んだ俺涙目

437:デフォルトの名無しさん
07/09/29 01:13:59
>>434
> 口先だけのお前よりよっぽど凄いよ
へ?別に 俺より なんて基準はどうでも良いんだけど。
けど、あれくらい俺には10年前には出来ていたが?

438:デフォルトの名無しさん
07/09/29 01:22:16
口でできてたって言うだけなら誰でもできるからな

439:デフォルトの名無しさん
07/09/29 01:26:33
>>437 100%誤作動を起こさないプログラムを作るのは可能だと思いますか?

440:デフォルトの名無しさん
07/09/29 01:29:20
>>423が出来ようが出来まいが凄かろうが凄くなかろうが、
このスレの人間にとっては非常に興味のない事なんだが、空気悪くしたいだけなら他所へ行ってくれ


441:デフォルトの名無しさん
07/09/29 03:33:58
>>410
> srand(time(NULL));
これも細かく厳密に言えば、time()が返す値は time_t 型。
srand() に与える引数は unsigned int 型。
今、BCCのtime.hの中身を見てみたら
typedef long time_t;
と定義されていた。符号ありのlong型。
っつーわけで、こまきゃ~こと言ったがや、srand( (unsigned int)time(NULL) );
ってキャストしておくのが適切だぎゃや。

ちゃんこうまでに
URLリンク(www.bohyoh.com)
URLリンク(www.bohyoh.com)


442:デフォルトの名無しさん
07/09/29 03:36:11
>>440
いや、そうやって食いついてくる負け犬のお前が吠える方が空気を悪くしていると思うんだが?
所詮負け犬の遠吠えだろ?みっともないからやめろ。出来る奴を相手にすると
弱腰になるどころか、詰まらん粗探しを始めて、自分基準で叩き始めるタイプだろ?
出来て当たり前が出来ない奴が何をほざいても、世の中通用しないよ。
ほらっ、路上を見てみろ。当たり前に守る道路交通法を守らない奴が
流れを悪くした方が場の空気、流れが悪くなるだろ?みんながみんな守ってりゃ
流れは悪くならない。しかし、車の数が多くなると、人の数が多くなると
人間ってそういう状況に耐えられなくてね。つい我先にとでしゃばっちゃう奴もいるんだよ。
それが君だ。

443:デフォルトの名無しさん
07/09/29 03:50:51
>>441
正直どうでもいいし、わかってて面倒だから省略してるのがほとんど。

444:デフォルトの名無しさん
07/09/29 03:58:38
よくこんな長文思いつくなw
とりあえず消えないならコテつけろよ

445:デフォルトの名無しさん
07/09/29 04:05:15
>>444
っつかお前みたいに煽る方が鬱陶しい。消えるならお前の方だろ

446:デフォルトの名無しさん
07/09/29 04:06:26
>>443
> 正直どうでもいいし、わかってて面倒だから省略してるのがほとんど。
それが素人志向、なんつって。最近じゃコンパイラ任せな人も少なくないが
知ったかぶるとボロが出て言い訳もみっともないぞ。

447:デフォルトの名無しさん
07/09/29 04:08:10
>>423
はいはい、すごいすごい

448:デフォルトの名無しさん
07/09/29 04:08:23
>>446
お前、いままで散々ボロだしときながらまだ懲りてないの?

449:デフォルトの名無しさん
07/09/29 04:25:33
何kmも信号のないような田舎では道交法を遵守するほうが周りに迷惑な場合もある

450:デフォルトの名無しさん
07/09/29 04:36:22
前にも型変換でボロだしまくったのに、もう忘れちゃったのか

451:デフォルトの名無しさん
07/09/29 04:53:41
すごいからすごい
すっごくすごい

452:デフォルトの名無しさん
07/09/29 05:02:21
なんかすごくて可哀想なのが沸いてるな・・・

Cはド素人だが俺も勉強がてら何か作ってみようかな
何作ろう、簡単そうなカードゲームってなんかないかしら

453:デフォルトの名無しさん
07/09/29 06:01:11
>>439
素人かどうか見極めるのにちょうどいい質問だな

454:デフォルトの名無しさん
07/09/29 06:17:56
> 100%誤作動を起こさないプログラムを作るのは可能だと思いますか?
これはプログラムそのものに問題がある場合もあるが、誤作動を起こす動作環境
(ハードウェア、OS)にも話が及ぶんで、現実的には無理。素人とか以前に
100%誤作動を起こさないものがあると言わなきゃ良いだけだよw

455:デフォルトの名無しさん
07/09/29 06:26:28
極端な話をすれば、100%誤作動を起こさないプログラムも存在することは可能。
ただし、ユーザが誤作動をしていると思わなきゃ良いだけの曖昧さはあり。
まぁ、あの程度のソースで すごい なんていう奴の話は聞き飽きたから、失せろ。

456:デフォルトの名無しさん
07/09/29 06:32:42
>>453
っつか、揺さぶっている奴らは自分らがそれについて見解を示せよ。
他人に質問するばかりで、自分らは何も答えることが出来ないくせに
その程度って評価するのはおかしい。むしろ、自分が知らなかったことを
付き返されてファビョってんだろ?time()にしろsrand()にしろ。女々しいぞ、お前等。

457:デフォルトの名無しさん
07/09/29 06:37:13
煽りじゃなくトランプゲームのソースを書いてくれ

458:デフォルトの名無しさん
07/09/29 06:40:21
>>456
お前441?
引数に代入されるとき型変換されるから、キャストする必要なんて全くないよ

459:デフォルトの名無しさん
07/09/29 06:51:28
あぁ、分かった
昨日7行云々でアホな事書いて煽られた奴が腹いせに荒らしてるのか

460:デフォルトの名無しさん
07/09/29 06:52:54
#include <stdio.h>
int main()
{
TranpuGame();
return 0;
}

461:デフォルトの名無しさん
07/09/29 06:57:14
世の中、完全犯罪は可能ですか?って質問に答えてみろよ?w

462:デフォルトの名無しさん
07/09/29 07:47:42
完全犯罪は露呈しない
だから犯罪にならない
故に完全犯罪は存在しない

463:デフォルトの名無しさん
07/09/29 07:50:46
C++でstaticなメソッドを使って

int main() {
Game::Main::Start();
}

見たいに書けたら格好よぐね?
意味もGameモジュールのメインモジュールをアプリケーションエントリポイントから
起動してるんだなぁってはっきりしてるし

少なくとも俺が昔使ってた
Game()();よりは判りやすい筈w

464:デフォルトの名無しさん
07/09/29 08:06:34
>>463
それが出来ないという罰ゲームのノリがわからない奴だな

465:デフォルトの名無しさん
07/09/29 09:08:12
作りやすいトランプゲームっつーと…ソリティア系かね?
要は一人遊び系
コンピュータの思考ルーチンとか要らんし

クロンダイク(Win付属のソリティアと一緒)とか
イーブン、クローバー、ピラミッド、スパイダー…
ソリティア系だけで結構色々ある

466:デフォルトの名無しさん
07/09/29 14:58:32
いっちゃん単純と思われるのは 神経衰弱

467:デフォルトの名無しさん
07/09/29 14:59:55
>>466
それは言おうとしたが単純なだけに作るのもつまらなく
言えばお前が作れ言われると思って言わなかった。

468:デフォルトの名無しさん
07/09/29 15:05:42
>467
コンピュータの思考ルーチン考えるのは単純じゃないな

...いんちきするならそうでもないがw

469:デフォルトの名無しさん
07/09/29 15:13:20
>>468
神経衰弱には
あるプレイヤーに分かっていて他のプレイヤーには分からないという要素がない。
だからAIが人間的な忘却をエミュレートしない限り勝敗は純粋に確率的なものになるということ。

470:デフォルトの名無しさん
07/09/29 15:14:05
一度開けたカードは全部記憶しておいて組があれば開けて取る
組がなければまだ開けてないカードをランダムに一枚開けて記憶しておいたカードの中に組となるものがあれば開ける
なければもう一枚ランダムに開く

これ以外に何か戦略ある?

471:デフォルトの名無しさん
07/09/29 15:15:36
神経衰弱なのに7並べ思い浮かべてたww

472:デフォルトの名無しさん
07/09/29 15:17:00
> なければもう一枚ランダムに開く

これ、相手に有利になっちゃうだろw
あえてすでにひらいてあるカードを選ぶ、って戦略じゃね?

473:デフォルトの名無しさん
07/09/29 15:20:38
>>472
ならば相手も同じ戦略を取ればよし
進行が遅くなるだけで結果は変わらない

474:デフォルトの名無しさん
07/09/29 15:23:33
なるほど
最後は未知のカードを開けない方がいいのかな?
期待値はゲームの段階や既知のカード数によって変わらないかな?

475:デフォルトの名無しさん
07/09/29 15:23:58
千日手は引き分けですかね?

476:デフォルトの名無しさん
07/09/29 15:25:07
> 進行が遅くなるだけで結果は変わらない

本当に?
2枚目あけたときに 1枚目と同じになるより 過去に開けていたカードと同じなる方が多いと思うんだけど?
次のプレイヤーが有利になるじゃん

477:デフォルトの名無しさん
07/09/29 15:30:49
相手の戦略にあわせるっていう意味じゃないかな?

478:デフォルトの名無しさん
07/09/29 15:31:59
やっぱり477は取り消します


479:デフォルトの名無しさん
07/09/29 16:07:31
いや477のとおりだよ
双方同じ戦略で戦えば有利不利ということもない

480:デフォルトの名無しさん
07/09/29 16:13:46
加えて相手が一枚だけの戦略をとっていることが丸分かりなんだから
論理的に類推しうる要素が全くないんだよ

481:デフォルトの名無しさん
07/09/29 19:52:15
>>462
なるほど、確かに犯罪があったのかどうかも分からないなら
完全犯罪以前に闇に葬られるであろう。では、犯罪があったが
犯人が分からない。指紋など決定的な証拠があるけど捕まらない
といった類ではどうだね?まぁ、あれこれ挙げたらキリがない。
とにかくこの世にはすべてにおいて「完全」「完璧」などないと言って過言ではない。
今もこうして、予期せぬ事故は起こる・・・

482:デフォルトの名無しさん
07/09/29 20:23:12
完全犯罪やバグの無いプログラムを確実に作り出す方法が無いだけで、
どちらも普通に存在するだろ

483:デフォルトの名無しさん
07/09/30 00:53:04
>>482
だからそういうことだって。いちいち 分かりきったことを偉そうに 解説するなよ、青二才

484:デフォルトの名無しさん
07/09/30 22:45:28
バグを抹消することは難しい。ソフトウェアの規模がますます巨大化・複雑化し、
すべての可能性をプログラムすることが不可能になってきたからである。
ある研究報告によれば、5000年間プログラムを実行して1回しか障害を起こさないような小さなバグがシステムの安全性を損ねている。
さまざまな角度から検査を行うのだが、米国の民間航空機のように1時間当たり10億分の1以下の障害発生率が要求されるシステムでは、
こうしたバグを除去するには数十万年間も検査をし続けなければならない

485:デフォルトの名無しさん
07/09/30 22:46:43
>>484は10年以上も前の話だから今はちょっと事情が変わってるかな

486:デフォルトの名無しさん
07/10/01 02:41:58
商用アプリのバグに関して免責事項を無効にする法律を作ればある程度は

487:デフォルトの名無しさん
07/10/01 22:59:11
Visual C++ Express Edition + プラットフォームSDK
Wnidows2000/XP/Vista用 要.NET Framework2.0
ソース+exe
やっつけなんで無駄多し、AIは超手抜き、誰か作って。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

488:デフォルトの名無しさん
07/10/01 23:30:45
Turbo C++ Explorer
Wnidows2000/XP/Vista用 要.NET Framework2.0
ソース+exe
>478のTurbo C++版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

489:デフォルトの名無しさん
07/10/01 23:43:52
ターボってついたら強そうに見えるよな

490:>487
07/10/01 23:55:13
同スート3枚以上のシーケンスなしか?
2上がりありか?

革命は試せなかったけどどうなの?

491:デフォルトの名無しさん
07/10/02 06:16:46
>>490
見た目があんまりショボイと餅平衛がどっか行っちゃうから
C言語でコンソールアプリの条件を満たしたソレほどショボくないUIを提示しただけ。
中身はサンプル程度に組んであるだけ。
AIに至っては何の工夫も無く兎に角出せるカードを出してるだけ。
同スート3枚以上、革命…そんなローカルルールは知らん。
2上がりあり。つーか作りこんでないから最低限のチェックしか入ってない。
改造して使いまわしやすいように作ったつもりだしツールもフリーで手に入るVC++とTurboC++のどっちでもOKにした。
#unicodeの扱いさえわかればBCCでもgccでもビルド出来る筈だしスートの表示を諦めれば古いコンパイラでもビルド出来る。
なので中身の作りこみは他の奴に任せる。

492:デフォルトの名無しさん
07/10/02 06:20:53
環境依存か

493:デフォルトの名無しさん
07/10/02 18:20:10
タロットカードへの拡張に備えて「正位置・逆位置」の概念を導入する

494:デフォルトの名無しさん
07/10/03 00:02:00
ところで餅平衛って何?
もちひらまもる?


495:デフォルトの名無しさん
07/10/03 03:30:30
mihimaru GTの阿久津博子さんが好みです。だから何やて?言ってみたかっただけっす。
スレ違いすまそ。

496:デフォルトの名無しさん
07/10/03 04:16:50
>>494
文脈から一見さんあたりのことを言っているのだろう、
新語か?とぐぐってみたが見つからない。
でモチベーションをゆとりっぽく略したものと結論付けた。

今時C使ってCUIでやろうって>1の時点で
モチベーションは限りなくゼロに近いんだから
いまさらどうこう言っても意味がない。

497:デフォルトの名無しさん
07/10/05 19:38:38
誰もいないな?

498:328
07/10/06 00:53:52
シーケンスとペア、重なって持っている場合
どんな戦略がいい?
出せるなら出す、ってなんだかなぁ...

あと、場より多い枚数のペアがある時、多い枚数のシーケンスがある時
とか...

いきづまってまつ

499:デフォルトの名無しさん
07/10/06 19:40:01
基本ルールがよくわからんのだよ

500:デフォルトの名無しさん
07/10/06 22:02:37
>>498
現時点で場に出たカードを除いた状況で、他のプレーヤーがより強いカードを
出せる確率を計算するようにしたよ。

場のカードを全部数えるのかよコンピュータは、とは思うけど、プロ棋士同士で
お遊びでやった大富豪で覚えてた、って話もあったから有りかと。

501:デフォルトの名無しさん
07/10/06 22:20:01
人とプレイするときも、絵札以上は覚えとくから別に構わないと思う

502:デフォルトの名無しさん
07/10/06 22:50:31
>>500
で,強くなった?

503:デフォルトの名無しさん
07/10/06 23:34:17
大富豪最強AIでも作るのか?

504:デフォルトの名無しさん
07/10/06 23:39:27
勝負するたびに成長するコンピューターとかどんだけwwww

505:デフォルトの名無しさん
07/10/07 00:46:32
>504
少年漫画の世界にはいそうだなw

506:デフォルトの名無しさん
07/10/07 01:08:46
大富豪で世界征服か

507:デフォルトの名無しさん
07/10/07 01:49:27
悪のマッドサイエンティストをやりたかった
自称主人公を科学の力でこてんぱんにしてくやつ

508:デフォルトの名無しさん
07/10/07 03:16:57
コロコロとかボンボンでありそうだなwwww

509:デフォルトの名無しさん
07/10/07 18:16:09
>>502
結構。人並みの対戦能力はある。

510:デフォルトの名無しさん
07/10/07 23:39:54
>500
「他のプレーヤーがより強いカードを出せる確率を計算する」って、そんでどうするの?
より強いカードを出せる確立が高い場合は、自分は出さない、って事?
場に出てないカードを考慮するだけ? 他のプレーヤーの持ち枚数とかは何か考慮している?

511:デフォルトの名無しさん
07/10/08 00:14:26
>>510
そこで得られた確率を、>>281の思考ルーチンに突っ込むの。
要するに、>>500は認知、>>281で判断。

>他のプレーヤーの持ち枚数とかは何か考慮している?
当然。相手が一枚しかないなら、階段出せば相手は嫌でもスルーだし。

512:デフォルトの名無しさん
07/10/08 00:54:04
>281
404 Not Found


513:デフォルトの名無しさん
07/10/08 13:07:10
今度こそ誰もいないな

514:デフォルトの名無しさん
07/10/08 13:10:33
うむ

515:127
07/10/08 20:52:17
誰もいないようなのでしばらく独り言をば

まずケースに入ったトランプを用意しよう。
ケースの中にはトランプが順番に入っている。
A,2,3,…Q,Kのランク順でスペード,ハート,ダイヤ,クラブのスート順だ。
誤解のないように例を出すと,スペードのKの次はハートのAになる。
またクラブのKの次にはJOKERが二枚入っている。
この計54枚のカードを使ってゲームをするわけだ。

516:デフォルトの名無しさん
07/10/08 20:55:29
ほほう、それで

517:デフォルトの名無しさん
07/10/08 21:34:11
構造体で作ったらあと楽じゃない?

518:127
07/10/08 21:40:59
私以外まだ誰もいないようだが話を続けよう。

さて,大富豪というゲームを君たちは知っているかな?
1970年代に日本のトーキョーで生まれたとされ,かつては大貧民と呼ばれたゲームだ。
プレイヤーは複数で,ゲームの最初に彼らに等しくカードを全て配る。
等しくと言ってもプレイヤーの数によって端数が出る。
端数の処理の方法はいろいろあるが,今回は端数を気にせず最後まで順に配り終えることにしよう。

おっと,言い忘れたが,今回シャッフルはしない。

519:デフォルトの名無しさん
07/10/08 21:53:09
まだ君以外誰一人とここにはいないので、
そのまま話を続けましょう

520:127
07/10/08 22:43:16
各プレイヤーは自分に配られたカードの中から
役―1枚,2枚以上の同位札,もしくは3枚以上の同一スートによるシーケンス(※注:連番)―を作り,順次場に出していく。
持っているカードが無くなれば,あがりとなってプレイの輪から抜けることができる。
残りのプレイヤーが一人となった時点で1ゲーム終了となり,あがりとなった順に順位が決定する。
最後に残ったプレイヤーは最下位だ。

場とは役を出す場所であり通常1ゲームに複数の場が作られるが同時に複数の場は存在できない。
場が破棄されることを場が流れると言い,場が流れたあとは新しい場が1つ作成される。
ゲーム開始時に最初の場が1つ作成される。
場に最初に役を出すプレイヤーを親と呼び,その場に出すことの出来る役の種類を決定できる。
最初の場の親を決定する方法は,これも様々な方法があるが,今回はダイヤの3を配られたプレイヤーとする。

カードは3が最も弱く,続いて4,5,…,Q,K,ときてA,2の順に強くなる。
そしてJOKERは2より強く,またワイルドカードとしても使用できる。
カードの強さに遵って役の強さが決まり,場に出す役は場の役―最後に場に出された役―より強くなければならない。
出せる役がない場合はそのプレイヤーはパスとなり次のプレイヤーの番となる。

場のプレイヤー―場の役を出したプレイヤー―以外のプレイヤーが全てパスとなったとき,
その場は流れ,そのプレイヤーが次の場の親となる。
場のプレイヤーがあがりとなり,かつ残りのプレイヤーが全てパスとなったとき,
その場は流れ,そのプレイヤーの前に場のプレイヤーであってまだあがりでないプレイヤーが次の場の親となる。

基本的なルールはこんなところだ。
何か質問は?
では次回。

521:デフォルトの名無しさん
07/10/09 01:24:26
革命ルールはござらんのか!
CPUの人間的思考の実装方法はまだか!

522:デフォルトの名無しさん
07/10/10 01:12:11
基本戦術

既に場に出ているカードを覚える

Q以上のペアは強い
2はペアで使うよりも1枚ずつで2回使った方が有利
 崩すときはなるべく強いペアをくずす
特に、弱いペアは絶対崩してはいけない

シークエンスは、原則として弱い(10以下)ものの方が使いやすい
4枚以上のシークエンスは強い
3枚組とシークエンスが複合している場合は、シークエンス+ペアが鉄則
強いもので、特にペアと複合している場合(例:K、A,A,2)は、むしろばらした方が強い

シークエンスとペアが複合している場合は、状況に応じて、使い分ける
ペアが一組(例:6,7,7,8)ならば、シークエンス優先
ペアが二組(例:6,6,7,8,8)ならば、微妙
ペア3組(例:6,6,7,7,8,8)ならば、ペア優先

523:127
07/10/13 18:56:32
ここにはもう誰もいないのだ

524:デフォルトの名無しさん
07/10/13 18:56:53
阻止

525:127
07/10/13 22:52:16
そして誰もいなくなった

526:デフォルトの名無しさん
07/10/13 22:52:48
阻止

527:127
07/10/13 23:00:25
プログラマーには精神病を患う者が多いと言われるが
その病状の一つに自分が誰かに監視されているといった妄想がある

そうここには
誰もいない
誰もいない
誰もいない

528:デフォルトの名無しさん
07/10/13 23:09:56
ものすごく寒いことになってるね

529:127
07/10/13 23:45:04
自分の内には誰もいない
従って自分の外にも誰もいない

誰かがいるという幻想こそが
不幸の根源なのだ

530:デフォルトの名無しさん
07/10/13 23:46:18
みょん

531:デフォルトの名無しさん
07/10/14 00:26:02
リアルタイムで中二病患者を見たのは久しぶりだわ

532:127
07/10/14 09:51:02
このスレに誰もいませんよ

533:127
07/10/14 22:38:02
誰もいないことを確信した

534:デフォルトの名無しさん
07/10/14 22:55:39
これが噂の、かまってちゃんか

535:127
07/10/14 23:08:35
誰もいないということを疑う余地はない

536:127
07/10/14 23:22:38
誰も居なかった

537:デフォルトの名無しさん
07/10/15 12:56:27
そんなことより、大富豪作りやがれ

538:127
07/10/15 19:47:08
何故誰もいないのか
実は疑問がないわけではない

539:デフォルトの名無しさん
07/10/16 01:33:22
ほほう、それで

540:127
07/10/16 03:00:00
さて誰もいなくなったところでそろそろ本編をば

最初はシンプルに行こう。
ややこしいことは無しだ。
プレイヤーの数は5人とし,全て同じAIを使用する。
カードは1デッキとジョーカー2枚の計54枚とし,毎回ゲームのはじめにシャッフルする。
初回は最初に登録されたプレイヤーからディールする。
そしてダイヤの3を持ったプレイヤーを最初の場の親としてゲームを開始する。
初回以降は前回最下位のプレイヤーの次のプレイヤーからディールする。
そして前回最下位のプレイヤーを最初の場の親としてゲームを開始する。
役はシーケンスが3から5枚,同位札が2から5枚,そして1枚札,とする。
AIが場の親のとき,シーケンス,同位札,1枚札,の順に,枚数のより多い役のうち,弱い役から出していく。
AIが場の親でないとき,場の役と同種でより強く,かつ手持ちのカードで作れる最も弱い役から出していく。
またジョーカーをワイルドカードとして使用可能なときは使用する。
同様にジョーカーを同位札,または一枚札として使用可能なときは使用する。

541:デフォルトの名無しさん
07/10/16 15:47:13
最初でシンプルに行くなら、
・人数は2人でジョーカーは無しで52枚
・始める人も固定、順番も同じ
・カードのシャッフルなんてしない
辺りが適切では無いか?

流れをまず作って、他は後から付け加えると楽ジャマイカ?

542:127
07/10/16 18:11:36
仮に誰かがいたとしても
誰であるかも分からないのに
誰かがいるという認識が間違いでないと
どうして言えよう

543:デフォルトの名無しさん
07/10/16 19:11:11
その微妙なコテハンはなんだい?

544:127
07/10/16 20:35:00
ここで面白いのは自己と他者の区別は
(厳密にはそうではないが実用上)
自己の認識に委ねられているということだ

すなわちそれが自分の書いたものであるという記憶によってのみ
自己の他者との境界を認識しうるのである

加えてそれが自分の書いたものであるという証明が自助努力の範囲内において不可能であるが故に
誰もその存在を主張する以上のことはできず
したがってここには誰もいないという認識を誰も否定することは出来ないのである


 「匿名非同期コミュニケーションの真実(非売)」より引用

545:127
07/10/16 20:39:27
じゃあ俺も

546:127
07/10/17 21:12:19
そうこうしているうちに
本当に誰もいなくなってしまった

547:デフォルトの名無しさん
07/10/18 02:56:09
文字列に強さを持たせるのがわkらん

548:127
07/10/18 03:04:03
さてそろそろ続きをば

シンプルという点に疑問の余地ありとの意見だが,
たしかに上記のルールでは各ゲームごとの独立性が不十分であり,
出発点とするには不適切かもしれない。
そこで,ディールの開始プレイヤーと最初の場の親に関するルールについて検証してみよう。

まず以下のことについて確認しておく。
全てのプレイヤーが同一のアルゴリズムに従ってプレイするとき,
その結果は各プレイヤーの持ち札と最初の場の親によって一意に決定される。
ここで,各プレイヤーの持ち札と最初の場の親が完全にランダムに決定されるとき,
任意のプレイヤーが任意のランクになる確率は等しくなる。

549:デフォルトの名無しさん
07/10/18 03:07:49
こんな大袈裟に気持ち悪いレスで熱弁してるくらいだから、さぞ素晴らしいものを作ってくれるんだろうな

550:デフォルトの名無しさん
07/10/18 03:21:54
口だけ野郎の典型的パターンに何を期待してるんだよ

551:127
07/10/18 04:11:40
私は私が常に不真面目であることを知っている
故に私は私の言葉を全く信用していない

今回は,ゲーム回数を一万回とし,各ゲームでの各プレイヤーのランクを記録した。
プレイヤーをTestA,TestB,TestC,TestD,TestEの順に登録した。
ランクは0から4までの値であり,値のより大きいランクを上位とする。

1.
各ゲームのディールの開始プレイヤーをローテーション制に
各ゲームの最初の場の親をダイヤの3を持つプレイヤーにした場合

結果を以下に示す。
行を各ゲームのランク,列をそのゲームの次のランクとし,該当するゲームの回数を計測した。
また各ランクとなったゲームの回数を計測し,これを列Totalに示す。
括弧内の数値は各行の各計測値を各行のTotalの値で割った値である。
これは現在のランクが決定しているとき次回のランクへ遷移する統計的確率を表す。

********************** Players Record (PlayCount=10000) ***********************
___________________________ Player TestA Record ___________________________

(省略されました・・全てを読むことはできません)

___________________________ Player TestE Record ___________________________
    [0](-----) [1](-----) [2](-----) [3](-----) [4](-----) Total
[0] : 398(0.201) 389(0.196) 398(0.201) 409(0.206) 390(0.197) 1984
[1] : 387(0.195) 401(0.202) 357(0.180) 430(0.217) 406(0.205) 1981
[2] : 406(0.199) 425(0.208) 426(0.209) 391(0.191) 394(0.193) 2042
[3] : 418(0.209) 339(0.169) 460(0.230) 379(0.189) 408(0.204) 2004
[4] : 374(0.188) 428(0.215) 401(0.202) 395(0.199) 391(0.197) 1989

552:127
07/10/18 19:43:52
自分が本当に理解しているのは過去の自分だけである

おっと言い忘れたが,最初のゲーム開始時のプレイヤーのランクは全て0だ。
それから連番は1.ではなく(1)に訂正する。

さて上記の結果からは,Totalの値が全て2000付近であることが分かる。
ゲーム回数は10000であるから各ランクになる確率は等しく1/5ということになる。
つまり,勝負は完全に時の運ということだ。
更に,各ランクから各ランクへの遷移確率も全て0.2付近である。
つまり,現在のランクと次のゲームのランクとの相関はないということを意味する。

大富豪がゲームとして成立するには
人間の感情的な部分を考慮し,それをある程度実現するルールが必要である。

(a)誰も最下位にはなりたくない。最下位になったとしたら出来るだけ早く最下位を脱したい。
(b)誰もが一番になりたい。一番になったとしたら出来るだけ長く一番であり続けたい。

この二つを実現するルールは既に存在する。
それらについて統計的確率の側面から検証してみよう。

553:127
07/10/19 20:37:11
誰もいないか

554:デフォルトの名無しさん
07/10/19 23:59:32
いるけど

555:デフォルトの名無しさん
07/10/20 00:17:55
いないか

556:127
07/10/20 00:18:51
誰もいないと言ったのだ

557:127
07/10/20 00:46:36
さてと

Totalの各値をゲーム回数10000で割った値をランク率,カッコ内の値をランク遷移率と呼ぶことにする。

(2)
各ゲームのディールの開始プレイヤーを最初に登録されたプレイヤーに固定し
各ゲームの最初の場の親をダイヤの3を持つプレイヤーにした場合

結果を以下に示す。

********************** Players Record (PlayCount=10000) ***********************
___________________________ Player TestA Record ___________________________

(省略されました・・全てを読むことはできません)

___________________________ Player TestE Record ___________________________
    [0](-----) [1](-----) [2](-----) [3](-----) [4](-----) Total
[0] : 411(0.206) 407(0.204) 416(0.209) 368(0.185) 389(0.195) 1991
[1] : 377(0.193) 380(0.195) 363(0.186) 400(0.205) 432(0.221) 1952
[2] : 385(0.196) 374(0.190) 401(0.204) 407(0.207) 402(0.204) 1969
[3] : 399(0.199) 408(0.204) 362(0.181) 421(0.210) 411(0.205) 2001
[4] : 418(0.200) 383(0.184) 428(0.205) 405(0.194) 453(0.217) 2087

ディールの開始プレイヤーを最初に登録されたプレイヤーに固定した場合,
54 = 11 * 4 + 10
より最後に登録されたプレイヤーの持ち札が常に他のプレイヤーの持ち札より一枚少なくなる。
もしディールの開始プレイヤーがゲームの勝敗に影響するならば,
(1)の場合と比べてプレイヤーTestEの勝敗に偏りが生じると予想される。
この結果からはプレイヤーTestEのランク率及びランク遷移率に顕著な変化は認められない。
よってディールの開始プレイヤーの決定に偏りが生じてもゲームの勝敗に影響しないと言える。

558:127
07/10/20 15:21:54
今日も誰もいない
当たり前か

559:デフォルトの名無しさん
07/10/20 19:00:08
具体的なコードを出したまへ

560:127
07/10/20 20:22:05
誰かがいるということがそれほど重要だろうか

(3)
初回ゲームのディールの開始プレイヤーを最初に登録されたプレイヤーに
初回ゲームの最初の場の親をダイヤの3を持つプレイヤーに
初回以降のゲームのディールの開始プレイヤーを前回のゲームの最下位プレイヤーの次のプレイヤーに
初回以降のゲームの最初の場の親を前回のゲームの最下位プレイヤーにした場合

結果を以下に示す。

********************** Players Record (PlayCount=10000) ***********************
___________________________ Player TestA Record ___________________________

(省略されました・・全てを読むことはできません)

___________________________ Player TestE Record ___________________________
    [0](-----) [1](-----) [2](-----) [3](-----) [4](-----) Total
[0] : 129(0.064) 264(0.131) 429(0.214) 550(0.274) 637(0.317) 2009
[1] : 509(0.255) 433(0.217) 365(0.183) 381(0.191) 307(0.154) 1995
[2] : 458(0.232) 433(0.220) 371(0.188) 391(0.198) 319(0.162) 1972
[3] : 473(0.229) 439(0.212) 417(0.202) 373(0.180) 365(0.177) 2067
[4] : 439(0.224) 426(0.218) 390(0.199) 373(0.191) 329(0.168) 1957

この結果からはランク遷移率に明らかな偏りが認められる。
ランク0のランク遷移率は遷移先のランクと正の相関がある。
その他のランクのランク遷移率は遷移先のランクと負の相関がある。
ランク0はより高いランクへ遷移しやすくその他のランクはより低いランクへ遷移しやすいと言える。
ランク0からランク0へのランク遷移率は最も低い。
(2)の結果よりディール開始プレイヤーは結果に影響しないことが分かっている。
よって「初回以降のゲームの最初の場の親を前回のゲームの最下位プレイヤーにする」というルールが
ランク遷移率に偏りが生じた原因であると考えられる。

561:デフォルトの名無しさん
07/10/21 00:27:12
わっふるわっふる

562:デフォルトの名無しさん
07/10/22 20:57:59
わっふるわっふる

563:デフォルトの名無しさん
07/10/23 00:00:41
わっふるわっふる

564:デフォルトの名無しさん
07/10/23 17:33:02
わっふるわっふる

565:127
07/10/24 01:17:00
よし誰もいないな

566:デフォルトの名無しさん
07/10/24 01:32:17
みたいだな!

567:127
07/10/24 01:44:54
>>561-564
俺のスレ荒らすなボケ

568:127
07/10/24 02:05:51
誰もいないというのに誰に話しかけようというのだろうか

大富豪ではゲーム開始時に下位ランクのプレイヤーと上位ランクのプレイヤーとの間でカード交換を行うというルールがポピュラーである。
一般的に,下位ランクのプレイヤーを不利に,上位ランクのプレイヤーを有利にするルールであり,交換の方法にも様々な種類があるが,
ここでは,ランク0がランク4に手持ちの札のうち最強の札2枚を,ランク4がランク0に手持ちの札のうち最弱の札2枚を,
ランク1がランク3に手持ちの札のうち最強の札1枚を,ランク3がランク1に手持ちの札のうち最弱の札1枚を与えることにしよう。

(4)
各ゲームのディールの開始プレイヤーをローテーション制に
各ゲームの最初の場の親をダイヤの3を持つプレイヤーに
初回以降のゲーム開始時にカード交換を行った場合

結果を以下に示す。

********************** Players Record (PlayCount=10000) ***********************
___________________________ Player TestA Record ___________________________

(省略されました・・全てを読むことはできません)

___________________________ Player TestE Record ___________________________
    [0](-----) [1](-----) [2](-----) [3](-----) [4](-----) Total
[0] : 377(0.190) 522(0.263) 612(0.308) 338(0.170) 135(0.068) 1984
[1] : 285(0.140) 508(0.250) 558(0.275) 431(0.212) 247(0.122) 2029
[2] : 400(0.197) 434(0.214) 440(0.217) 434(0.214) 322(0.159) 2030
[3] : 509(0.261) 332(0.170) 263(0.135) 399(0.205) 448(0.230) 1951
[4] : 412(0.205) 233(0.116) 158(0.079) 349(0.174) 854(0.426) 2006

この結果からはランク遷移率に明らかな偏りが認められる。
ランク0とランク1とランク2ではランク4への遷移率が最も低く,ランク3とランク4ではランク2への遷移率が最も低い。
ランク0とランク1とランク2ではランク2への遷移率が最も高く,ランク3ではランク0への遷移率が最も高く,
ランク4ではランク4への遷移率が最も高い。
(1)の結果よりカード交換がランク遷移率に偏りが生じた原因であると考えられる。

569:デフォルトの名無しさん
07/10/24 06:42:27
>>788
これがエラーメッセージです。

Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException

at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
at $2.actionPerformed(Unknown Source)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)





570:デフォルトの名無しさん
07/10/24 11:52:18
誤爆の上にjavaのスタックトレース全貼りか

571:デフォルトの名無しさん
07/10/24 18:19:19
良スレあげ

572:デフォルトの名無しさん
07/10/25 01:30:07
カードを構造体でメンバをマークと数字の二つを作って数字だけ比較するってやり方でいこうかと思ったら構造体
を理解してない俺には無理だった

573:デフォルトの名無しさん
07/10/25 03:46:40
構造体を理解していないのにどうして構造体で実装しようと思い立ったんだ?

574:デフォルトの名無しさん
07/10/25 07:54:27
「構造体という素敵なものがあるらしい」
という程度の認識はあったからじゃね?
放射線とかよく分からないけど原発は欲しいよね、素敵だね、みたいな。

575:デフォルトの名無しさん
07/10/25 08:51:55
そうだねプロテインだね

576:127
07/10/25 11:32:34
うんこー

577:127
07/10/31 20:01:52
誰もいない
それが真実であり現実だと認めたくない心が私の甘さの元凶だ
夢で終わると分かっている夢は語る価値を持たない
目的は果たされるべきだ

578:127
07/10/31 20:04:46
うんこ

579:デフォルトの名無しさん
07/10/31 20:07:32
オナニーしたい

580:127
07/10/31 20:09:14
おっとコテ忘れ

581:579
07/10/31 20:21:21
去ね

582:579
07/10/31 20:22:01
アンカー忘れた

>>880
去ね

583:579
07/10/31 21:24:01
アンカー間違えたw

>>580
去ね

584:579
07/10/31 21:53:13
>>581-583
おめー誰だよ

585:579
07/10/31 22:16:52
>>584
>>127
人の名を語るな去ね

586:127
07/10/31 22:25:53
と、自演してみた。

587:579
07/10/31 22:40:30
>>586
頭大丈夫かまじで

588:127
07/10/31 22:45:43
心配ありがとう^^

589:デフォルトの名無しさん
07/10/31 22:54:40
アホが来て一気に糞スレになったな

590:127
07/10/31 22:55:37
これからもがんばります^^

591:デフォルトの名無しさん
07/10/31 22:56:02
林先生に診てもらったら良いかもね

592:127
07/10/31 22:57:28
それはいい考えですね

593:579
07/10/31 23:08:53
まああれだ、正直すまんかった

594:デフォルトの名無しさん
07/11/01 23:10:21
大富豪のコンピュータで強いカードから出す、弱いカードから出す、ランダムに出す、
他に何か戦略ってある?

595:デフォルトの名無しさん
07/11/01 23:10:52
ゲーム製作板で聞いたら教えてあげるよ

596:デフォルトの名無しさん
07/11/01 23:50:36
>>594
誰にも負けない

597:デフォルトの名無しさん
07/11/02 00:48:15
大富豪は詰め将棋に近い感覚があると思う。
相手のカードが見えないので、もちろん運頼みの側面もあるのだが。

例えば手持ちカードが「899J22」とあって、今場のカードが6とかだったら、

8で切る
-> 9のペアを出す
-> 2のペアはまず他から出ないので自分で切る
-> Jを捨てて和了り

となるわけだ。
この状態の手持ちカードを、まあ「必至」と呼ぼうか。
もちろん相手の手札との絡みもあるので、確率的なものになると思う。
上の例で言えば、2のペアを持っている敵がいて、自分より先に出されてしまう場合もある。
自分以外のプレイヤーが4人いれば1/4の確率で2のペアを持っている奴がいるので、「75%の必至」みたいに自分の手札を評価できることになる。
まあジョーカーとか、ゲーム開始前のカード移譲とか色々あるのでややこしいとは思うが。

で、この考え方で行くと、プレイヤーのすべきことは、より高確率な必至を作れるカードの残し方を考えながら捨てていく、ということになる。
ということで、AIを作る場合には、残すカードを評価する評価関数を組み立ててやれば良いんじゃないかな。と酔っ払いの俺が思った。

598:デフォルトの名無しさん
07/11/05 12:41:24
ブーン

599:デフォルトの名無しさん
07/11/06 23:45:42
Java房の俺がちょっとずつC言語を勉強しながら書いてみる。

#define CARD_SUIT_SPADE 1
#define CARD_SUIT_HEART 2
#define CARD_SUIT_CLUB 3
#define CARD_SUIT_DIAMOND 4

typedef struct {
unsigned int suit;
unsigned int num;
} Card;

Card *newCard(unsigned int suit, unsigned int num) {
Card *card;
if(suit<1 || 4<suit) return NULL;
if(num<1 || 13<num) return NULL;
card = (Card *)malloc( sizeof(Card) );
card->suit = suit;
card->num = num;
return card;
}

疲れた。続きは明日。

600:デフォルトの名無しさん
07/11/07 00:53:27
日付が変わった。
this は C++ コンパイラで怖いか? self 借りとこ。

char CARD_NUM_SYMS[] = " A234567890JQK";
char CARD_SUIT_SYMS[] = " shcd";

char getCardNumSym(Card *self) {
unsigned int num;
if(self==NULL) return '\0';
num = self->num;
if(num<1 || 13<num) return '\0';
return CARD_NUM_SYMS[num];
}
getCardSuitSym(Card *self) {
unsigned int suit;
if(self==NULL) return '\0';
suit = self->suit;
if(suit<1 || 4<suit) return '\0';
return CARD_SUIT_SYM[suit];
}

601:デフォルトの名無しさん
07/11/07 01:02:42
戻り値の型書き忘れ。charだ。

602:デフォルトの名無しさん
07/11/08 21:35:22
SuitとNumをtypedefしとこ。先にやっときゃ良かった…

typedef unsigned int Suit;
typedef unsigned int Num;

void putCard(Card *self) {
printf( "%c%c", getCardSuitSym(self), getCardNumSym(self) );
}

char *getCardSym(Card *self, char buffer[], size_t bufsize) {
unsigned int i;
if(self == NULL) return NULL;
if(bufsize < 2) return NULL;
buffer[0] = getCardSuitSym(self);
buffer[1] = getCardNumSym(self);
for(i=2; i<bufsize; i++) buffer[i] = '\0';
return buffer;
}

603:127
07/11/09 19:49:53
結局誰もいない

(5)
初回ゲームのディールの開始プレイヤーを最初に登録されたプレイヤーに
初回ゲームの最初の場の親をダイヤの3を持つプレイヤーに
初回以降のゲームのディールの開始プレイヤーを前回のゲームの最下位プレイヤーの次のプレイヤーに
初回以降のゲームの最初の場の親を前回のゲームの最下位プレイヤーに
初回以降のゲーム開始時にカード交換を行った場合

結果を以下に示す。

********************** Players Record (PlayCount=10000) ***********************
___________________________ Player TestA Record ___________________________

(省略されました・・全てを読むことはできません)

___________________________ Player TestE Record ___________________________
    [0](-----) [1](-----) [2](-----) [3](-----) [4](-----) Total
[0] : 236(0.121) 401(0.205) 640(0.327) 461(0.236) 217(0.111) 1955
[1] : 173(0.087) 427(0.214) 665(0.333) 481(0.241) 253(0.127) 1999
[2] : 407(0.201) 450(0.222) 404(0.199) 408(0.201) 357(0.176) 2026
[3] : 578(0.294) 405(0.206) 194(0.099) 328(0.167) 463(0.235) 1968
[4] : 560(0.273) 317(0.154) 123(0.060) 290(0.141) 762(0.371) 2052

(以下略)


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