[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/02 10:04 / Filesize : 194 KB / Number-of Response : 920
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

おまいら最強のリバーシプログラムしてみろよ part2



1 名前:デフォルトの名無しさん [2007/01/22(月) 06:13:18 ]
まずBearRevのDLLを作る
そして世界最強っぽいリバーシプログラムWZebraを倒すスレ
期間は三ヶ月以内で頼む
どんどんアイデアとプログラムを頼む

本格的リバーシ BearRev
www.vector.co.jp/games/soft/dl/win95/game/se098822.html

最強っぽいリバーシプログラムWZebra
www.radagast.se/othello/download.html

姉妹スレ おまいら最強の将棋プログラムしてみろよ part5
pc8.2ch.net/test/read.cgi/tech/1109307327/l50

175 名前:初心者 mailto:sage [2007/01/23(火) 22:42:27 ]
if (mode[tsu[1]] == 1) {
mode[tsu[1]] = 0;
mode[tsu[1] + 1] = 1;
funcA();
}
else if (hash[x].a <= g && g <= hash[x].b) {
funcA();
}


funcA()
{
if (kar[tsu[1] + 1] < 1 && kt == 0) hmove();}
move();
goto BB//糞;
}


176 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 23:29:38 ]
最適化とかは動くものができてからの話なわけで

177 名前:デフォルトの名無しさん [2007/01/23(火) 23:40:35 ]
>>176
>>1は質の高いアルゴリズムによる高速化と、最適化による高速化がごっちゃになっているのかもしれない

178 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 00:04:10 ]
ここまで来るとただの馬鹿だな
根拠の無い自信でつっぱねるだろうが

179 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 00:36:33 ]
配列の先頭とそれ以外で用途が違うから読みにくい

180 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 01:14:36 ]
>>1さん 俺は弱いリバーシしか作ったことないけれど、
実現確率が正確に求まるとは到底思えない。矛盾してないかい。
自分的には確率使うなら囲碁のモンテカルロ法とかのが
ずっと良さそうな気がする。
ttp://www.geocities.jp/hideki_katoh/ (加藤さんの翻訳)

181 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 01:59:10 ]
>>前スレ1
お願いだから将棋に帰ってください。
これ以上リバーシを冒涜しないでください。
pc10.2ch.net/test/read.cgi/tech/1109307327/

182 名前:1 [2007/01/24(水) 02:35:27 ]
まだ、人の意見を取り入れられるところまで行ってないんです
根本的にまともに動作してないのに、体裁だけ整えてあとは他人に任せるとかは駄目でしょ?
まともに動作したらより良くするために意見をどんどん取り入れますよ

>>175
if (hash[x].a <= g && g <= hash[x].b) は、ifを分割した方が速度が出るとおもいますよ

>>180
実現確率を正確に求めてないんです
評価値順に手を並び替えて一手目50%、二手目25%とか半分づつにしているんです
評価値の高いものを深く読むということに使っているんです

183 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:40:18 ]
速度が出るとおもうじゃなくて
実際出るかどうかだろ?



184 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:43:39 ]
>実現確率
>一手目50%、二手目25%
適当にこんな数字決めてないでMPC使えばいいじゃん

185 名前:1 [2007/01/24(水) 02:44:27 ]
>>183

if(A) if(B) { C; }の方が、if(A && B) { C; }より演算数が少なくなるため
速いおもいますが 実際にはやっていませんが...どうなんでしょうか?

186 名前:1 [2007/01/24(水) 02:47:05 ]
MPCとはなんですか?

187 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:49:12 ]
>>185
www.st.rim.or.jp/~phinloda/cqa/cqa7.html

188 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:50:07 ]
>>186
www.cs.ualberta.ca/~mburo/publications.html

189 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:53:01 ]
前も同じリンク教えたのに読んでなかったのかよ

190 名前:デフォルトの名無しさん [2007/01/24(水) 02:53:35 ]
今の段階でアドバイスしてる多くは、より良い動作を実現させるための助言じゃなくて、
まず動かすための、プログラムを見易くするためのアドバイスが多いと思うんだけど、
まともに動かせるように助言してくれてるのに、あえて無視してるのか?まぁなんてことでしょう!

191 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:55:13 ]
>if(A) if(B) { C; }の方が、if(A && B) { C; }より演算数が少なくなるため
>速いおもいますが 実際にはやっていませんが...どうなんでしょうか?
そう思うのは勝手ですが、そんなゴミを垂れ流さないでください。
A && B と書いたとき、Aが偽だとBは評価されません。
つまり、 A && B はif (A) B と概ね等価になります。
>187のリンク先の下の方を参照してください。

192 名前:デフォルトの名無しさん [2007/01/24(水) 02:59:14 ]
コンパイラの最適化でもそういうとこってうまいことやってくれるんでしょ?

193 名前:1 [2007/01/24(水) 03:00:51 ]
>>188
ありがとう読んでみます

ifはわからないのでrand()を使って実験してみる



194 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 03:01:21 ]
取り敢えずのゴールは
>>1の考えるアルゴリズム積んだリバーシを動かすこと」
(WZebraを倒すとかは取り敢えず後回し)

「アルゴリズムは完成した」 (前スレ>>190での、>>1の発言)
「考えているアルゴリズムに変更の余地はない。その動作を正確に実現するコードを作るだけ」 (前スレ>>806での、>>1の発言)

現状として、
>>1はコーディングが出来ない (または、限りなく下手)
そして、このスレには>>1のアルゴリズムは知らないが、コーディングを出来る人が揃っている。



何故>>1が 「アルゴリズムの概念だけを公開して、コーディングは他人に任せよう」
と思いつかないのか、そしてそれを指摘されても無視し続けるのか、理解出来ない。 (←以前誰かが指摘してた気がする
「数学やってる」っていってるくせに、三段論法とか知らないのかな?
まあ論理学出来てる人にも見えないが……

195 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 03:41:36 ]
>>185
てきとーに測定してみた。

a=0, b=0: if(a && b): 1.0 clocks, if(a) if(b): 1.0 clocks
a=0, b=1: if(a && b): 1.0 clocks, if(a) if(b): 1.0 clocks
a=1, b=0: if(a && b): 2.0 clocks, if(a) if(b): 2.0 clocks
a=1, b=1: if(a && b): 4.0 clocks, if(a) if(b): 4.0 clocks

どっちも同じだね。

196 名前:1 [2007/01/24(水) 03:59:40 ]
もしかしたらまとめた方が速いかも....
実験では同速度だったけど
分岐予測を当てやすくさせるためにはまとめた方がよさそう

197 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 04:10:28 ]
バグ取りを先にやれよ
バグを含んだまま機能の追加変更すんな

198 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 04:13:03 ]
やるなと言えばやる
やれと言えばやらない
どうしようもないな

199 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 07:46:01 ]
一応幾つかの関数はリファクタリングしてすっきりしたのだが、
mtd()がどうにもならなすぎるのでもう飽きた。
せめてループ制御変数を使い回すのを何とかしないとデバッグどころじゃないぞ、と。

200 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 07:50:09 ]
確かに
そろそろ飽きてきてるかな……


クマー

201 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 09:38:10 ]
iやjをループ変数意外で使ってる

202 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 09:39:12 ]
×意外
○以外

203 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 09:49:42 ]
for(i=0;i<125;i++){
中略
}
if(i==126){
ここは実行されることがあるのか
}



204 名前:デフォルトの名無しさん [2007/01/24(水) 09:51:57 ]
>>198
韓国人だなww

205 名前:デフォルトの名無しさん [2007/01/24(水) 09:52:50 ]
>>203
wwwwwwwwwww

206 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 09:58:56 ]
未だに最適化を理解しない>>1
そんなにスピードが気になるならC++なんぞ使うんじゃない

207 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 10:07:30 ]
>>105
これ動かなくね?
延々と
「実現確率=0.50000 count=1 手数=4 指し手=19 読み深さ=0 予想値=0 a=65 b=65」が繰り返されてる

208 名前:207 mailto:sage [2007/01/24(水) 10:10:33 ]
実現確率の出力のところをコメントアウトすればいいのね

209 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 10:18:05 ]
>>1はアルゴリズムを人にわかるように説明できないんだろ

210 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 10:21:11 ]
>>116
> うまく動かないのは、mtd()だけであとは正常動作をしていると思われます

mtd()だけって…>>1のソースの大半はmtd()関数だろ。

211 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 10:59:36 ]
言い方がどれもうけるw
ヘボさが見え隠れしてるw

212 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 11:11:30 ]
MTDをちゃんと理解してないからmtd()のバグがなくならないんでしょ。
プログラムに知識のダメ出しをされてるんだよ。

213 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 11:25:46 ]
>>180
モンテカルロ法は囲碁には適用できるが、リバーシには適当とは言えないよ



214 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 11:46:54 ]
オセロの評価関数はパターン評価を基本にして、
着手可能箇所数とか偶奇性とかその他独自のフィーチャーを加えて
教師あり学習をさせるのがいい。
探索はPVSとかMTD(f)あたりで置換表やMPCを併用する。

215 名前:デフォルトの名無しさん [2007/01/24(水) 12:07:24 ]
プログラムの手伝いしたいんだけど、オセロのアルゴリズムとかあんま知らないから
>>1がどんなことやろうとしてるのかまったくわかんないし、そのせいでソースも読めないんだよな。

minmax法とかαβ法くらいなら理解できるんだけど、英語の論文とかまったく知識ないから理解できない。
ちょっとでもかじってればわかるんだろうけど。

216 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:14:52 ]
minmax法やαβ法がわかってれば次はNullWindowSearchを理解すればいいね
ray.sakura.ne.jp/search_problem/null_window.html
その先はそれほど大きな違いは無いよ

217 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:19:45 ]
入力ファイル→出力ファイルというようにバッチ的にC言語のインデント処理ができるUnixコマンドってありますか?

218 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:22:41 ]
Unixコマンドでは知らないけど自分はArtistic Style使ってる。

219 名前:デフォルトの名無しさん [2007/01/24(水) 12:43:29 ]
>>216
d
読んでみるよ

220 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 13:18:24 ]
te = new unsigned char[67108914];

67108914ってなんだろう
バイト数でいうなら67108914=64MB+50B

221 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 14:18:00 ]
>>217
indentって標準かな?

222 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 14:45:12 ]
teは手を登録してるようだけど・・
ここにもバグがありそう
>>前スレ1
変数名・関数名が何の省略かを全て書いてよ

223 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 16:43:37 ]
変数名・関数名まとめ
140 デフォルトの名無しさん sage 2007/01/23(火) 12:45:11
とりあえず分かった範囲だけ書いてみる。
bt[a][b] 意味: a の、下から b ビット目の値 代替記法: ((a >> b) & 1)
wb[t][y][c] 意味: ビット詰めされた盤面
c は色で 0:黒 1:白 2:何もおかれていない
y は盤面の縦座標(0〜7)
t は不明
zw[x+y*8] 意味: 座標で指定された手の優先度。ban の写し。
wz[n] 意味: nで指定された優先度の手の座標。zwの逆引き
we[n] 意味: 3のn乗
ch[n] 意味: 0:黒、1:白として、色の入れ替え。もしくは論理反転。 代替記法: (1-n)
F 意味: たぶん現在の手番???
zi[p] 意味: 縦座標(y)の値。 代替記法: (p/8)
zj[p] 意味: 横座標(x)の値。 代替記法: (p%8)

>1 は、最低限これらを全て分かりやすい名前に書き換えるべし
152 1 2007/01/23(火) 14:02:20
>>lp、li、lj、ba
+が現在位置としてlが下の番号のときに
lp(l) は、z (=8*x+y)での移動位置
li(l)、lj(l)は (x,y)座標での移動位置
567
4+0
321

baはテンポラリでbf()()を生成するときに使用

bf(番号0)(z) zに対して通常の座標を返す
bf(番号1)(z) zに対して左右反転の座標を返す
bf(番号2)(z) zに対して左に90度回転した座標を返すなど



224 名前:デフォルトの名無しさん [2007/01/24(水) 17:33:45 ]
このプログラムはリファクタするより1から作り直したほうが早い。

225 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 17:37:34 ]
そうすると最初のスレの>>1はどーなんの

226 名前:1 [2007/01/24(水) 17:37:56 ]
今、オブジェクト指向で一から作り直してますから待ってて下さい!

227 名前:デフォルトの名無しさん [2007/01/24(水) 17:54:09 ]
>>226
おまいはホントに誰の話しも聞いてないんだな

228 名前:1 [2007/01/24(水) 18:14:57 ]
>>227
なんでよ?224の話の通りだよ

229 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:16:44 ]
そろそろ>>1はトリップつけてくれ、、、、いややっぱいいやw

230 名前:1 [2007/01/24(水) 18:18:57 ]
オブジェクト指向といってもC++の機能を使わなくたって出来るんだよ
普通のCでも
オブジェクト指向が鈍いっていう事はない
関数の分割単位をわかりやすくする目的がある

231 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:23:48 ]
ふーん、すごいね

232 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:29:49 ]
>>230
Cでオブジェクト指向的なコーディングができることぐらい、
ここにいる主要な人達のほとんどが知っていることだよ。
それでも、オブジェクト指向的に書くならC++の方が良いと言っているということは、
やはりCでは強引に書かないとできないという事なんだよ。

233 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:45:03 ]
1から作り直したほうが早いのは間違いないが、

>>1が作り直すのは絶対に止めた方が良い。



234 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:59:19 ]
>>228>>230>>1に見えないな

オブジェクト指向とまでいかなくても構造化してくれるならそれで充分

235 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:26:03 ]
>>234 同意

236 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:36:00 ]
何故>>1にそんなにかまってやってるの?

237 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:44:26 ]
みんな>>1のことが好きなのよ

238 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:59:09 ]
gotoの使いかた等に現れる
>>1の溢れんばかりの素質が皆を引きつけてるんだよ。

239 名前:デフォルトの名無しさん [2007/01/24(水) 20:00:39 ]
ふーん。まぁがんばれ
>>224>>227も俺なんだけどな。

240 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 20:02:34 ]
>>233
吹いた

241 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 20:11:45 ]
何故>>1はgotoを使うのだろう
そこらへんの本や入門サイトにはgotoなんて載ってないよね?
もしgotoの記述があっても、それによってもたらされる害についての説明だと思うのだけど

242 名前:デフォルトの名無しさん [2007/01/24(水) 20:41:13 ]
>>241
>>1はプログラミングで論理的に構造を考える能力が足りない。
まぁ初心者だからな。

243 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:06:31 ]
wzebraインストールすらできないw



244 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:11:52 ]
作れるとしたらまず最強といわれるやつに勝てる人でかつプログラム経験豊富な人であれば
自分の思考パターンをそのまま当てはめればいいわけでそんなに難しくないんじゃないか?
どんなアルゴリズムでも癖があるから万能ではなくてもただ1つに勝つだけなら単純だ
BearRevとやらはやってみたが弱すぎてアルゴリズム考えるのも馬鹿馬鹿しいんだが
Wzebraはなんかエラーでて動きませんw

245 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:20:02 ]
wzebraは生身の人間ではまず勝てない

246 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:20:30 ]
>作れるとしたらまず最強といわれるやつに勝てる人で
そんな人間は存在しない

247 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:24:27 ]
リバーシって確か、かなり前に世界チャンプが
コンピュータに負けたゲームだった記憶がある。


248 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:25:37 ]
その世界チャンピオンはベストコンディションではなかったとの話もある。

249 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:25:58 ]
>自分の思考パターンをそのまま当てはめればいいわけで
これだと弱い。
オセロではそれよりはるかにいい方法が発明されてるから
ルールを知っている程度の人でも世界チャンピオン以上のプログラムが作れる

250 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:35:54 ]
ベストコンディションでも勝てなかっただろうけどね
彼より前のチャンピオン達はプログラムとの対戦から逃げてると言われてて
彼が対戦した頃には既に大差だったらしい

251 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:46:30 ]
パンダ名人なげーw

252 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:57:35 ]
まぁ実際逃げてたのかどうかは知らんけど
挑発はされてたかもしれんね

253 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 22:20:15 ]
ブレークポイント設定しても全く引っかからんところがいくつかあるなぁ



254 名前:初心者 mailto:sage [2007/01/24(水) 22:30:39 ]
>>1はこのすれで一番コーディング能力が
低いくせに人の言うことは聞かない。

速度なんか後で気にしたらいいのに。

255 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 01:52:27 ]
アルゴリズムを話せない
プログラムもろくに書けない
なにこいつw

256 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:19:16 ]
>>255
ヒント:小学生

257 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 06:44:23 ]
bitboardのメリットを見事に殺してる・・・
シッタカが使うとこうなるんだなぁ

258 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 07:05:51 ]
というか少しもbitboardじゃないよね

259 名前:1 [2007/01/25(木) 07:25:16 ]
主に手を戻すときのコストが0になるという利点がある
24バイトのコピーのみ

260 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 07:48:55 ]
利点しか見えてない方ですか?
1の使い方だとむしろ遅くなる原因では

261 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 08:41:42 ]
この知ったかぷりはもはやギャグ

262 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 11:28:19 ]
>256
確かに,普通では考えられない知識の偏り
実経験の無さ,そして思い込みの強さなど
小中学生辺りと考えるのが妥当か

263 名前:デフォルトの名無しさん [2007/01/25(木) 11:43:34 ]
小学生でも人の意見は聞くだろ



264 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 11:49:04 ]
実力が伴わず、プライドだけ高い。
期限が守れていないということから、自己管理もできていない。
プライドの高さからおそらく大人なのだろう。
それも、子供のような未熟な大人。
ニートか?

265 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 12:39:09 ]
2chでスレ立てて成功した開発系スレは
開発者が凄まじいスキルを持ってるか言われたとおり素直に従ってスキルアップするかのどちらかだ

266 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 12:53:16 ]
とりあえず>>1も含めてお前ら全員馬鹿なのはわかったw

267 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:32:47 ]
2chに馬鹿じゃない奴がいると思ってるのか?

268 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:44:09 ]
我々の業界では褒め言葉です

269 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 16:56:23 ]
このスレは、ム板でもトップクラスのレス数(勢い)だったりする。

270 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 17:36:39 ]
ほんとだ。C/C++宿題の次だな

271 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 19:56:36 ]
>>1が帰ってくる前に。
座標だけでも標準の棋譜に変換しとかないとな。

272 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 20:31:15 ]
自分も初めてオセロを作ってみた。
白も黒も乱数でコマを置くようにしたら、白の方が常に数パーセント勝率がいい。

273 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 20:37:03 ]
>>272
そうらしいね
どこかでそんな話題を目にしたと思って探してみた

science5.2ch.net/test/read.cgi/sim/1090548999/383
science5.2ch.net/test/read.cgi/sim/1090548999/385



274 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 20:42:30 ]
>>272
多分、白のほうが辺、角を取れる確率が高いからだと思う。

(と、小学生の頃、思ってて、密かに必勝法の一種だと思ってたけど、
 本当かどうか知らない)

275 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 20:51:25 ]
>>272
モンテカルロ法になるのかな?
その方法だと白が有利のような結果がよく出るんだけど、
ゲーム木のDBを構築すると引き分けの確率が高いっていう結果が出る。
この違いはなんなんだろう?

276 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:14:23 ]
白のほうが適当に手を選んだとき、引き分けの局面なら最善手が複数あって間違いにくく
勝ってる局面だったら、勝ちの手が黒より多くあるってことじゃない
逆に白が一旦間違えて負けの局面にした場合、黒はそのまま勝ちを維持できる手が白より少ないとかで

277 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:16:18 ]
>>273-275
人同士の対局でも白ほ方が勝率いいんだね。
モンテカルロ法っていうのが何なのか分かりません。^^;

どういうやり方がいいのか全然わからないんだけど、自分がしたのは、

1.コマが置ける場所(候補)を探す
2.その全候補に0(ゼロ)から順に整数を割り振る
3.候補数を最大値として乱数を発生させる(0〜候補数で乱数発生)
4.発生した乱数にコマを置く

278 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:34:46 ]
>>275
こういうのはモンテカルロとは言わないだろ^^;

279 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:40:38 ]
BearRevのぱんだで名人設定でやってみたんだけど
こっち黒先手
中盤で全部黒くなったんだがw

280 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:44:15 ]
人間が相手でも少数取りで囲わせるのがまあ一般的な戦法だけど
この手の人は逆に囲い込ませてるつもりがどんどん追い詰められてることに気づかず
一気に埋められるというミスをしやすい
どうもこのアルゴリズムもこの手の人間の思考パターンのようだw

281 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 21:48:48 ]
てか同じアルゴリズムの土台で考えるから精度の高いものほど勝ち目は無いだろう
オセロってのは定石が逆に不利になるような戦法もあるんだから
そういうアルゴリズム組めば大抵勝てると思うがね

282 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 22:30:19 ]
土台(パターン、人間チャンピオンを超えるにはこれだけでも十分なくらい)は同じだけど、
プログラムの間では独自のフィーチャーや定石システムの分で差がついてる。
パターンでも一部で独特のとり方を採用してるものはあるけどね。
この2種類のセットが最もよく使われてるかな。
fujitake.dip.jp/sealsoft/thell/algorithm.html
www.kitsunemimi.org/vsotha/algorithm.html
あー色々試したい・・・

283 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 00:50:34 ]
>>272-278
強いかどうかは別として面白そうだったので、試しにランダムに打っていって
勝率の期待値を計算し、期待値が高い手を選ぶプログラムを作ってみた。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3520.cpp

ちなみに相当弱い。



284 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 00:55:42 ]
>>283
乙。動かしてみる。

285 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 02:07:40 ]
>>272
白番のほうが最後の石を置けることが多いから
って昔の本で読んだことがある。
ランダムな着手を仮定するとなおさらそんな気がする。

>>275
引き分けの確率は高いかもしれないが、今は白と黒だとどっちがどのぐらい
勝ち越すかの話では。

>>273
シミュレート板なんてあったのか。知らなかった。

286 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 02:40:52 ]
>白番のほうが最後の石を置けることが多いから
人間向けの戦略で言えば偶数理論、
評価関数のフィーチャーで言えばパリティで考慮されてる。
盤全体で空きの偶奇をフィーチャーにしてるもの(1bit)もあれば、
盤を四つのエリアに分けてそれぞれに含まれる空きの偶奇をフィーチャーにしてるもの(4bit)も有る。

287 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 09:38:38 ]
前スレ969ですが
余計なモノを沢山積んでみたら、かなり読めなくなって来た……('A`)


俺もランダムに打って勝敗カウントしてみましたが、イマイチ自作AIなんで自信が無い
(先手黒) 209勝 274敗 17分
(先手黒) 225勝 249敗 26分
(先手黒) 236勝 244敗 20分
(先手黒) 215勝 260敗 25分
(先手黒) 211勝 260敗 29分
(先手黒) 220勝 267敗 13分
(先手黒) 225勝 258敗 17分
(先手黒) 225勝 258敗 17分
(先手黒) 238勝 244敗 18分
(先手黒) 233勝 248敗 19分
      44.7% 51.2% 4.0%
なんか白が圧倒的に強いんですが……
これも偶数理論でおkですかね?

288 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 10:09:19 ]
圧倒的ってほどでもないような

289 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 10:13:11 ]
それくらいは誤差の範囲かも

290 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 10:52:15 ]
>>289
大体σ≒0.7%で、3σ以上ずれているので、99%有意な差がある。

291 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 11:59:12 ]
>>287
自分も1万回ぶん回してみた。
結果が似ているので、多分、あっていると思う。

10,000回の試行の結果
 黒の勝ち数:4499・・・44.99%
 白の勝ち数:5089・・・50.89%
 引き分け.. : 412・・・ 4.12%

292 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 15:03:31 ]
>>287,291 乙

乱数に素性の良いメルセンヌツイスターを使って千万回試行してみた。

黒勝 45.459±0.016 %
白勝 50.378±0.016 %
引分 4.163±0.006 %

白は50%より微妙に良いらしい。

293 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 15:12:47 ]
必勝法は、最初のじゃんけんで勝って白をとることだ!



294 名前:デフォルトの名無しさん [2007/01/26(金) 15:35:09 ]
乱数ってC標準のやつだよね?

295 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 15:44:36 ]
メルセンヌツイスタはC標準じゃないよ

296 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 16:04:01 ]
>>293
必勝じゃないじゃん

297 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 16:08:03 ]
リバーシなんぞ1Tバイトとあれば十分

298 名前:デフォルトの名無しさん [2007/01/26(金) 16:10:28 ]
>>295
>>292以外のことさ

299 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 16:28:59 ]
287です
stdlib.h に入ってる rand() 使いました。

何度か10,000回試行やってみた。
黒  白  引分
4476 5141 383
4534 5013 453
4467 5093 440
やっぱり傾向としては間違ってないようですね。
レスくれた人dクス

× 白が圧倒的に強い
○ AIがランダムなら、後手有利
という所ですかね。。。

300 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 16:59:33 ]
>>292
>>299
10万回してみた。
自分はRubyプログラミングの練習で作った。

乱数は、Ruby標準を使用。
10万回にすると、>>292さんの数字にかなり近くなった。

100,000回の試行の結果
 黒の勝ち数:45513・・・45.513%
 白の勝ち数:50354・・・50.354%
 引き分け.. : 4133・・・ 4.133%

301 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 17:38:40 ]
>292 を仮の基準として、
>287
σ(概算) 0.7%、 基準との差 黒 -0.8% 白 +0.8%

>291
σ(概算) 0.5%、 基準との差 黒 -0.47% 白 +0.51%

>299 (三回合計)
σ(概算) 0.29%、 基準との差 黒 -0.53% 白 +0.45%

>300
σ(概算) 0.158%、 基準との差 黒 +0.054% 白 -0.024%

差はいずれも標準偏差から大きく離れていないので、
どの結果にも矛盾は無いと考えてよさそうだね。

302 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 17:46:30 ]
そういえば、どっかのホームページに書いてあったけど、
白の一手目で黒と駒が並行になるように取ると白の不利になるらしい。

 ●●●   ←このパターンは白不利らしい
 ○○○

このパターンを意識的にはじいたら
確率はどうなるんだろ?

303 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 17:48:31 ]
だからぁ、アルファベータ狩りすれば現代のパソコンで必勝は出来る



304 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 17:56:43 ]
お前らこういう小学生の自由研究みたいなのは得意なんだな

305 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:01:38 ]
だってニートなんだもん。><

306 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:02:04 ]
アルゴリズムの開発をしたいということならまず環境を作ろうよ
アルゴリズム部分はVBScriptかJavaScriptのエンジンを乗っけて外部ファイルの記述できるようにする
でそれらをサーバー上で管理してスクリプトを自由にアップダウン出来るようにしとくのだ
自分の作ったスクリプトもソフト上からボタン一発で登録できるようなのがいい
サーバ上にあるスクリプトから自由に対戦相手をダウンロードして自分のスクリプトを戦わせることで
スクリプトの有効性を検証する
定期的に誰かがサーバー上にあるスクリプトから優秀なものをピックアップして対戦させて
トップ10を集計表示する
そんな子供の集計やってる暇があったらこれくらい作れるだろw

307 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:09:24 ]
BearRev

308 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:12:22 ]
>アルゴリズム部分はVBScriptかJavaScriptのエンジンを乗っけて外部ファイルの記述できるようにする
遅杉却下。

309 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:14:27 ]
お前の頭よりは早いから大丈夫

310 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:23:27 ]
つーか、そんなんで書きたくないだろ

311 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:29:09 ]
VBSとかJSとか釣りとしか思えないな
Windows専用ならDLL、>>213
他のOSも考えるならプロトコル作ってネットワーク対戦

312 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:30:28 ]
>>302
各10万回試行(MT)

手: 黒勝/白勝/引分
d3 c3: 44531/51376/4093
d3 c5: 45592/50180/4228
d3 e3: 45622/50182/4196

313 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:32:40 ]
マジデリバーシには最適解はある、オレは知らんけど



314 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:53:48 ]
>>311
お前のほうが釣りにしか見えないんだがw
わざわざ対戦させるためにGUIから実装を始めてプロトコルのお勉強までするのか?
誰がそんな暇なことするんだ?
JSとかVBSなら基礎的なプログラム知識のある人ならほとんどの人が使えるし
新たに環境を構築する必要がない
メモ帳でも作れる


315 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:54:03 ]
>>306
正直、俺はそんな環境より
子供の集計のほうに興味がある。

316 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:01:44 ]
>>314
>JSとかVBSなら基礎的なプログラム知識のある人ならほとんどの人が使えるし
JSはまあわからんでもないがVBSはなあ・・・

DLLって言ってるのになんでGUIの話が出てくるのかもわからんし
プロトコルのお勉強って・・・?

317 名前:デフォルトの名無しさん [2007/01/26(金) 19:10:04 ]
>>314
お前だけ釣りだろ?www

318 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:12:41 ]
とりあえずBearRev最強設定ですべてに勝てないやつは発言するなw

319 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:19:56 ]
最近、前スレ一が来ないせいか
ふいんき(ry が変わってきたね。

テンプレ再考の余地が……って思ったけど、
そもそも次スレが不要なのかな。

320 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:29:41 ]
>>319
お前は不要

321 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:36:38 ]
>>302
>>312
Ruby だから遅い。
各1万回試行。

(1)のパターンが一番、勝率が悪いみたい。
d3 c3 とかの記号の意味がわからん。。。

手: 黒勝 / 白勝 / 引分
(1) 45.78% / 50.21% / 4.01%
(2) 44.37% / 51.26% / 4.37%
(3) 44.82% / 50.98% / 4.20%

(1)
○●
○●●


(2)
○●
●○●
__○

(3)
○○○
●●●

322 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:50:24 ]
とりあえずベアの強いってやつには今勝てた

323 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:12:33 ]
/a b c d e f g h
1・・・・・・・・
2・・・・・・・・
3・・・・・・・・
4・・・○●・・・
5・・・●○・・・
6・・・・・・・・
7・・・・・・・・
8・・・・・・・・
↑notepadなんかにコピペすると見易いです


d3 c3 → (2)
d3 c5 → (1)
d3 e3 → (3)
だよね?



324 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:23:48 ]
>>323
合ってる。

325 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:43:14 ]
>>323
あー、なるほど、そういう座標形式なのか。
サンクス。

326 名前:1 [2007/01/26(金) 20:48:38 ]
すみません
開発は進行してますが、別のことに興味が出てきてしまい
ソースのうpが遅れています
手書きのものでは、今まで指摘してもらった箇所は修正でき
関数の分割も出来ています
序盤からproof number search(の改良版)で思考できたら最強っぽいのですが

327 名前:デフォルトの名無しさん [2007/01/26(金) 20:57:13 ]
別のことだとぉー

328 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:58:30 ]
乱数によるシミュレートの意味を明確にしないと先に進めない希ガス

329 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:59:07 ]
ソースの整理してるんじゃなかったのか?
また新機能つけようとした挙句、別なことに興味って…

330 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:59:46 ]
オセロでproof number searchって意味ないんじゃないの
オセロの場合、どの手選んでも基本的に一律に60手目で終了するから

331 名前:1 [2007/01/26(金) 21:06:31 ]
>>330
手数が決まっているほどproof number searchは意味を持ちますよ
例えば、あと40手以内に玉を詰められると予測できたなら全力で
proof number searchをすればいいんです
詰まない場合は、意味がなくなって思考時間を消費するだけになります

332 名前:1 [2007/01/26(金) 21:07:31 ]
明日中には、MTD(f,r)をうpしますから待ってて下さい!

333 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:12:13 ]
>>332
待ってる。頑張れ



334 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:12:14 ]
>>331
>例えば、あと40手以内に玉を詰められると予測できたなら全力で
予測ってどうやるんだい?

335 名前:デフォルトの名無しさん [2007/01/26(金) 21:54:19 ]
>>325
こういう座標形式がオセロでは一般的みたいだね

>>334
埋まってないマスが40個の時だろ?



336 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 22:03:25 ]
40手以内という例えが適切でないなw

で何手ってどうやって出すの?

337 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 22:53:26 ]
>>331
またどっかで聞いてきた事をそのまま言う

338 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:11:11 ]
>>332
お前の宣言は破られるものだと構えてる

339 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:17:01 ]
MTDとかの探索アルゴリズムは終盤解析でバグを取るといいよ。
末端ノードが試合結果じゃなくて評価関数だと正しく動いてるか分からないでしょ。

340 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:41:32 ]
>>283 中身読んだが,これ純粋モンテカルロ法だね
これだと物凄く収束が遅くて使いものにならないことが分かってる
少なくともUCT↓使わないと
ttp://zaphod.aml.sztaki.hu/papers/ecml06.pdf(UCTの論文,英語)
MoGoではさらに読む手を絞り込んで強くしてる
ttp://www.geocities.jp/hideki_katoh/RR-6062-v3-jp.pdf(MoGoのレポートの和訳)

341 名前:デフォルトの名無しさん [2007/01/27(土) 00:47:57 ]
>>340
おもしろそうだと言って作った奴に対して、なぜ「それは遅い」っていうレスになるんだ?

342 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:50:11 ]
いまどき、パソコンでも全部の探索木やっってもすぐ終わるんじゃないのか

343 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:55:12 ]
>>1
MTD(f,r)とかいうアルゴリズムか。
rって簡易な前向き枝刈りだからMTD(f)とPCやMPCなどの併用に相当する。
まずr無しのMTD(f)を終盤で動かしてごらん。
>>342
終わりません



344 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:01:02 ]
パソコンの能力が1000倍になってもすぐには終わりません。

345 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:04:49 ]
>>341
別に貶したいわけじゃないだろうし
ああいう除法にも興味持つかもしれないからいいじゃん。
関係ありそうな情報はどんどん出して欲しいと思うよ。

346 名前:デフォルトの名無しさん [2007/01/27(土) 01:11:31 ]
>>345
なんか>>340みたいなやつは、本意を読み取らずに無意識に自分より知識がないと
思った奴に対して、上から見てバカにしているように思えたんだよな。

レスを読まずにソースだけ読んだんだろうけどさ。
すっごくくだらない人間に見えた。

347 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:22:02 ]
何をいきり立ってるのか知らんが、一応フォロー?として情報出してくるだけマシなんじゃねーの?

348 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:40:25 ]
前スレ見て、少し自信がわいてきた。

349 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 04:08:05 ]
下を見るな。
上を見るんだ。

350 名前:340 mailto:sage [2007/01/27(土) 13:39:43 ]
>>341 レスも読んでるよ
「収束が遅い」から「弱い」と書いたつもりなんだが,誤解されたか
確率的じゃないゲームでモンテカルロ法が使い物になったのはUCTのお陰と言っても過言じゃないので
その辺りを(他の人にも)きちんと知って貰いたかったのがあのレスを付けた一番の理由
書き方がぶっきら棒だったとは思うがあのソースは俺にも参考になったし
暇ができたら俺もMC/UCTでオセロのプログラムを書いてみようと思ってるし
>283を貶める意図は毛頭ない
今読み直すと,最初にTHX位入れておくべきだったと思う.長文スマソ

351 名前:1 [2007/01/27(土) 14:14:26 ]
既存の探索ルーチンに属さない新アルゴリズムに到達した!
囲碁、将棋の中盤以降がかなり強くなる
そして世界の頂点に立つ

352 名前:1 [2007/01/27(土) 14:15:50 ]
論文はどこへ持っていったらいいですかね?強かった場合
タコスの人のところへ持っていったらいいですかね?

353 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:18:25 ]
しね。



354 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:25:26 ]
強いソフトが出た場合、学会から論文を出さないかと打診が来る。

論文出すときは数字で実績出さないといけないよ。
妄想だけじゃダメ。

355 名前:1 [2007/01/27(土) 14:33:29 ]
わかりましたー今年のコンピュータ将棋の大会で優勝します!

356 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:34:52 ]
まて、先にオセロだオセロ。

357 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:16:32 ]
オセロは諦めたのか?
将棋に行くふりして逃げるのか?

358 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:21:07 ]
332 名前:1[] 投稿日:2007/01/26(金) 21:07:31
明日中には、MTD(f,r)をうpしますから待ってて下さい!

359 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:22:40 ]
>>1はようやくのぼりはじめたばかりだからな
このはてしなく遠いオセロ坂をよ…

360 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:24:39 ]
FFで言えばタイトルが出たレベル。

しばらくたってからやっぱり定石DBは必要ですねとか言い出しそう。

361 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:29:23 ]
逃げたら逃げたで別にいいけどね。予想してたから。
最近はもうソースも読んでなかったし。

362 名前:デフォルトの名無しさん [2007/01/27(土) 15:36:12 ]
>>1にはさいしょから期待してなかったけど、もうどうでも良くなってきた

363 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:41:53 ]
結局>>1はまだ何一つまともなものを作ってない。



364 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:42:25 ]
1なんかよりまじめに作る人が現れないかなぁ
って何人かソースうpした人居たよね
その後はどうなってるんだろ?
改良続けてるのかな?

365 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:45:22 ]
>>352 なんとなくニセモノの匂いがするが,マジレスしておく
ttp://sig-gi.c.u-tokyo.ac.jp/
情報処理学会のゲーム情報学研究会が一番敷居が低い

366 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:47:06 ]
必ず儲かるという詐欺みたいなものだな。

何故強い、最強との言い切れるのか説明してないし、する気もないみたい。
疑似科学と変わらん。
想像だと波動アルゴリズム理論か?

367 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 16:12:15 ]
ja.wikipedia.org/wiki/%E7%96%91%E4%BC%BC%E7%A7%91%E5%AD%A6

368 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 16:19:16 ]
疑似科学者の傾向
アメリカ合衆国の懐疑論者マーティン・ガードナーは
その著書『奇妙な論理〈1〉』ISBN 4150502722
(原題 Fads and Fallacies in the Name of Science)において、
疑似科学者の傾向として以下の5項目が上げられるとしている。

1.自分を天才だと考えている。
2.仲間たちを例外なく無知な大馬鹿者と考えている。
3.自分は不当にも迫害され差別されていると考えている。
4.もっとも偉大な科学者や、もっとも確立されている理論に
攻撃の的を絞りたいという強迫観念がある。
5.複雑な専門用語を使って書く傾向がよく見られ、多くの場合、
自分が勝手に創った用語や表現を駆使している。

今のところ1のみ?

369 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:44:57 ]
>>1よ。この状況をなんとかひっくり返してみろ!

370 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:50:15 ]
>>369
うまいこと言った?

うまいこと言ったつもりなんだね?

371 名前:デフォルトの名無しさん [2007/01/27(土) 18:52:54 ]
>>369
誰がうまいことを言えと


とか言われたいのか?そうなのか?

372 名前:1 [2007/01/27(土) 18:53:38 ]
いいんです。凡人に理解してもらえなくても。

373 名前:デフォルトの名無しさん [2007/01/27(土) 18:55:42 ]
自分は天才だとでも?
凡人は所詮凡人にしか相手にしてもらえないだろ。
何考えてるんだ?



374 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:59:19 ]
>>372
>>368

375 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:05:32 ]
>>372
確かに。
今の状態で理解できる奴がいたら天才かもしれんな。

376 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:05:39 ]
1,2,3該当と考えても差し支えないですか?

377 名前:1 [2007/01/27(土) 19:19:03 ]
>>351>>352は本物ですよ
>>372は偽物です
判別は容易でしょう
もうちょっと待ってて下さいね

378 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:22:01 ]
いや 難しい

>>372>>1だと思ってた…

379 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:27:01 ]
>>372は簡単
句点があるから

380 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:28:51 ]
>>1鑑定士スレに変更!

381 名前:1 [2007/01/27(土) 20:34:46 ]
>>376
4も該当だろ。「最強の」と言ってるんだから。

382 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 21:59:59 ]
俺鑑定
本物:>>25-26,28-29,96,98,100,105,108,116,152,155-156,158-159,161-162,182,185-186,193,196,326,331-332,352,377
本物?:>>90,139
偽物?:>>61,64,226,259,355
偽物:>>103,228,230,351,372,381

383 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:07:01 ]
>>1
何で鳥付けないの?



384 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:11:31 ]
そのほうが面白いからいんじゃない?

385 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:04:03 ]
実は>>1って全てなりすましじゃね?

386 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:17:24 ]
ソース出してきたのは本物だろ。

387 名前:1 [2007/01/28(日) 00:46:04 ]
すまん
眠くなって一休憩したら0時45分になってた
今から頑張る まっててくれ

388 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 01:58:10 ]
1は鳥付けろハゲ

389 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:08:21 ]
酉付けたら偽者のせいにできなくなるからでしょ

390 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 05:11:30 ]
5もじゃね?
自分の考えの表現であるソースコードはめちゃくちゃだし
MTD(f)+MPCの改悪でしかないのにMTD(f,r)なんて言葉作ってるし

391 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 05:47:17 ]
このスレ
比較的流れだけは速いのに
成果物は全然あがってこないんですね


392 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 06:12:38 ]
>>391
君が出してもいいんだよ?

393 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:15:57 ]
>>391
出すときは名前欄に「1」と書いておくことがこのスレの唯一のルール。



394 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:20:27 ]
但しネタを出すときね

395 名前:1 mailto:sage [2007/01/28(日) 11:05:37 ]
こうですか?
わかりません><

396 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:26:07 ]
>>395
>>104

397 名前:1 [2007/01/28(日) 12:03:04 ]
一睡もしないでやってたからもう少しでうpできます。
アルゴリズムもちゃんと完成しましたし、オブジェクト指向で書き直しました。
バグがなくなれば最強なリバーシをお見せすることが出来るのですが、どうもうまくいきません。














こうですか?
わかりません><

398 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:06:36 ]
なかなかだった

399 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:07:37 ]
ちょっと丁寧すぎない?

400 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:13:51 ]
>>365
そこは学部生・院生の練習場・・・

401 名前:1 [2007/01/28(日) 13:04:22 ]
>>397
惜しいな、句点は書かないんだ

402 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:38:32 ]
>>1は、とっくにいない気がする

403 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 19:30:23 ]
だって人間やめたはず…



404 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:26:36 ]
なるほど、だからあんなに、壊れてるんだな。

405 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:35:58 ]
>>1は俺の肉便器にしてやったぜ

406 名前:1 [2007/01/28(日) 20:46:41 ]
とりあえず改良版の打ち込みが終わりコンパイルエラーは出なくなった
だが動かしてはいない
up2moe.moe.hm/img/q534.txt

407 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:49:31 ]
お疲れ。
しかし読む気は無い。



408 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:54:40 ]
相変わらず横テトリス型ソースだな
まったく読む気起きない

IDE使ってるのに何故インデントしない?
アホか

409 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 20:58:40 ]
後ろのほうのコメント内部を関数にしろよ。
そして関数呼び出し部をコメントアウトしろ。


410 名前:デフォルトの名無しさん [2007/01/28(日) 21:14:25 ]
マクロがきもい

411 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:23:26 ]
>>406
問題点1. 変数名が意味不明。kd とか cn とかじゃ意味分からん。
      意味の分かる変数名に変更汁。指摘したのに全然改善されてない。

問題点2. インデントもせず、詰め込みまくった団子のようなスタイル。
      一行に命令(式)一つを厳守した上でインデント汁。

問題点3. コメントが無い。
      必ずコメントを入れる事。それも命令自体の説明ではなく、動作の意図を判りやすく書く。

問題点4. 凶悪マクロ。
      そのまま関数に書き換えられないようなマクロは論外。

412 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:26:16 ]
問題点 c++を使ってる。Java、C#を使えw

413 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:34:36 ]
>>412
C++ と言ってもほとんど C だからまだいい。
むしろJavaだろうがC#だろうが、積極的にOOP使われるとえらい事になりそうだ。



414 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:53:51 ]
>>406
コンパイルして実行してもすぐ終了するのですが…?
main()内のコメントをはずしたらコンパイルエラー…???

415 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:55:38 ]
単体テストは…?

416 名前:1 [2007/01/28(日) 22:01:38 ]
各部品(関数)のコンパイルエラーは出なくなったよ
っていううpですから...まだ動作確認していません

417 名前:デフォルトの名無しさん [2007/01/28(日) 22:08:22 ]
文法間違ってないだけでプログラムとしては価値ないだろ

418 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:20:56 ]
インデントもコメントも付けて書いてるが、うpの前に手作業で消しているに2ペンス
変数名は恥ずかしい名前しか付けられないに7ペンス

419 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:24:41 ]
なんでこういう汚い書き方するわけ?

420 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:58:26 ]
これでも最初に比べれば大分ましになったよ。

421 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:04:42 ]
問題点を改める気が無いなら俺はもう何もしないよ
改善されたソースが出されてたのにそれらを破棄して
自分のオリジナルに変更を加えて行ってるんでしょ

422 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:40:01 ]
>>406
小学生が冬休みの宿題として作ってもここまでひどいソースは書かないと思うんだが。

1が何者なのかが気になって眠れない。

423 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:42:47 ]
1画面分だけ見たけど
#define aa 256
#define bb 1024
#define cc 1500
これとか



424 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:55:01 ]
>>1
MPCの論文読んだ?

425 名前:1 [2007/01/29(月) 06:03:15 ]
まだ読んでません
英語を勉強してから読みます
日本語の論文は無いですかね?

426 名前:1 [2007/01/29(月) 10:13:56 ]
あと、数式とかよくわからないんですが
どこか数式の見方とか載ってるサイト教えてください

427 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 11:31:24 ]
英語も数式も読めない奴が論文出したいとか、どういうお花畑よ?

428 名前:デフォルトの名無しさん [2007/01/29(月) 12:07:29 ]
さすがに偽者だろwww数学科でてるとかいう話が本当ならなww

429 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 12:41:16 ]
僕は はかせ〜 ってロリキャラに言われたいがために博士号取りましたよ

430 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:12:41 ]
博士号持ってる人に はかせ〜 って声掛ける人はめったにいない件

431 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 15:08:55 ]
院卒(数学)が数式読めないなんて、だめだこりゃ&舞台総崩れもんだ

432 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:36:37 ]
>>425
日本語のもあるけどオリジナルを読むほうがいいんじゃない?

433 名前:1 [2007/01/29(月) 19:31:24 ]
浅く読んで深く読む(MPC)っていうのは初めから使わないっていってるだろ?
四手浅く読むのに使う手間を、無くせば四倍の局面が読める



434 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 19:38:48 ]
自分がどんな変な事を言ってるのかも
わからんのか

435 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 19:41:53 ]
>>433
偽者だろ?

436 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 19:50:00 ]
偽物は最後に「こうですか?わかりません><」って書いてくれ

437 名前:1 [2007/01/29(月) 19:58:39 ]
そんな事を偽者に期待するなよ




こうですか?わかりません><

438 名前:1 [2007/01/29(月) 19:58:55 ]
425と426は偽で初めからMPCは使わないのが本物

439 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:01:39 ]
英語も読めないのか
もっと勉強しろよ

440 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:04:29 ]
>>433
MPCを理解してない証拠

441 名前:1 [2007/01/29(月) 20:09:57 ]
選択的探索(前向き枝刈り)

今日における最強のオセロプログラムはすべて、何らかの形で選択的探索を行っている。
ほとんどの局面で、明らかな悪手が多数存在し、それらは悪手であることが確認できるだけ読めば十分である。
深さ12の探索(12手読み)を行うとき、プログラムは深さ4まではすべての可能な手を評価した上で、
本当に悪いと思われる手を排除する。残った手を深さ12まで探索する。
この手続きは Multi Prob-Cut (Michael Buro の考案)と呼ばれ、
上記の例は「カットペア 4/12」になる。もちろん他のカットペアを使うこともでき、
多くのプログラムは複数のカットペアを使っている。

www.amy.hi-ho.ne.jp/okuhara/howtoj.htm

442 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:12:21 ]
ほら、四倍の局面が読めるなんて書いてないし導かれもしないでしょ。

443 名前:1 [2007/01/29(月) 20:25:43 ]
>>442
一手進むごとに、毎回、浅い読みをしなければ深く読めるんだよ



444 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:27:54 ]
その文章は概要を知るにはいいかもしらんけど
端折りすぎてて実装するには情報が全く不十分なんだよね
勝手に脳内補完して勘違いしてる人も実際いるし

445 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:29:11 ]
深さ4なだけで4倍じゃないだろ。
もっと80倍ぐらいじゃないか?

446 名前:1 [2007/01/29(月) 20:29:37 ]
>>444
だから実装はしないんだってば

447 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:31:10 ]
実装できるくらいの知識が無いから勘違いしてるんだってば

448 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:44:21 ]
>>446
しないじゃなくてできないと言う方が正確だな.

449 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:00:58 ]
Buroの論文読んでいないor読めないんでしょ?

450 名前:デフォルトの名無しさん [2007/01/29(月) 23:18:07 ]
概念とか、考えがわかれば高校生でも英語の論文読めるよね。

451 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 13:15:23 ]
>>1
読むのにかかる時間をきちんと(定量的に)計算すればどっちが得か分かるはず

452 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 16:24:05 ]
もっとも確立されている理論に
攻撃の的を絞りたいという強迫観念があるらしい

453 名前:1 [2007/01/30(火) 16:51:09 ]
同一局面のハッシュ値が変わってしまうんだけどわかりますか?
未だに読みにくくてすみません
開発だけはしてますよっていううpのため、デバックや改良してもらう事をのぞんで
いる(いた)わけではかったんです
しかし、わからないのでうpします



454 名前:1 [2007/01/30(火) 16:51:44 ]
肝心のアドレス書き忘れた
ここです
up2moe.moe.hm/img/q546.txt

455 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:01:11 ]
そんなもの誰も読まないよ

456 名前:1 [2007/01/30(火) 17:01:37 ]
221行目からの部分です(不要な部分は省略しました)
なぜでしょうか?

z=te[5*x+3+cn]; //指し手34番が入力される

situ(); //取れるコマを出す

hmove(); //次局面のハッシュ値を計算する

adress(); //次局面のアドレスをpにセットする

if(z==34){fn(s);printf("ハッシュ値=%d 指し手=%d 深さ=%d %f\n",p,z,u,kar[u+1]);} 
//ここで毎回アドレスが変わってしまいます

457 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:04:39 ]
正しいつづりはaddressね
恥ずかしい間違い多いね

458 名前:デフォルトの名無しさん [2007/01/30(火) 17:06:36 ]
助けてほしいならそれなりのお願いの仕方あるんじゃないの?
相変わらずコメントは入ってないし、変数名も意味不明。
お前が何を考えているかみんなわかっているような聞き方だけど、
そのソースを読んでやりたいことを理解して、その上で丁寧なアドバイスをしてくれるような
物好きはいないと思うよ。

とりあえずadress();消してみればいいんじゃね?

459 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:09:07 ]
>>456みたくソースにもコメントつけてくれ

460 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:12:39 ]
みんなに自分の考えを伝える気が無いなら延々と一人でデバッグしとけば?

461 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:15:46 ]
とりあえずaddress();消してみてるに100ペソ

462 名前:1 [2007/01/30(火) 17:19:59 ]
自己解決するしかないか...
コメントつけたとしても、それで伝わるとは限らないんですよ
全体をまんべんなく伝えきらなければ伝わらないと思うんです

463 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:21:35 ]
試しもしないで何適当な事言ってんだか
人に伝えるのがそんなに面倒か?



464 名前:1 [2007/01/30(火) 17:22:32 ]
mt()ルーチンにだけコメントつけてみますね
ちょっとまってて下さい

465 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:23:13 ]
伝わるとは限らないが、コメントはつけろ
まずはそれからだ

466 名前:デフォルトの名無しさん [2007/01/30(火) 17:29:40 ]
コメントをつけると伝わる可能性がちょっとは増えると思うけどな。
と言っても3%くらいだけど。

まずはハッシュの計算以外の関数をコメントアウトしろ。
それでハッシュ値が正しかったら、コメントアウトしたとこに原因がある。
徐々にコメントアウトを解除していって、絞り込んでいけ。

467 名前:1 [2007/01/30(火) 17:31:02 ]
void mt(){
BB:  //ラベル
s=t+u; // s = 現在の指し手 + 読みの深さ
x=ad[s]; // 読み位置のアドレス
if(te[5*x]<=128){z=64;te_add();} //手が壊れいたら新規に登録
tu=te[5*x+3]; //指し手の記録総数

if(tu==0){  指し手が0ならば
if(td==1){ ・・・ }  2度指し手が0なら勝敗を記録
else{ ・・・ } 1度指し手が0ならパスで指し進める
}

cn=te[5*x]&63; //現在の手の読み位置
z=te[5*x+3+cn]; //現在の手
situ(); //取れるコマを出す

if(sit[0]==masu[s][ch(F)]){ ・・・ } //すべてのコマが取れるなら勝敗を記録

if((masu[s][0]+masu[s][1])>=63){ ・・・ } //残りのマスが1つだけなら勝敗を記録

if(ha[u]==1){ ・・・ } //手を戻してやってきたとき
hmove();adress(); //手を進めてやってきたとき

FF:;
if(te_deteru)w=tu-1; else w=tu+3; //現局面の手がすべて出ているとき
kar[u+1]=kar[u]+rt[w][cn-1]; //確率の計算(対数を使う)
if((kar[u+1]<0) && (kar[u+1]<lg*(hash[p].k-1))){ //確率が残っていて、まだ指し進めていないとき
hash[p].k=1+(int)(kar[u+1]/lg);move();goto BB;}

468 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:35:09 ]
( ゚д゚)ポカーン

469 名前:1 [2007/01/30(火) 17:38:13 ]
続き

LL:; //ラベル
if(hash[p].b==N){gote_hyoka();hash_bset(p,y);y=N+1-y;} //後手の評価が未登録ならば評価関数を使って値を記録
else{y=N+1-hash[p].b; //後手の評価が計算済みならばそれを使う
if(y==N+1){・・・} yがN+1ならば先手の勝ち、勝敗を記録する
}

if(y>te_max(x))te_change(); yが記録されている最大値より大きいならば手を交換して値を記録する

if(cn>=tu){ //手のカウントが、手の総数以上のとき
te_add(); //手を追加する
if(z==97){y=te_max(x);hash_bset(x,y);te[5*x]=129;remove();}} //手が追加出来ないときは最大値を、上のルートに記録して手を戻す(βカットというもの?)

if(y>g){if(y>hash[x].a)hash_aset(x,y);te[5*x]++;remove();} //yが予想評価値を超えたなら、それを上のルートに記録して手を戻す(αカットというもの?)

cn++;te[5*x]=128+cn;z=te[5*x+3+cn];situ();hmove();adress();goto FF; //αカット、βカットもおこらないならば次の手を調べる
}

470 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:41:26 ]
ダメだこりゃ。。。

471 名前:デフォルトの名無しさん [2007/01/30(火) 17:42:02 ]
ごめんなさい。期待した俺が悪かったです。もうスパゲティーはたくさんです。

472 名前:1 [2007/01/30(火) 17:42:05 ]
>>461>>466
わかりました
やってみます

473 名前:デフォルトの名無しさん [2007/01/30(火) 17:42:42 ]
フローチャート書いてくれね?200倍わかりやすいと思う。



474 名前:1 [2007/01/30(火) 17:47:53 ]
わかりました
フローチャート書いてみます

475 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:52:47 ]
お前ら釣られ過ぎ。
小学生の相手してても仕方ねーべ。

476 名前:1 [2007/01/30(火) 18:28:06 ]
フローチャート自動作成ツールはありませんかね?

477 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 18:38:47 ]
>>BB:  //ラベル

こんな馬鹿なコメントは無いぞw
盤面の初期化とかもっとブロックを表すにふさわしいコメントつけろよw

478 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 18:39:27 ]
>>467-469
1.ラベルのコメントは、そこからどんな処理をするルーチンが始まるのかを示せ。「//ラベル」は無意味。
2.概要として「αカット、βカットも…」の様な書き方は構わないが、変数名や定数が何を意味しているか分からないのでその詳細が不明。
3.何度もいわれていることではあるが、文ごと(ザックリ言うと;ごと)に改行すべし。
4.変数の使い回しみたいにコメント中の「差し手」も複数の意味で使い回してる?

479 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 18:41:26 ]
フローチャートは廃れた。

箇条書きの日本語に流れを書け!
いまはこちらが主流。

480 名前:デフォルトの名無しさん [2007/01/30(火) 18:42:39 ]
初心者って絶対やるよな。

var = 1 + 1;//計算したものをvarに代入

とか意味の無いコメントw
まぁ、必ず通る道だと思うけどな

481 名前:デフォルトの名無しさん [2007/01/30(火) 18:44:38 ]
>>476
べつにそこまでちゃんと書かなくていい。
コメント書かないならどういう流れで処理をしたいのか、それがわかればいいんだから、
手書きで紙に書いてうpでもいいくらい。

とりあえず処理を順番に箇条書きで

482 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 18:57:18 ]
//αカット、βカットもおこらないならば次の手を調べる
とあるので、上のif文見たけど分岐してない?
よく見るとremove()内で分岐している…

このような書き方は避けるべきだ。
制御構造が分かりづらい。

483 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 18:59:05 ]
というよりもGOTO&ラベル使うな!



484 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 19:42:30 ]
そうじゃない、コメントとソースはもういい

まずはアルゴリズムとか処理の流れを日本語で説明するんだ。

485 名前:1 [2007/01/30(火) 19:53:21 ]
186行目あたりが間違えてました

if((hash[x].h==y) && (k==w)){ad[s+1]=p;break;}
ではなくて


if((hash[p].h==y) && (k==w)){ad[s+1]=p;break;}
でした

486 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 19:53:56 ]
コンパイルして逆アセンブルしてからのが読みやすいかもしれん

487 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 20:01:04 ]
スパゲッティをコンパイルしてもスパゲッティしか吐いてくれんよ

488 名前:デフォルトの名無しさん [2007/01/30(火) 20:04:16 ]
最適化できないような絡み方してそう

489 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 20:07:13 ]
ところで、part2になっても期間は三ヶ月以内なのか?
いつまでたっても〆切が来ないぞ

490 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 22:03:21 ]
いい勝負しそうじゃね?
ttp://www0.us.ioccc.org/main.html


491 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 00:17:32 ]
いきなりプログラム書かずに、日本語で書いてアルゴリズムを整理するべきだろ

492 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 00:50:37 ]
>>491
1はそれで失敗してるんじゃなかったっけ?

493 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 00:58:29 ]
お前ら、難読可ツール通したソースに何マジレスしてるんだ?







494 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 01:11:08 ]
>>491
イメージをつかむため、
ダイアグラムなどを使ってマインドストーミングして、
仕様を日本語で書き、
仕様記述言語で書き、
プログラムを書き、
検証ソフトを使って検証するんだよ

495 名前:デフォルトの名無しさん [2007/01/31(水) 02:18:32 ]
面白い・・・

496 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 04:57:48 ]
C言語初心者のもれも参戦。途中でやめるかも知れないが、生暖かく見守ってくれ。

497 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 05:16:12 ]
さらに混乱の要素を増やすというのかw
がんばってかき回してくれ

498 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 06:55:03 ]
>>496
君のような人が現れるのを待ってた
応援するよ

499 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:31:49 ]
みんな、違うぞ

日本語で書いたアルゴリズムを、このスレで後悔しろと言っているんだよ

500 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:10:06 ]
既に紙の上にはまとめてあるって言ってたよね?

501 名前:デフォルトの名無しさん [2007/01/31(水) 12:14:13 ]
バグが出ました



アルゴリズムとかかけ



バグ直りました


この流れから、アルゴリズムとか書けって言われたのは、バグ直すためだとおもってるんじゃね?
だから書かないんじゃね

502 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:27:12 ]
能力が無いのに努力しないで言い訳ばかり
人とコミュニケーションが全くできない
自分の間違いを指摘されても正さない
人を見下している
平気で嘘をつく
1を見てるとイライラするね

503 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:29:21 ]
1は小学生か幼稚園児だろ
大目に見てやれよ



504 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:35:18 ]
まあ、>>1が小学生であろうと幼稚園児であろうと一向に構わないが、
とりあえず公の場でやると宣言したからには必ずやり遂げてもらわないと。
公の場で発言することの重要性を身をもって知ってもらわないとね。

とりあえず、>>1は毎日進行状況を全員に解るように報告しなさい。

505 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:44:58 ]
>>496
本気ならトリ付きで。

506 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:00:19 ]
>>496
1と同じ事されるのはごめんだけどやめても別に責めないよ
ところでC言語はどれくらい勉強したの?

507 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:00:41 ]
誰か、1 に見本として見せられるような、日本語の良コメントのついたソース知らない?

508 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:02:52 ]
どうせ見ないんじゃない?
論文教えても見なかった前科があるし

509 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:13:08 ]
homepage1.nifty.com/~takaot/prprpr/comment.html
ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
homepage2.nifty.com/cat-chy/cp/how_to_write_comment.html
コメントの書き方でとりあえずこの辺りは参考になると思う

510 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 17:12:44 ]
何この1www
プログラムも人間性もカスじゃんww

511 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 17:21:59 ]
>>510
アルゴリズム・理論もね

512 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 22:51:46 ]
>>1どこいった

513 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 23:44:34 ]
今北産業



514 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:22:37 ]
>>1最強のアルゴリズムできた→
goto多用、変数不明、コメントなしのスパゲッティ→
>>502>>1を温かく見守るスレ

515 名前:デフォルトの名無しさん [2007/02/01(木) 05:18:41 ]
プログラムよりプログラマがおもしろい

516 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 09:09:46 ]
無能な1とそれに翻弄される住人達

517 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 14:46:59 ]
>>1は準アニータ

518 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 16:21:14 ]
ここ落ちてた?

519 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 16:22:04 ]
2ch全部ね

520 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 17:01:42 ]
電源工事だよ

521 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/01(木) 22:27:06 ]
>>498
ありがとう。期待に沿えるかわからないが。

>>505
いまのところ本気。

>>506
どう答えればいいのかな・・・。1のソースが理解できないぐらい。

522 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:33:15 ]
>>521
1のソースは読まないほうがいいよ。
あれは悪い例だから決して真似しちゃだめだよ。

523 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:35:23 ]
>>521
何か読んでる本とかサイトはある?
変数宣言とか条件分岐やループはわかる?
キーボードやファイルの入出力は?



524 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/01(木) 22:57:41 ]
>>522
了解しますた。

>>523
制御文、ポインタ、関数、構造体あたりは理解できます。
逆にキーボードやファイルの入出力が怪しい・・・。
よく見るサイトは
ttp://wisdom.sakura.ne.jp/

525 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 23:07:20 ]
なるほど。
そこのC言語入門は一通り読み終えたのかな?
じゃあまず8x8マス分の黒・白・空の情報を持つ盤と
座標を引数として渡せば盤の石を返す関数を作ってみて。
まずは正しく動くように気をつけて書く

526 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 01:35:55 ]
なんか面白そうだな
がんがれ>>496

527 名前:デフォルトの名無しさん [2007/02/02(金) 03:34:50 ]
期待age

528 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/02(金) 12:03:56 ]
できますた。突っ込み待ってまつ。
ud.gs/300hs
パスは鳥

529 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 12:07:50 ]
>>528
おつ。
言われた以上の事をやってるな。
けっこうできるんじゃん。

530 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:01:22 ]
既存のオセロプログラムのソースとか>>7のリンク先とかは読んだ事ある?
なんだか読んだ事がありそうっていうか多少知識がありそうな書き方だね。

531 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:11:21 ]
>>528
パス付きはやめれ
up2moe.moe.hm/img/q564.zip

532 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:19:26 ]
>>531
なぜパス付きはだめ?
このスレ見てればわかるのに

533 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:26:32 ]
専ブラで右クリック即保存が出来ない。
逆になんでパス無しではだめ?



534 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:44:42 ]
そんなのアップする人の自由

535 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:54:04 ]
じゃあ聞き方を変えよう。なぜパス付きにしたいの?
特に理由が無いなら >533 とかの事情もあるし、配慮してくれればうれしいのだけど。

536 名前:1 [2007/02/02(金) 13:58:59 ]
思考ルーチン以外のバグが特定できないため一から作り直します

537 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 14:03:59 ]
>>535
本人に聞けよ

538 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 14:08:59 ]
>>535
いずれにしても直リン禁止のアップローダが多いと思うのだけど。

それはさておき、このまま>1が「最強の嗜好ルーチン」とやらを完成させるのと、
>496がみんなの支援を受けつつ充分強いプログラムを完成させるのと、
どっちが見込みある……かは>536が本人かどうかに関わらず明らかだね。

539 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 14:33:03 ]
>>536
お前もうイラネ

540 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 16:02:21 ]
>>528
なかなかいいね
この調子で頑張って

541 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 16:10:42 ]
>>528
探索をするためには盤面を戻す操作も必要だから次はまずこれを実装してね。
ここでコピー方式と差分方式がある。差分がいいと思うけど。
既にやってたりもっと行けそうだと思ったりしたら進みたいとこまで進んでいいよ。

542 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 16:14:13 ]
ここで衝撃の事実、>>1=>>496、が明かされる

543 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 16:18:27 ]
それは俺もちょっと思ったけど。
別人でしょ。



544 名前:1 [2007/02/02(金) 17:45:16 ]
なかなかうまくいかないので、関数の入出力と、それを確認するプログラムを
始めに作ることにする

545 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 17:47:01 ]
お前誰?
誤爆?

546 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 18:13:12 ]
>>544
一つ一つの関数を検査する時には仕様どおりに動いても、グローバル変数を使い回す限り、
他の関数と組み合わさった時に認識困難で追跡困難、修正困難なバグがいくつも出てくるよ。

547 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 18:33:42 ]
1が作る限り確認プログラムにも必ずバグが入る

548 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 18:47:57 ]
test


549 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/02(金) 19:02:09 ]
>>529,540
ありがとう。そう言ってもらえるとうれしい。

>>530
>>1,7の日本語のページはどれも読んだことあります。英文はどんどん後回しに・・・。
ソースは Thell と Zebra をちらっと見た程度でつ。

>>531
このスレ見てない人に見られるのはちょっと抵抗が・・・。

>>538
そのためにはまだ知識不足なもよう(´・ω・`)

>>541
いま作ってる方法だと、1回分の着手場所と差分を記録するだけで10ワードにもなるんだ。
このどんぶり勘定が後々響いてきそうな悪寒。もっかい検討してみます。

>>542,543
スレへの出現の仕方とか似てますね。いや、別人ですが。


550 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 19:35:02 ]
>>549
着手場所と、それぞれの方向への反転個数だけ記録すればでいいのでは。
どの方向も0〜6までの値しかとらないので、構造体にしてビットフィールド指定すれば
3bit*(8+2)=30bit = 1dword で済む気がする。

551 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:07:15 ]
ダウンロードができないよ。

552 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:32:51 ]
俺も>>528が落ちない
うpろだ死んでる?

553 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:34:44 ]
>>1のソースと比べると雲泥の差だな



554 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:39:30 ]
>>551-552
>>531 にコピーがある

555 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:24:38 ]
>>554
サンクス。
落とせた。

556 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 23:58:45 ]
レジスタ使わないほうが速いな。

Core2は同時に使用するレジスタ数が少ないと非常に高いパフォーマンスを発揮する。
しかしレジスタ数が増えるとパフォーマンスは劇的に低下する。
整数レジスタが3個+メモリ参照が1個+条件分岐命令が1個の場合、5命令同時に
1クロックで実行を完了する。しかし整数レジスタへのアクセスが1つ増えると処理に
かかるクロックが1クロック増加する(すなわち性能が半分になる)。

557 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:04:26 ]
>>556
その手の話題はこちらへどうぞ

x86命令の所要クロック計測スレPart3
pc10.2ch.net/test/read.cgi/tech/1168399966/

558 名前:1 [2007/02/03(土) 00:53:47 ]
オセロだけではなく、将棋、囲碁プログラム再生用のチェックプログラムを
作ってやるぜ!これでみなさん作成がらくになりますよ

559 名前:1 [2007/02/03(土) 00:55:41 ]
作成でした

560 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 01:39:07 ]
>>556
最適化の前に、まずは動くものを作るべきだろ

561 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 09:46:07 ]
>>496
Minimax法とNegamax法の違いは理解してる?
αβ法をそれぞれの方式で書ける?

562 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 21:36:57 ]
ぐぐってみたが、なかなか面白そうだな
俺も作ってみるか

563 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 22:28:55 ]
>>562
作る人はトリ付けてね
がんばれ



564 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/04(日) 03:39:38 ]
>>550
良い案ありがとう。
色々考えたけど、縦型探索時に記録するのはそれまでの枝の評価値の最大値と、その枝
への経路(差分)のみであって、全ての枝への経路を記録するは必要ないという結論に。
したがってある1経路の記憶容量が多少多くても全体への影響はないと思われます。
横型探索だとそうもいかない気がしますが、当面はこの方向で行こうかと。
もしかしてアホなこと言ってたら訂正願います・・・。

>>556
ガリガリチューンは一番面白そうなとこですが、プログラムがもう少し形になってからで・・・。

>>560
ごもっともです(´・ω・`)

>>561
わかります。ただ書けるかどうかとは別問題だと思うんで、考えながら書いてみまつ。

>>562
作る人が何人か出てきて、対戦させたりすると面白そう。おれが言うのもなんだが、がんばれ。

565 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 04:16:17 ]
俺も少し作ってみたんだが、なんか弱い
探索部分にバグがあるのかなぁ

566 名前:565 mailto:sage [2007/02/04(日) 04:19:11 ]
「リバーシのアルゴリズム」って本を読んでます
難しいことはまだ取り入れてませんが・・・

567 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 05:48:50 ]
対戦用にGUIで盤面作ろうかな、
と思ったんだけど需要はあるのかな?
各オセロプログラムはdllで作ってもらって、
コンボボックスか何かで選択可能みたいな形で…。

568 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 06:51:14 ]
BearRev Professional でdll自作可能って書いてあるみたい
使ったことないからわからんけど

もしGUI作ってくれるならオープンソースがいいな

569 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 08:48:22 ]
>>1は?

570 名前:1 [2007/02/04(日) 10:17:29 ]
ほっといてください

571 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 14:15:26 ]
>>570
ちゃんと人間やめとけよ

572 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 18:50:37 ]
動物にエサを与えないでください
かわいそうと思ってもみんなが迷惑します

573 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 18:54:51 ]
>>566
僕もそれ読んだことがあります。
次は「リバーシプログラムの作り方」っていうシェアウェアを読もうと思ってます。
まだ序盤のサンプルしか読んでませんけど、パターン評価やMPCについては
こっちのほうが詳しそうなので送金して全部読むつもりです。
一応紹介。
hp.vector.co.jp/authors/VA015468/platina/index.html




574 名前:デフォルトの名無しさん [2007/02/04(日) 22:59:34 ]
誰かPart1のログ持ってる?
持ってたらうpして欲しいんだけど

575 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:09:24 ]
たいして面白くないよ。

576 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:10:04 ]
>>574
ttp://makimo.to/cgi-bin/ffind/ffind2.cgi?/2ch/pc10_tech/1166/1166749119.html

577 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:13:53 ]
ソースなんて説明とともにたくさん落ちてるだろ

578 名前:デフォルトの名無しさん [2007/02/04(日) 23:16:55 ]
おーありがとう
今から読む

579 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:27:54 ]
pdfとかより本のほうが読みやすいお

580 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:50:03 ]
「リバーシのアルゴリズム」の本は入門用にはいいんだけどね
トップレベルのプログラムを作るには情報が足りないんだよな
壁を越えるにはBuroの論文は必読

581 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 05:11:55 ]
このスレには馬鹿どもが、しかももったいぶった馬鹿どもがうようよしている。
同じ馬鹿でも偉ぶった馬鹿ほど鼻持ちならないものはない。
普通の馬鹿なら話もできるし、助けてやることもできよう。
しかし自分の馬鹿さ加減を隠すため、
偉そうなでたらめを並べ立てて人を恐れ入らせようとするようなもったいぶった馬鹿だけは、
僕は絶対に我慢できない!
普通の馬鹿はいかさま師ではない。
正直な馬鹿は結構だ。
だが不正直な馬鹿となると始末におえない。
このスレで見たのは、この種の威張り腐った馬鹿どもの群れなのだから僕はすっかり頭にきてしまった。
だからもう決してこのスレを見ないつもりだ。

582 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 05:37:07 ]
おつかれさん

583 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 08:00:57 ]
>>581=>>1
逃げたの?




584 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 08:26:48 ]
やっぱり1は最低だな

585 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 12:28:13 ]
>>573
読んだらレビューよろ

586 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 18:47:46 ]
>>581は、
ttp://boss.noppo.org/~inouetom/memo/20061118.html
に乗ってる本?の改変。つまり誰かのねた。

587 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 19:05:06 ]
ファインマンもこんなことを言うんだね。
子供っぽいw

588 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 19:25:57 ]
いや、ファインマンほど子供っぽいノーベル賞受賞者はいないんじゃまいか

589 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 19:48:55 ]
アインシュタインも結構子供っぽいと思うぞー
www.spacepark.city.koriyama.fukushima.jp/events/Science/2005/1015/img01.jpg

590 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 19:49:46 ]
つまり、お前らが普段大人っぽいと思っているスタイルは、ただの馬鹿だったりするわけだ

591 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 20:06:14 ]
逆じゃないか?
才能があったら大人っぽくしなくてもいいんだよ。
凡人が子供っぽくしてたら…

592 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 20:07:28 ]
そうではありません。
バカと天才は紙一重と言われる所以はスタイルが似ているからです。
大人っぽいスタイルは凡庸な人です。

593 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 20:13:41 ]
つまり裸の大将のスタイルがベストだと…



594 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 20:25:28 ]
アインシュタインはアスペルガー症候群だから、子供っぽいところは仕方がない。

595 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 20:33:16 ]
1が来ないから雑談が続く

596 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 21:10:11 ]
>>585
今日送金しました。ライセンスキーが来てないのでまだ読んでませんけど。
レビューですか・・そういうの苦手なんですけど・・。
作者は日本のコンピュータオセロ界で3本の指には入る
実力の持ち主なので間違いなく良いだろうと思います。
僕は彼がトップだと思ってるんですけどね。
でもこんな風に考えてる僕ですから
レビューもバイアスが掛かったものになるかもしれません。

597 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 03:03:05 ]
>>596
バイアス上等。楽しみに待ってるよ。

598 名前:デフォルトの名無しさん [2007/02/06(火) 12:59:32 ]
c++の機能を使って作り直しているんだけど
下から2行目を実現するにはどうしたらいいですか?


class board {
unsigned char bd[2][8];
public:
board(){for(int i=0;i<2;i++)for(int j=0;j<8;j++)bd[i][j]=0;bd[0][3]=16;bd[0][4]=8;bd[1][3]=8;bd[1][4]=16;}
board& operator=(board& x){for(int i=0;i<2;i++)for(int j=0;j<8;j++)bd[i][j]=x.bd[i][j];return *this;}
int operator()(int z){int m,n;m=z/8;n=z-8*m;return (((bd[0][m]>>n)&1)+2*((bd[1][m]>>n)&1));}
};


main(){
board bord;
printf("%d\n",bord(27));

//  bord(27)=1; 0は空 1は黒 2は白
}

599 名前:1 [2007/02/06(火) 13:00:22 ]
>>598は1です

600 名前:1 [2007/02/06(火) 13:05:49 ]
bord=1だったら、board& operator=(int n)で出来ますよね

これに括弧を付けるにはどうしたら?

601 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 15:32:34 ]
何このわけわかんないオペレーターオーバーロード

602 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 15:32:35 ]
>>598-600
boardクラスにset()関数でも作ってみては?
board& set(int index, char color) { bd[…]=color; }
こんなの。

あと、変数名が訳分からんのが昔のままだからそこも直しておくれ。

603 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 15:37:51 ]
動物にエサを与えないでください
かわいそうと思ってもみんなが迷惑します



604 名前:1 [2007/02/06(火) 19:06:09 ]
>>602
わかりました!そうしてみます

605 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 19:29:43 ]
相変わらずゴミを生産してますね。

誰も読む気がしないだろ。

インデント覚えろカス。

606 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 19:58:50 ]
1 は幼稚園児なのか小学生なのかは知らないが釣りとしか思えない。

607 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 20:00:47 ]
スルーしとけ。
お前らスルー憶えろ。

608 名前:1 [2007/02/06(火) 20:41:44 ]
どう直したらいいのか書いてくれ
598だと

609 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 20:46:43 ]
厳しい助言

このスレみてみろ。
pc10.2ch.net/test/read.cgi/tech/1153542424/
誰もお前みたいな書き方してないぞ。
このスレ見て勉強しろ。


610 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:09:32 ]
>>496
はかどってますかー?
どんな感じー?

611 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:10:27 ]
>>565
強くなったかいー?

612 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:43:19 ]
「リバーシのアルゴリズム」を注文した
まずはこれ読んでみようと思う

613 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:45:44 ]
>>598
なんで二重ループとか単純でないメンバ関数を一行で書くかなこの人は。



614 名前:1 [2007/02/06(火) 21:50:49 ]
>>613
どこまでがひとつの関数(処理)なのかが一目瞭然だよ?

615 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:57:46 ]
ねーよwww

616 名前:1 [2007/02/06(火) 21:58:58 ]
>>614は偽者です
誰か>>598を直してもらえませんかね?

617 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/06(火) 22:09:58 ]
>>565
作成の話題が出たと思ったら、すでに漏れの斜め上を進んでおられるようでつね・・・(´・ω・`)

>>567
面白そう。DLLをみんなで何パターンか作れれば良いと思うがどうだろう。

>>610
あんましはかどってないです。とりあえずαβ法を実装したところです。
いまは序中盤の評価関数のことで頭がいっぱい・・・。問題の解がないぶん、終盤よりはるかに難しいです。

あと今日の時点のソースでつ。変な部分にはどうか突っ込みお願いします。
ttp://ud.gs/300kc
パスは前回と同じで、鳥です。

618 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:13:22 ]
将棋だとGUIにCSA将棋とか何とか言うのがあるんだが
あれを規範に、リバーシもGUIだけ誰かつくらないものか。

619 名前:1 [2007/02/06(火) 22:14:53 ]
>>1

BearRev Professional は高機能リバーシです。
以下の特徴があります

対局者は DLL として自作可能
デザインや音はカスタマイズ可能


www20.pos.to/~sleipnir/software/bearreversi/index.html

620 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:27:55 ]
>>619
ああ、すごくいいじゃないか。
1に書いてあったな。それはすまなかった。

1は意外なところで役に立ったな。

621 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:30:53 ]
>>617
おつ。
ざっと見たけどいい感じ。
素直な実装だね。
次は中盤評価関数か終盤解析?

622 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 23:28:41 ]
左辺値と右辺値を知らないのか?

623 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/06(火) 23:37:25 ]
>>621
ありがとう。
とりあえず間に合わせで序中盤の評価関数を書いておき、一定の水準で思考できるようになったあたりで
いろいろと手を広げてみようかなと。
終盤は今の状態に、さらに序中盤の評価関数で使うネタを加味しようと思っています。
ネタ? これから考えますorz



624 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:02:14 ]
>>616
ttp://up2moe.moe.hm/img/q599.txt

625 名前:1 [2007/02/07(水) 00:15:13 ]
>>624
ありがとう
でもよくわからないので今までのソースでいく

626 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:17:51 ]
>>625
\(^o^)/モウダメポ

627 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:18:12 ]
>>625
(・д・)ポカーン

628 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:28:39 ]
>>625
これはさすがにネタ or 偽者だろ

629 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:30:48 ]
>>1
お前はまだC++に手出すのは早い
Cでどんなコードが出るのか,C++だとどうなのか,
自分の眼で確かめられるだけのハードの知識を付けてからに汁

630 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 05:19:59 ]
我流初心者なんてそんなもんだ

631 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 05:40:02 ]
1はわざと阿呆のふりをして、「これくらいだったら俺のほうが良いものができそうだ」と
思わせるのに徹しているのかも知れない。だとしたら1は天才!!



本当はただの天然なんだろうけどよ('A`)

632 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 05:55:20 ]
大学院いってても、基本的な部分で馬鹿だとこうなるって
見本のようなヤツだ

633 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 06:10:29 ]
俺はこのスレで紹介されてるもののどれかの作者が、宣伝のために
馬鹿な1を演じているんじゃないかとか勘ぐってしまった。



634 名前:デフォルトの名無しさん mailto:sage バックアップ [2007/02/07(水) 12:14:36 ]
>617 ttp://up2moe.moe.hm/img/q600.zip

635 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 13:58:34 ]
>>617
DLできなかったので>>634からDL

int Search( ---, int mover, int rival, --- ) としておいて、
相手番を探索する時は
tmp = Search( ---, rival, mover, --- ); で呼ぶのはどうだろう?

あるいは、
#define EDGE (3)
rival = mover ^ EDGE;

出来るだけ「色を意識しない」つくりのほうがいいと思う。

>>634
.zipの中に.zipがあるみたいで、同フォルダで解凍すると上書きして壊してしまうみたい。


636 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 14:22:31 ]
rival = BLACK + WHITE - mover;

637 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:01:36 ]
関数にしちゃダメ?

rival = getRival(mover);

int getRival(int mover){
if(mover == BLACK) rival = WHITE;
else rival = BLACK;
}

638 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:39:49 ]
int getRival(int mover){
if(mover == BLACK)
return WHITE;
return BLACK;
}


639 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:43:51 ]
アホデスカ

640 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:50:34 ]
アホデスネ

641 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 17:00:49 ]
どなたかMOUSE(µ)アルゴリズムを試す人は居ませんか?
www.tournavitis.de/herakles/engines.htm

642 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 18:59:38 ]
>>617
今は問題ないけどSearch関数内のtmp=-1ってのが気になった

それとNegaMaxにした方が場合分けが無くなっていいかなと

643 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/07(水) 22:02:58 ]
>>634
うpろだドットネットはたまに落ちてるときありますね・・・。
短縮URLを使ってるので、そのときに(たぶん)発生するリダイレクトが原因で見れないのかも。
もふもふろだはパス付きzipが不可な点が気になりまつ。zipの中にパス付きzip入れときゃ良い気もしますが。

>>635
EDGE などの定数の実際の値は、まだ考慮の余地がある気がするので、とりあえず
rival = mover ^ (BLACK ^ WHITE) としとけば良いでしょうか?

>>642
NegaMax法良いでつね。移行してみます。
tmp = -1; だと、もしやまずい点が?
mover のパスの処理について良い案が浮かばず、このようになってしまいますた・・・。



644 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/07(水) 22:12:12 ]
>>637>>638
>>643の方法と合わせて、関数っぽいマクロにしときまつ。

645 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 22:17:18 ]
636がよくない?

646 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 22:32:45 ]
>>645
同意

647 名前:496 ◆8VT5lt6VLs mailto:sage [2007/02/07(水) 22:37:47 ]
見落としてますたorz
そうします。

648 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 22:39:28 ]
>>643
Zebra(ttp://radagast.se/othello/)の
Writing an Othello program ページの下のほうに
Some source code の Basic endgame solver欄があって、
終盤解析のソースが2つDLできるよ(endgame.c と、リンク先にsolver.1-4.zip)。
すでにDL済みなら、ゴメン。

649 名前:648 mailto:sage [2007/02/07(水) 22:42:43 ]
訂正
ttp://radagast.se/othello/

リンクに括弧がくっついちゃった。

650 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 00:51:28 ]
「リバーシプログラムの作り方」をざっと読んでみました。
これに同梱されてるプログラムは強化学習を使っていて
自動対局・学習でどんどん強くなるんですね。
文章はこのプログラムのソースコードの解説が基本ですが
最初はシンプルな実装で動くものを作る所から始めて
後から機能を追加したり書き換えたりする構成で
よく系統立てられていると思います。
内容的にも必要な基本技術が一通りそろっていますが、
個人的には置換表を導入するところも解説してほしかったですね。
評価関数の作成で強化学習を適用しているところと各所での高速化の手法や
MPCの部分がとても勉強になりました。
MPCについてはここまで詳しく解説している日本語文献は無いと思います。
さらに改善可能な箇所も挙げられていて各人で工夫する余地が示されています。
皆さんもこれを読む事をお勧めします。
これからまたじっくり読みます。

651 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 15:19:59 ]
「リバーシプログラムの作り方」を読みました。ソースコードの解説が主ですが
シンプルな実装から始めていき、機能を追加する構成になっています。
基本技術が一通り説明されていますが置換表の解説はありません。
強化学習により評価関数を作成する部分と各所の高速化の手法、MPCの部分が勉強になりました。

652 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 19:19:26 ]
レビュー乙
でもなぜ2回・・・

653 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 19:47:29 ]
多分 
>>650が黒番
>>651が白番



654 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 20:06:20 ]
>>651はバイアスが掛かってると思った部分を除いたり何かして
誰かが書き直したものでしょう

655 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 21:17:23 ]
>>651>>1なんじゃね?


656 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:01:57 ]
実際に有効かは分からないが,使えそうな配列を見つけたので貼っとく.

int base[] =
{0,14,5,1,19,8,16,24,32,54,37,33,67,48,64,80,
96,110,101,97,131,104,128,136,160,198,165,161,227,192,224,2464,
256,270,261,257,275,264,272,280,320,342,325,321,387,336,384,400,
448,462,453,449,515,456,512,520,576,646,581,577,707,640,704,7744,
768,782,773,769,787,776,784,792,800,822,805,801,899,816,896,912,
928,942,933,929,1027,936,1024,1032,1056,1158,1061,1057,1187,1152,1184,2432,
1280,1294,1285,1281,1299,1288,1296,1304,1408,1430,1413,1409,1539,1424,1536,1552,
1664,1678,1669,1665,1795,1672,1792,1800,1920,2054,1925,1921,2179,2048,2176,2304,
2560,2574,2565,2561,2579,2568,2576,2584,2592,2614,2597,2593,2627,2608,2624,2640,
2656,2670,2661,2657,2819,2664,2816,2824,2848,2886,2853,2849,2915,2880,2912,7456,
3072,3086,3077,3073,3091,3080,3088,3096,3136,3158,3141,3137,3331,3152,3328,3344,
3392,3406,3397,3393,3587,3400,3584,3592,3648,3846,3653,3649,3907,3840,3904,7680,
4096,4110,4101,4097,4115,4104,4112,4120,4128,4150,4133,4129,4355,4144,4352,4368,
4384,4398,4389,4385,4611,4392,4608,4616,4640,4870,4645,4641,4899,4864,4896,7424,
5120,5134,5125,5121,5139,5128,5136,5144,5376,5398,5381,5377,5635,5392,5632,5648,
5888,5902,5893,5889,6147,5896,6144,6152,6400,6662,6405,6401,6915,6656,6912,7168};

この配列は2つの1バイトのビットパターン b,w (b&w == 0) に対して
(int) r = base[b|w]+b (or base[b|w]+w)
を重複なく定める.
可能なパターン数3^8=6561に対して,rのとりうる値は[0, 7872)なので
濃度は83%強.もっと圧縮する方法があるのかもしれないが,俺にはもうムリポ

あと,単純なリバーシを作ってみたんだけど,zip貼るのに適したロダってある?


657 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:27:25 ]
>>656
パスとか暗号とか言い出さなければ、もふろだでいいんじゃね?
ttp://up2moe.moe.hm/upload.php

C/C++のソースなら、元々ソースコード用の↓でもいいし。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

どちらも直リンが通り、過負荷でDL出来なかった経験がない所がありがたい。

658 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:37:45 ]
>>656
よくわからんのだが、これはbitboardにして辺の評価に使うんか?

659 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:53:49 ]
>>656
どこでもいんじゃね?見る側がとやかく言うこともないだろ。好きなとこでいいよ
>>658
ハッシュじゃないか?違うかもしれんが



660 名前:656 mailto:sage [2007/02/08(木) 23:50:37 ]
>657 thx
まだ単純なαβと寄せ集めの評価関数を実装したレベル(処理量の都合で6手読みまで)
ttp://up2moe.moe.hm/img/q669.zip

LinuxでGNU makeがあればmakeでいけるはずだけど,色々怪しい動きをしてるから
問題があるかもしれない.
最悪全てのソース(.cc),ヘッダ(.hh)を一ヶ所に集めてまとめてC++コンパイラに
かければ大丈夫だと思う.拡張子がマイナーなのは申し訳ない.

>658,659
一応ハッシュの一種.
単射性を損ねずにどこまで処理量と空間量を削れるかに挑戦してた.
(まだ試してないけど)

661 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 00:05:47 ]
>>660
落ちてる?DLできないんだが

662 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 00:32:32 ]
>>661
普通に開けたけど。

663 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 00:45:06 ]
俺の場合はDLしてもファイルが壊れてて解凍できないって出る



664 名前:661 mailto:sage [2007/02/09(金) 00:50:58 ]
>>662
サンクス!今試したらDLできた
しかし解凍してもファイルが出てこんぞ。。。当方+Lhaca1.20使用
ちなみにエラーは出てない

665 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 00:53:38 ]
普通に解凍すると、「q669」ファイルが出てくる
.zipにリネームしたら更に解凍出来た。
Lhaplus1.52使用

666 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 00:55:48 ]
ちょ、ナニコレw 

% file q669.zip
q669.zip: gzip compressed data, from Unix

% mv q669.zip q669.gz
% gzip -d q669.gz
% file q669
q669: Zip archive data, at least v1.0 to extract

%

667 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 01:05:19 ]
二重に圧縮してるのか
解凍できた

668 名前:661 mailto:sage [2007/02/09(金) 01:09:29 ]
+Lhacaには荷が重かったなw
>>666を参考にcygwin経由で無事解凍

669 名前:1 [2007/02/09(金) 11:14:09 ]
ちゃんとうごいていないけどNewバージョン

up2moe.moe.hm/img/q670.txt

670 名前:1 [2007/02/09(金) 11:16:12 ]
なるべくグローバル変数を減らして、共有変数を減らしました
関数はほとんど値渡しにしました
でもまだ、動かない 

671 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 12:30:55 ]
うん、一生動かなくて良いよ

672 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 12:44:06 ]
>>660
落とせないです><

673 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 13:34:04 ]
>>672
例の二重圧縮に引っかかってるのでは?



674 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 14:31:04 ]
落とせた
ざっとしか見てないけど読みやすい
1にも読んで欲しい

675 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 15:41:00 ]
>1は1からと言わず0から書き直した方がいいな。

676 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 17:32:17 ]
一旦今までのコードを破棄するのは賛成だが、
すぐにまた書き始めても同じようなものができるだけ。
その前にもっと勉強すべき。
目的だけでなく手段も。
努力が足りなすぎる。

677 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 17:53:38 ]
批判するだけじゃなくて代案を持ってくるぐらいの気概がある人間はいないものかね

678 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:15:01 ]
いやぁ、応援したいのはヤマヤマだけど、コードの意味が分からん以上何も手伝えない。
その上で書き直すよう助言しても殆どの場合が無視。これじゃ手伝えないがな。

せめて1の考えてるアルゴリズムが理解できればコーディングはやってみるのだが。

679 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:16:20 ]
まぁ>>1のおかげでリバーシプログラム書く人が出てきたし>>1は役割を全うした
今後このスレで大会とかしたら面白いかもね

680 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:18:55 ]
代案なら以前にちょくちょく出てる
おまえログ見てないor理解してないだろ

681 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:45:18 ]
>>660
ところでこれどうやって遊ぶの?
メイクはできたんだけど

682 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:57:14 ]
反面教師ってやっぱり必要なんだね。

683 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:19:56 ]
>>660
slideTopLeft() とかって何ですか



684 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:21:54 ]
>>677
>>678

>>616
>>624
>>625

685 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:27:04 ]
一流の釣師なんだよ
他のやつらにやる気を出させてるだろ

686 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 19:40:14 ]
last move:
O turn
moves: D3 C4 F5 E6

ここでF5とかf5とか56とか打っても何もならないんだけど

687 名前:660 mailto:sage [2007/02/09(金) 20:01:24 ]
>>686
すまないがちょっと理由が思い付かない.文字関連かも
とりあえず,HumanPlayer.ccの87行目の strToIndex(...) 内の
return r;
の直前に
cout << r << endl;
を挿入してコンパイルした後,F5と入力したときの出力を教えてほしい.

>>683
盤面の斜めラインを縦に並べるための操作.
verticalScan()で全8列の縦方向の着手可能点を一気に求めているので,
それに合わせるために使います.
Boardクラスは遊び半分でやってみた部分が多いので近々書き直すかも

688 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 20:12:10 ]
F5
-1075227799
こんなだった

689 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 20:14:49 ]
というかソース読んだらすぐ分かった
int r; を int r = 0; とするか
r += 8*(str[1]-'1'); を r = 8*(str[1]-'1');
とすればいいんだ
これで打てた

690 名前:660 mailto:sage [2007/02/09(金) 20:30:04 ]
サンクス
普通にバグだったか…orz

ただこの辺はワイド文字とかに対応してないから書き直した方がいいな


691 名前:1 [2007/02/10(土) 04:38:53 ]
差し手のサーチがうまくいかない...誰かわかりますか?

up2moe.moe.hm/img/q671.txt

692 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 04:44:49 ]
1の考えてるアルゴリズムに問題がある。
期待通りに動かないのは正常。

693 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 05:00:40 ]
1はプログラミングという手段をずいぶんと軽視しているが
その手段を手段として使えておらずにむしろ足元をすくわれている



694 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 05:04:01 ]
アルゴリズムを説明してごらん。
問題点を指摘してあげるよ。

695 名前:1 [2007/02/10(土) 05:11:44 ]
差し手に関数部分だけを抽出しました
どうかよろしくお願いします

up2moe.moe.hm/img/q673.txt

696 名前:1 [2007/02/10(土) 05:15:39 ]
serch(bord ,-1, F) だと新規に
Fの手番で検索します

0番目から順に8方向探索して、
torerusuが1以上ならばそこにおけると判定します




int serch(board bord ,int z, int F){
int w,l;
for(w=z+1;w<64;w++){
fore(l,8)if(torerusu(bord,w,F,l)>0)break;
if(l<8)return w;}return 64;}

697 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 05:16:36 ]
アルゴリズムの説明はしないの?
説明すれば言ってることと書いてることの違いはわかるけど?

698 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 07:46:18 ]
1にできると思う?

699 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 07:52:08 ]
lp[] を作るためのiの初期化に失敗しているような気がする.
(lp[] を作る意図が不明なので「気がする」という表現にしておく.)

考えていることもろくに説明もせずに「誰かわかりますか?」って(ry


700 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 09:35:43 ]
5 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/06(火) 20:41:01
11 名前:デフォルトの名無しさん[sage] 投稿日:2007/01/18(木) 19:19:37
質問するときに
〜したいのですが、上手くいきません。
〜したときにエラーが出ます。

という書き方はイクナイ。
何も書いてないのと同じ☆

〜したいのですが、〜で〜が失敗します。
〜したときに〜エラーが出ます。

隠さずくわしくかきましょう

701 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 09:42:33 ]
上手くいかない、じゃなくて何がどう上手くいかないか書けよ。
出し惜しみしてんじゃないよ。

コード見たりコンパイルするきないけど、
症状からだけでも判断できる場合がある。

702 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 09:49:49 ]
インデントの効用
制御構造が一目(言いすぎか?)で分かる。


703 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 09:59:57 ]
>>702
ちゃんと書かれたソースに関しては、言い過ぎではない。

但し、制御構造さえも置き換えるようなマクロを多用した糞コードでは殆ど無意味。



704 名前:701 mailto:sage [2007/02/10(土) 10:03:50 ]
w<64って変じゃないか?
あと関係ないけど、
if(torerusu(bord,w,F,l)>0)break;は
if(torerusu(bord,w,F,l))break;でいいんじゃないのか?

serchって取れるかどうかの判断結果だけ返すんだね。
なんか無駄っぽい。

705 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 10:11:11 ]
どうでもいいが、変数名とかがローマ字なのは痛々しい

706 名前:701 mailto:sage [2007/02/10(土) 10:15:17 ]
ごめんw<64はあってるっぽい。

707 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 10:26:25 ]
>>705
でも、変な英語よりはずっといいでしょ。

708 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 10:37:38 ]
>>702
ついでに改行を適度に入れることの効用.

 デバッガで1行毎に動きを追いかけて動作確認できる.

動作確認しているようなことは伝わってはくるが,
デバッガを使い出したら,あの書き方ではろくに動作確認できんと気が付くはず.

また,下手なマクロを書くとせっかくデバッガがあっても無駄になる.
かえって解りにくく,追いかけにくなるようなマクロを書いてどうするんだと
散々指摘されてるんだけどねぇ.


709 名前:デフォルトの名無しさん [2007/02/10(土) 11:10:28 ]
>>1のはindentなどのソース整形ツールで機械的に変えたくなった。

710 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 11:39:00 ]
無関係な突っ込み
n=z-8*m;

n=z % 8;


711 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:05:30 ]
誰かが言ったようにlp[]の初期化に失敗している。
7行オセロのソースを見ろよ。

712 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:10:32 ]
lp[] ={9,9,9,9,1,7,8,9}
これで大丈夫なのか?

713 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:19:47 ]
int lp[]={-9,-8,-7,-1,1,7,8,9};
で正常に1手目は出た。
llp[]の意味するところがわからんから後はどうなるかわからん。

ごみを生産するんじゃない。




714 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:24:28 ]
デバッガ使いたくないならprintfでもはさんでデバッグやれ。

if(z<64)printf("\n着手可能 %d %d",z/8+1,z%8+1);


715 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:37:18 ]
なぜintにしたか?
それはcharだとデバッガで文字として出てくるから。

716 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 12:43:38 ]
めんどくさいからそのまま春。
int serch(board bord ,int z, int F)
{
int w,l;
for(w=z+1;w<64;w++)
{

fore(l,8)
{
if(torerusu(bord,w,F,l)>0)return w;//break;なんなの?
}

//if(l<8)return w;これなんだ?
}
return 64;
}


717 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:11:45 ]
質問
mtのfor(;;)for(;;){
って意味あるの?

718 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:31:44 ]
わかった!
continueを知らないだけだ!

719 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:44:10 ]
>>717
break など使うものか!意地でも goto を使うんだ!
という意志の表れと見た。

720 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 13:48:05 ]
いや、breakで抜けた後もループしたいからforforしてるんだよ。
continueしらないだけ。

721 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:18:57 ]
読み直してみた。たしかに continue を知らないだけのようだ。

722 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:38:09 ]
#define PASS 64

723 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:46:10 ]
少しは努力しろ



724 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:54:56 ]
#define が多いけど、enum は使わないの?

725 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 14:56:32 ]
単に知らないの

726 名前:1 [2007/02/10(土) 17:40:47 ]
よりオブジェクト指向で書き直すことにしました ちょっと待っててくださいね

>>699>>713
lpは、周囲のマスを表すんです -9,-8,-7,-1,1,7,8,9となっていればOKなんですが
ここが、間違っていますかね?

>>704
if()は中身が正だったら真なんですか 1だけだと思ってました

>>708
マクロ使う理由は、関数に出来ないからなんですよ
breakとかreturnを使うと呼び出した関数側でリターンしてしまいます(remove()とか)

>>710
%を使うとやたらに鈍くなる可能性があります そこはz&7にした方がいいですね


>>716
すぐにリターンした方がいいですね

>>722
わかりました PASSにします

727 名前:1 [2007/02/10(土) 17:49:16 ]
みなさんありがとうございました
差し手の生成上手くいきました


fore(l,8){ if(l>3)i=l+1;m=i/3-1;n=i%3-1;lp[l]=8*m+n;}の部分を

fore(l,8){ if(l>3)i=l+1; else i=l;m=i/3-1;n=i%3-1;lp[l]=8*m+n;}

に変更したら上手くいきました

up2moe.moe.hm/img/q678.txt

728 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 17:52:41 ]
暗号解析も進んでるようだねw

729 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 17:58:59 ]
みんな優しいなあ

730 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:03:07 ]
>>727
問題外のソースの断片を貼らないでください。

731 名前:1 [2007/02/10(土) 18:30:51 ]
すみません 初歩なんですけど質問です

下のfnc内で他のメンバ関数(ここでは (z,F)ですが) を使いたいんですけど
(z,F)と書けば、呼び出せますか?またAAA()の場合もそのままかけるんでしょうか?


class board {
unsigned int bd[3][2];
public:
int operator()(int z, int F){int m;m=z>>5;z=z&31;return (bd[F][b]>>z)&1;}
int AAA(){}
void fnc() { ・・・}
};

732 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:32:49 ]
日本語でおk

733 名前:1 [2007/02/10(土) 18:42:33 ]
コンパイルは通るんですが、動作が変です
なぜでしょうか?
24を表示してほしいのですが、4となります


#include <stdio.h>
class board {
int a;
public:
int operator()(int x, int y, int z){return x*y*z;}
int fnc(){return (3,2,4);}

};

main(){
board x;
printf("%d\n",x.fnc());
}



734 名前:1 [2007/02/10(土) 18:43:51 ]
要約すると、メンバ関数内で、他のメンバ関数を使いたいという事です

735 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:45:08 ]
operator() ってなに?

736 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:48:01 ]
デバッガで1行ずつ実行すればいいんじゃないの?

737 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:49:08 ]
あ、ごめん
そういう内容ではなかったのね

738 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:49:51 ]
デバッガの使い方なんか知らないだろ
だから一行にまとめてしまってるんだし

739 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:50:19 ]
int fnc(){return operator()(3,2,4);}
int fnc(){return (*this)(3,2,4);}

740 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:50:57 ]
エスパーするなら、[]演算子のオーバーロードを勘違いしてるんじゃないかと

>>1は、いったいいつになったら日本語でアルゴリズムを書けるようになるんだろうな。

741 名前:1 [2007/02/10(土) 18:51:42 ]
>>735
ここです
関数呼び出し演算子
homepage2.nifty.com/well/Operator.html#paren

>>736
他のメンバ関数の呼び出し方を知りたいんですが

742 名前:1 [2007/02/10(土) 18:53:57 ]
>>739
わかりました!ありがとうございます
*thisは省略できるものだと思っていたのですがつけないと駄目みたいですね

743 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:55:49 ]
thisを知らなかっただけだろ



744 名前:1 [2007/02/10(土) 18:58:55 ]
>>743
727の10行目で使ってますよ

745 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:01:37 ]
>>741
C++ってこんなクソ仕様があるんだ・・・
こんなの使ったら、ホントに作ったやつじゃねーと解読できない
プログラムになっちゃうよ・・・・
とくに、>>1みたいな初心者が、無意味に多用したがるからな

746 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:08:02 ]
意味がわからずに使ってるからバグが入ってるんだよ

747 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:24:22 ]
1ってアルゴリズム考えるのがへたくそだなぁ

748 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:37:53 ]
>>726
lpは各方向のマスへのオフセットだろ。

ifでの真偽は、0で偽それ以外で真。

removeにbreakを入れないほうがイイ。
場合によってcontinueとbreakの使いわけができるようになる。
わけの分からんforを省ける。それとfor(;;cnt++)。

あとremoveの2つ目のreturnの判定は不要じゃないか?
よく分からんけど


749 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:40:15 ]
どんどんいい感じに普通のプログラムになっていってるね

750 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:50:51 ]
どのへんが?

751 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:52:41 ]
serch()

752 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:55:32 ]
aが抜けてるといいたいんだろ。最初から気付いていたよ。
あと board bordとかも。

753 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:55:46 ]
どの角度から見ても普通のプログラムには程遠いけどw



754 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 19:58:12 ]
うちで直したのは普通に近いよ。
gameクラスにグローバル変数ぶちこんで、susumu、removeも関数に直した。
gotoは直してないけどな…
printfがあちこちにぶち込んであるからぼろぼろだけどな。

755 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 20:01:06 ]
「普通」の基準が問題なんだなw

756 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 20:05:46 ]
bord()って使い方もまずいよな。

これって関数風に使う場合だしな。
[ ]のほうがあってると思うけどな。

757 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 20:48:10 ]
いや、みんなのデバッグが加わったことで
serch()が普通に近づいたってことだろ

758 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 21:01:19 ]
なんか盛り上がってるなw

759 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 21:06:46 ]
自分よりレベル低いのが居ると安心してしゃべれるんだろ

760 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 21:07:48 ]
>726 名前: 1 投稿日: 2007/02/10(土) 17:40:47
>よりオブジェクト指向で書き直すことにしました ちょっと待っててくださいね

それよりも SourceForge あたりにプロジェクト作ってみ?
と言ってみるテスト.


761 名前:デフォルトの名無しさん [2007/02/11(日) 16:23:04 ]
1って人間性がダメだな

762 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 16:26:34 ]
何ですかこの期待はずれなスレは

763 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 16:49:21 ]
おれにとっては期待以上だ



764 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 16:57:28 ]
まじめに作ってる人には期待してるよ
まだ結果は出てないし

765 名前:デフォルトの名無しさん [2007/02/13(火) 16:36:15 ]
age

766 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:05:19 ]
もう面倒だから打てる場所にランダムに打つルーチンで手を打とうぜ
文字をランダムに出力してシェイクスピアのオセロが完成する確率よりは遥かに大きい確率で勝てるものが作れる

767 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:36:05 ]
うん、君はそれで作れば?

768 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:47:43 ]
俺がポケコンで作ったときは、処理速度が遅いから
打てる中で一番多くひっくり返せる手を選ぶようにした。
思考に数秒かかる。
こんなんでも、それなりに面白い。

769 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:50:18 ]
bitboardとか知らないけど、俺も作ってみよう

770 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 17:52:09 ]
じゃあ俺はDで作っちゃうぞ

771 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 18:30:10 ]
じゃあ僕はバッチファイル!


772 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:02:00 ]
2次元配列で作ったけど、1次元が主流なんかな?

773 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:03:51 ]
なんでもいいかと



774 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:18:42 ]
1次元の利点は,
アドレス計算が高速,
関数の値として返せる,
引数の個数が減る,
位かな.絶対有利と言っていいと思う

775 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 22:00:54 ]
>>774
なるほど。
初めて作ったんだけど、>>496さんのを見て、1次元配列だったからちょっとびっくりした。

776 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 22:23:17 ]
>>774
8x8なら絶対有利と言うほどはないんじゃないかなぁ。
まあ10x10とかの手法使ってるなら絶対有利かもしれんが。

777 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 22:54:54 ]
2次元配列はどうも好みじゃない
関数にポインタ渡すときの宣言が嫌い

778 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 23:06:49 ]
Thellの「強+」って何手読みかな?

779 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 23:30:20 ]
bitboardにするとundoはやらないでコピーするもんなの?

780 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 23:47:40 ]
うん、そう。

781 名前:769 mailto:sage [2007/02/14(水) 00:37:59 ]
ひとまず動くものが出来たので晒してみます
555.sytes.net/up/img/414.zip





782 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 00:55:21 ]
GUIキタコレ!

783 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 00:59:04 ]
おお、お疲れ様です。
いい感じですね。



784 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:04:43 ]
>>781
dllの追加について何かヒントきぼん

785 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:26:02 ]
>>784
.net系の言語でプロジェクトの参照にRevPlugin.dllを追加、
RevPlugin.dll内にあるRev.IPlayerを実装したクラスを一つ以上作る、
それdllにしてPluginフォルダにぶちこむ、
でOKです。

SampleAIプロジェクトのRandomAI.csとかを参考にしてください。


786 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:26:46 ]
>>784
Interfaces.csにインターフェースが定義されてるから
これ実装すればいいんじゃない?
てかソース見てみよう。

787 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:28:50 ]
.NETはパスだな
もまいらがんばってくれ

788 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:30:55 ]
と言うか何語ですかこれ? GUI 部分は別に要らないですが、
思考部分を Unix でコンパイルするにはどうすれば?

789 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:32:20 ]
>>788
C#ていう言語。
monoで使えるかも?

790 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:34:12 ]
>>789
C# と mono ですか。調べてみます。d

791 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:40:13 ]
僕もC#でプログラムを作ってたのでちょうどいいですね。
独自のGUIも既にありますけど、
これに対応すれば他の人が作ったのと対戦しやすそうですね。

792 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 01:46:41 ]
>>788
AIは適当に作った物なのでコンパイルする価値無いかも・・・

793 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 02:12:42 ]
>>769
初期化エラーになります><



794 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 02:27:52 ]
んなこと言ってる奴は自分でなんとかしろカス

795 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 07:53:42 ]
C#か・・・
dllならC++で作って読ませることもできるかな?

796 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 12:42:22 ]
>>781
これ良いですね。
MinMaxAIに勝てないし、昔自作したオセロプログラムで対戦しても歯が立たないorz

出来れば、のお願いが2つ。
・初期配置を逆にしてほしい。
・直前手を表示してほしい。(印を付けるとか)
オセロルールでは初期配置が逆なので上記のようにソフトを2つ並べて
手動で対戦するときにそのほうが都合が良いので。
勝手言ってすまん。


797 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:10:13 ]
なんか良い感じになってきたな、1以外は。

798 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:19:00 ]
ところで、1ってなんですか?

799 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:27:31 ]
バカは「1」って名前で発言するのがここのルール

800 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:51:56 ]
1の人気に嫉妬

801 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 02:50:08 ]
>>800
>>799

802 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 14:35:04 ]
こんな天気の日は、引きこもってコード書きに限りますな

803 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 14:37:25 ]
評価は何を基準にしているの?
置けるコマの数?



804 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 14:55:36 ]
評価はパターンが基本で、これに置ける場所の数などを加える事もある。
全ての評価要素には係数を掛けて和を取る。
この係数は、局面と教師信号を大量に用意して評価値と
教師信号の誤差が最小になるように最小二乗法で求める。

805 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 15:03:21 ]
>>804
う〜ん、難しそう。

806 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 15:29:36 ]
>>803
ttp://fujitake.dip.jp/sealsoft/thell/algorithm.html
このページの下のほうに評価関数についての説明があるよ。

>>804
問題は、データの多さなんだよね。
強さを求めるには仕方のないことかもしれないけど、
思考部分のプログラムが(高速化のために展開していたとしても)数百KB程度に対して、
評価用のデータが10MB↑とかになるのがね...

807 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 15:44:12 ]
>>806
サンクス

808 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 16:42:53 ]
>>806
「リバーシプログラムの作り方」に入ってるプログラムは
比較的コンパクトで精度のいい評価関数だと思う。
標準的なパターン(ロジステロとかの)より小さくて最大で8マス分なのと
ゲームの段階によってステージ分けしてないので小さくしてる。

809 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 17:06:10 ]
1のプログラムをdll化して対戦させてみるとどうだろう。
できる人頼む

810 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 17:26:11 ]
まともに動くようになればDLL化してやってもいいけど。

811 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 17:32:19 ]
オレも動くようになったらDLL化しようと思ってるんだが
最後までいかんのがなあ

812 名前:1 [2007/02/15(木) 18:09:40 ]
オブジェクト指向はもうすぐできます 
待っててください

813 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 18:11:32 ]
>>812
もういいよ



814 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 18:14:10 ]
>>812
なんの目的でオブジェクト指向にするのかもう一度聞かせてくれ

815 名前:1 mailto:sage [2007/02/15(木) 18:20:04 ]
C++を使っているから。

816 名前:1 [2007/02/15(木) 18:27:16 ]
オブジェクト指向はプログラムがわかりやすくなるからですよ

817 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 18:38:22 ]
1の主張の対偶をとると、
プログラムがわかりにくいのは、それがオブジェクト指向でないから
となる。
しかし、これは明らかにおかしい
ゆえに1は明らかにおかしい



818 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 18:57:33 ]
1がバカだからプログラムもわかりにくくなるんです

819 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:01:07 ]
C をベルトコンベアに例えると、C++ はピタゴラ装置なんだよね。素人だと特に。

単純なはずのベルトコンベアさえ迷路状態にしてしまう >1 が、あろう事かピタゴラ
装置にまで手を出せば、もっと手の付けられないものが出来上がるのは明らか。

820 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:12:02 ]
ピタゴラ装置なんて初めて聞いた

821 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:15:19 ]
1は自分のやってる事が高度で他人がバカだから
理解してもらえないとでも思ってるんだろ

822 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:39:33 ]
今更わかりきったことを・・・

823 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:40:41 ]
勉強できるヤツが頭が良いって言うわけじゃない事が
よくわかりました



824 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:41:23 ]
まるで小学生のようだ。

そう言えば、昔AppleJapanのコピーで「小学生になろう」ってのがあったな。

825 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:51:34 ]
1は自分で考えるのは下手だけど
どこかで見聞きした事をそのまま言うのはできるんでしょ

826 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 22:23:42 ]
>>820
ルーブ・ゴールドバーグ・マシン (Rube Goldberg machines)っていったらわかる?
バック・トゥ・ザ・フューチャーの最初のシーンみたいなやつ。

827 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 22:47:51 ]
それもわかんない
けどググったらわかった
なるほど確かにそんな感じだね

828 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 22:57:31 ]
簡単に言うと、ドミノ倒しの中にスイッチが紛れてるんだな

しかもどれが何のスイッチか一切分からない。

829 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:24:51 ]
>>828
むしろ分からなくなった

830 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:31:36 ]
>>817
対偶を勉強しなおせ

831 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:46:33 ]
>>829
例えば、何らかの誤作動を直したり
一部を拡張しようとした場合

スイッチだけが出ていれば、押す順番なんて簡単に変えられる

だが、スイッチの順番を変える為だけに
ドミノをひたすら並び替え直す必要があったり
スイッチを押す順番によって動作が変わってしまったり
そもそも何のスイッチか分かりにくかったり


832 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:52:24 ]
>>829
つttp://flowmachine.free.fr/wiiflow/wii4/lunchtime.swf


833 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 23:53:45 ]
要するに色んなからくりの連鎖反応で機能するって事でしょ



834 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 00:05:08 ]
ゲームのインクレディブルマシーンみたいなもんだろ?

835 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 00:05:26 ]
www.youtube.com/watch?v=Q5nmspVOz_Y

どっかに車の部品でやるやつもあったな

836 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 00:16:54 ]
www.youtube.com/watch?v=hXV9aYoI0A8&NR
これだった
スレ違いだがな

837 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 00:58:15 ]
あれ・・・
学習量増やしたら弱くなっちゃった。
過学習ってやつ?

838 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 01:33:47 ]
学習させた棋譜によるし、そもそも学習の仕組みにもよるだろ

839 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 08:41:29 ]
結局、評価は演繹ではなく帰納的ってこと?

840 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:13:16 ]
うん、そう。

841 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:33:52 ]
じゃあ換言すると、強さは評価関数の係数を決める教師データ量の多さと
探索の深さで決まるってこと?

だとすると、1はその中で何をしているの?

842 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:43:38 ]
何もしてない

843 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:47:01 ]
>>832
面白いんだがw



844 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 15:50:49 ]
1は探索を深くしようとしてるんだけど
評価関数がデタラメだから意味の無い局面だけ深い探索をしてる

845 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 16:14:42 ]
>>844
ヒント:ベンチマーク

846 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:43:15 ]
うん、ゼブラにも負けてた。


847 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:59:38 ]
筆記用具な

848 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 18:24:44 ]
>>847
ゼブラとはオセロプログラムの事ですよ。
www.radagast.se/othello/download.html

849 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 22:48:51 ]
白黒つけるぜ!ゼブラマン!!
って奴か。
次はゼブラゾーンから取って 横断歩道という名前はなしですか。
なしです。

850 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 12:38:49 ]
IOSの棋譜ってもう手に入らないのか?

851 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 15:18:02 ]
IOSの棋譜はもう見つかりませんでしたけど
後継サーバであるGGSの棋譜はあります。
www.cs.ualberta.ca/~mburo/GGS/game-archive/Othello/
こっちのほうが質も量も優れていると思います。
ただ人間の棋譜や試合中で途切れている棋譜なども含まれているので
一定の条件で抽出したほうがいいと思います。

852 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 15:34:53 ]
ありがとう。
GGSの方にはIOSの棋譜がマージされてるんかな?
とりあえずいろいろいじってみるよ

853 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 16:44:21 ]
GGSの棋譜にIOSの棋譜は入ってないと思います。
あと評価関数作りにはこの棋譜も役立つと思います。
abulmo.club.fr/resources/base.htm



854 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 22:11:35 ]
1はどこいった?

855 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 22:36:44 ]
もう飽きたんじゃ?

856 名前:1偽 mailto:sage [2007/02/17(土) 22:40:01 ]
オセロはマスターしたので将棋に移りました。

857 名前:1 mailto:sage [2007/02/17(土) 23:03:02 ]
ああ

858 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 23:11:35 ]
将棋スレ過疎ってるから来いよ>>1

859 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 16:52:02 ]
そして誰もいなくなった

860 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 16:56:09 ]
じゃあネタ投下してくれ

861 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 17:11:41 ]
1がいなくなったとたんに過疎る。1は偉大だな。

862 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:17:52 ]
有志が1を見限って独自に進めようとするたびに1が現れて気運をぶち壊して行っただけでは。

863 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:39:29 ]
誰か2代目1を呼んで来い



864 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:49:44 ]
今1はエージェント指向で書き始めていますので、少々お待ちください。

865 名前:1偽 mailto:sage [2007/02/19(月) 21:00:45 ]
アスペクト思考で書き始めています。

866 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:26:28 ]
やっぱり構造化プログラミングで書き直しています

867 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:42:00 ]
高速化したいのでアセンブラで書くことにしました

868 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:59:01 ]
3進数コンピュータ用に3進数で書き直しています。

869 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 23:25:44 ]
高速化のためにtemplate多用して書くことにします

870 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 23:58:32 ]
明日論文発表終わって暇になるから本格的に取り組んでみるぜ
とりあえずの目標は781で動くdllの実装

871 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 00:07:28 ]
人間対人間のオセロ作ったし、今度は人間対人間の将棋作るわ

872 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:57:36 ]
オセロ対将棋を作ってくれ

873 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 05:10:15 ]
とりあえずマスをかくことにしました



874 名前:デフォルトの名無しさん [2007/02/23(金) 00:16:37 ]
age

875 名前:デフォルトの名無しさん [2007/02/24(土) 01:36:45 ]
第一部終了?

876 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 08:38:23 ]
結局、ダメだったか
ある意味予想通りだが

877 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:35:24 ]
当初は昨年末にはできる予定だったんだよね。

878 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:38:28 ]
当初は昨年末にはできる予定だったんだよね。

879 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:05:29 ]
ここの>>1はこのスレの>>1か?違うよな。

IT業界で入ってはいけない会社の条件を教えて
science6.2ch.net/test/read.cgi/infosys/1172129460/

880 名前:デフォルトの名無しさん [2007/02/27(火) 20:19:49 ]
そういやそろそろ三ヶ月経った?

881 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 02:09:37 ]
今作ってる人居るの?
進捗状況を聞かせて欲しい

882 名前:1 [2007/03/04(日) 06:16:16 ]
みんなすまん
うまく動かなくて顔出せんかった
プログラムとデバックに向いていないとおもう(経験不足)
継続して作ってはいるんだけど......
あと囲碁、将棋も攻略する予定はあるんだ
ネタはあるので、データ構造と処理内容だけを記したら分業制でやってくれる人はいますか?
一人では、一つ完成させるのに半年以上かかりそう

883 名前:デフォルトの名無しさん mailto:sageクマー [2007/03/04(日) 06:36:54 ]
× 分業制でやってくれる人はいますか?
○ これこれこういうアルゴリズムなのですが、興味のある人はぜひコーディングしてみて下さい。
◎ (どこどこのうpろだ) に、データ構造と処理内容を記した仕様書(テキストファイル等)をアップロードしました。興味のある人は(以下略


いったい何ヶ月前から↑の通りにしろと言われていたのか、まさか気づいてないのか?



884 名前:1 [2007/03/04(日) 07:14:35 ]
>>883
わかった
仕様書かくんでちょっと待っててください

オセロはオブジェクト指向で書き直したんだけど動かないよ
up2moe.moe.hm/img/q875.txt

あまりに動かないんで、
オセロは、やめて将棋にしようかと思ってきたんだけど
将棋を一から開発していくっていう方向でもいいですか?

885 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 07:50:04 ]
どんな仕様書が出来るか楽しみだな。

886 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 07:53:27 ]
>>884 >>1
>オブジェクト指向で書き直したんだけど
オブジェクト指向で書き直す以前の問題。
C,C++の仕様すら理解してないんじゃないかな?
プログラムの書き方からデバッグのしかたを一から(ry

>あまりに動かないんで、
>オセロは、やめて将棋にしようかと思ってきたんだけど
>将棋を一から開発していくっていう方向でもいいですか?

無謀。

将棋は駒を取る、打つ、成、不成。オセロよりはるかに
局面の変化が多彩で難しいと思うけど?


887 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:03:04 ]
無謀なんて言わずに、やらせておけばいいじゃん。
1がマトモには何もできないってことはみんな知っているし、
それを知った上でのネタスレとして楽しんでるんじゃないの?

888 名前:1 [2007/03/04(日) 08:05:43 ]
オセロを一から作り出すより、手伝ってもらって将棋を分担で開発した方が
早い and やる気が出る、かと思ったんですが...
デバッグとコーディングをのぞけば、アルゴリズムはかなり前から出来ているんです
オセロより作成期間が長いんです

889 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:17:36 ]
じゃあそのアルゴリズムを聞かせてほしい

890 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:21:16 ]
小学校の頃、1みたいな奴が居てウザかったの思い出した。

891 名前:1 [2007/03/04(日) 08:29:57 ]
仕様書を書いて説明しますから、待っててくださいね
では、将棋をみんなで作るという事でOKですかね?

892 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:32:07 ]
バカ?
リバーシに決まってんだろ

893 名前:1 [2007/03/04(日) 08:37:35 ]
ボナンザを倒し、劇指を倒したら、次に銀製囲碁を倒します!
分業制でやれば実現しますよ!
囲碁はですね、今までに無いやり方だと思いますよ
簡単に説明しますと
まず、19*19盤を、類似した5*5盤とか、7*7盤に縮小するんです
すると置けるマスは25〜50マス程度で、
普通のMTDとかPNSとかが通用しやすくなるんです
あらかた、置く位置を決めたら元に戻して、その周囲で詳しく調べるんです



894 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:40:07 ]
PNSて何だ?
PVSの間違いか?

895 名前:1 [2007/03/04(日) 08:41:15 ]
proof number サーチですよ
証明数探索ですよ

896 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:42:42 ]
ああそれね

897 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:43:27 ]
で?どうしてやらないの?

898 名前:1 [2007/03/04(日) 08:45:03 ]
MTD、PN-searchは、これが詳しいです

Research Re: search & Re-search
PhD thesis; 1996
Aske Plaat
www.cs.vu.nl/~aske/Papers/thesis.zip

899 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:46:40 ]
それ読んだことある

900 名前:1 [2007/03/04(日) 08:48:45 ]
思考ルーチンだけ作ればいいソフトを貼り付けておきますね


CSA将棋
www2.ttcn.ne.jp/~tsuma/download.htm

CgfGoBan(囲碁用)
www32.ocn.ne.jp/~yss/cgfgoban_j.html

BearRev Professional (オセロ用)
www20.pos.to/~sleipnir/software/bearreversi/index.html

901 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 08:51:33 ]
そういうの探すのだけは上手なんだね
もっと色々集めてよ

902 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 09:15:54 ]
いろいろ言いたいことはあるが仕様書を見てから判断しよう

903 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 09:43:46 ]
まともにプログラムを書いた事が無い奴のプログラム
まともに仕様書を書いた事が無い奴の仕様書



904 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 10:24:42 ]
現実のSEにもいるけどね
そういうの

905 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 10:50:50 ]
1の日本語・プログラミングの能力から、出てくる仕様書の程度は知れてる。

906 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 10:58:02 ]
× 出てくる仕様書
○ 仕様書は出てこない

◎ 家から出てこない

907 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:24:45 ]
脳内から(ry

908 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:59:16 ]
僕は>>1にひそかに期待している。
分業する気はまったくないが。

たぶん>>1は大器晩成なんだと思う。
いつ頃晩成するのかは予測不能だけど。

>>1の打たれ強さは今まで見た中で5本の指に入る。
この調子でスレを消化していけば、囲碁・将棋・リバーシに
取って代わるテーブルゲームができるかもしれないかもしれないな。

909 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:58:44 ]
俺も>>1には期待してるよ

910 名前:デフォルトの名無しさん [2007/03/04(日) 19:05:48 ]
>>1頑張れ!!
新しいゲーム、やってみたいぞ!

911 名前:デフォルトの名無しさん [2007/03/04(日) 19:32:50 ]
>>1がきてスレが久しぶりに活気付いた件

912 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 20:19:20 ]
超初心者の質問なんですが誰か教えてください。
オセロや将棋などのアルゴリズムのプログラミングはC言語で作るのが常識なのでしょうか?
Javaとか他の言語では無理ですか?

913 名前: ◆Z4QrFDzwrY mailto:sage [2007/03/04(日) 21:01:42 ]
可能
アルゴリズム自体は言語に依存するものではない
言語によって実装は異なるが、根底の考え方は違わない
速度、実行する環境、自分達が使える言語、DirectXを使えるか、などで
言語を含めて開発環境はだいたい決まってくる



914 名前:1 [2007/03/04(日) 21:03:19 ]
>>912
Javaでもなんでも出来るけど、速度はcが一番では?ややアセンブラより鈍いかも

分担作業で出来るようにモジュールを分割して
最低2人が一つのモジュールを作成し
2名が同じ出力を出したら正常であるとしましょう

915 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:07:27 ]
初心者が作れば速度が逆転することはざらにある

916 名前:912 mailto:sage [2007/03/05(月) 01:47:49 ]
>>913>>914>>915
ありがとうございます。
速度で差が出るということですね
どうせやるなら上を目指したいのでCでやってみようと思います


917 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:54:36 ]
>>893
分業だの分担だの言ってるが、他人と同じスタイルにしたり、他人の書いた
プログラムをちゃんと理解できるまで自己鍛錬するつもりはあるのか?
>624-625 みたい嘗めた真似するんじゃないのか?

918 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:57:21 ]
プログラムがわからなくたって
結果で判断すればいいんじゃね?
エンドユーザーになったって事だろ

919 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 05:04:30 ]
>>912
現在トップクラスのプログラムで使われている言語はC,C++,Managed C++。
言語はCでいいと思うよ。GUIも作るならC++かな。
GUIははじめベアリバーシでもいいけど続けていればそのうち物足りなくなると思うよ。
アセンブリは全く使わなくていい。
コンパイラに最適化を任せれば3倍以上速くなる事もある。
あと英語は必須。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<194KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef