- 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
- 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;}
|

|