- 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
- 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は毎日進行状況を全員に解るように報告しなさい。
|

|