@niftyレンタル掲示板

掲示板の使い方

12345>>

C++版 Sikou::MakeMoveFirst()関数

  • まねしまねぞう
  • 投稿者のホームページ
  • 2012/03/04 11:35

兄弟局面の最善手 Best[][] は
局面表とは関係なく取得できるのでは?

  • コメント
    • 1.うさぴょんの育ての親
    • 2012/03/05 17:33

    出来ますね…。

    コード上、そうなっていなかったら、バグの一種です。

    • 削除
    • コメント

初歩の初歩なのですが・・・

  • 学生
  • 投稿者のメール
  • 2012/01/27 23:08

駒のクラスの組み方がまったくわかりません
どうかご教授願います
できればそそこだけ
ソースコードいただきたいのですが・・・
ぶしつけなコメント
大変申し訳ありません

  • コメント
    • 2.うさぴょんの育ての親
    • 2012/01/28 14:18

    卒論でしょうか…。

    駒クラスは、Java版には存在して、C++版にはない(ハズ)ですが、そこだけ抜き取ることが難しいモノになっています。

    クラス間の依存性が書き切れていないのが原因ですが、きれいに修正できない&そこだけを抜き取ることが難しいので、頑張って入手できたソースコードを読んで下さい。

    最近は色々なプログラムのソースがダウンロード可能になっているようですので、別のプログラムを参考にするのも良いかもしれません。

    • 削除
    • コメント

LAN対戦時処理のif内の処理が変?

  • zu2
  • 投稿者のホームページ
  • 2011/10/28 08:15

この部分、ss=3 と代入するつもりではないと思います。
パッチは自由に使っていただいてかまいません。

--- lesserpyon/main.cpp 2011-10-28 08:05:43.000000000 +0900
+++ sakurapyon/main.cpp 2011-10-28 07:57:36.000000000 +0900
@@ -595,7 +595,7 @@
if (strcmp(buf,"%TORYO")==0) {
te=Te(0);
} else {
if (ss<2) continue;
if (from<OU) {
koma=SorE|from;
@@ -604,7 +604,7 @@
koma=k.ban[from];
}
capture=k.ban[to];
- if (ss=3 && promote[0]=='*') {
+ if (ss==3 && promote[0]=='*') {
te=Te(from,to,koma,capture,1);
} else {
te=Te(from,to,koma,capture,0);

  • コメント
    • 1.うさぴょんの育ての親
    • 投稿者のホームページ
    • 2011/10/29 16:30

    ご報告ありがとうございます。
    #うぅ、またダサイ間違いが日の目に…(泣)

    でも、ここはLAN対戦じゃなくて人間の指し手の箇所ですね。
     <意味のない反論(苦笑)。

    見た感じ、問題なく動いちゃうことが多いんだろうなぁ(--;

    594行で、promote[0]='\0'と代入済みで、ss<2(明らかに入力項目不足)の場合はここに来なくて、ssが2だった場合の動作はpromote[0]が先の初期化が効いていてssに3を代入してしまっても多分正常動作(成らず)、ssが3の場合の動作はpromote[0]が*かどうかを見てるので多分正常動作(成)…。

    #それがこのバグを見過ごしてしまった原因でもあるわけですが…。

    色々ご協力、バグフィックス、ありがとうございます。
    そして図らずも?公開されたプログラム名(sakurapyon)の一層のご活躍を期待しております。

    • 削除
    • コメント

CheckMate関数で手番チェックをしていない

  • zu2
  • 投稿者のホームページ
  • 2011/07/19 12:13

双方に詰みがある局面(詰めろ・詰みがある状態)で、誤って相手側の駒を動かしてしまう場合があるようです。

下記局面で後手番のときに、3一銀(42)と指します。

持ち駒:金銀桂歩六
9 8 7 6 5 4 3 2 1
+---------------------------+
|v香 v歩 v飛 v香|一
| 銀 v王 |二
| 銀 馬 v歩v桂|三
|v歩v歩 |四
| 歩 桂 歩 |五
| 銀v桂 歩 |六
| 歩 歩 v金 歩|七
| 王 金vと v歩v馬 香|八
| 香 飛 |九
+---------------------------+
持ち駒:金

@@ -2483,8 +2485,10 @@
}
TsumeVal *p;
if ((p=TsumeHash::DomSearchCheckMate(KyokumenHashVal,Hand+SorE))!=NULL) {
- te=p->te;
- return 1; //詰んだ
+ if(!te.IsNull()&&(te.koma&SorE)&&IsLegalMove(SorE,te)) {
+ te=p->te;
+ return 1; //詰んだ
+ }
}
int valmax = -1;
for (int i = 0; i < teNum; i++) {

  • コメント
    • 1.うさぴょんの育ての親
    • 投稿者のホームページ
    • 2011/08/04 16:42

    …このバグは、実は古くから指摘されているのですが…

    例えば、白砂さんの将棋研究室
    http://www.hakusa.net/shogi/

    から、
    第17回世界コンピュータ将棋選手権出場記

    選手権の内容
    にて、
    ■5回戦 かめぴょんvs神乎棋技

    にも記述されています。

    今まで直して来なかったのは、ひとえに私の怠慢によるものなのですが…
    (今までに他の人が示した改良例としては、ハッシュの1ビットを手番に当てる、といったものがあります。少々改造範囲が広くなってしまうので、採用して来ませんでした<まぁ、これも私の怠慢なのですが…)

    今回示して頂いたソースは、改良例でしょうか?
    ぱっと見た感じでは、この改良でおそらく正しく動くようになるものと思います。
    また、非常にきれいな改良例で、改造範囲が極めて小さいことも特筆に価します。

    色々ありがとうございました。
    次のバージョンのリリースの際には、もし、zu2さんさえよろしければ、このコードを使わせていただきたいと思います。

    • 削除
    • コメント
    • 2.うさぴょんの育ての親
    • 投稿者のホームページ
    • 2011/08/04 16:50

    >>1
    先のコメントで言い忘れていたのですが、返信を2週間以上も放置していたのは(私の怠慢でもありますが)現在、本職の方が異常に忙しい状態にあり、コメントを頂いてから内容をきちんと確認するまでに時間がかかってしまったことに起因します。

    同じ理由で、バグフィックス版を出すのにも時間を頂いてしまうことになりそうです。

    れさぴょんを利用の方々、色々申し訳ありませんが、よろしくお願い致します。

    • 削除
    • コメント
    • 3.zu2
    • 投稿者のホームページ
    • 2011/08/04 19:34

    >>2
    お忙しいなか回答ありがとうございます。

    れさぴょんの改良に役立つなら光栄ですので、次回に含めていただければ幸いです。

    • 削除
    • コメント

商業利用の件

  • TH
  • 2009/11/08 03:47

MinGWでコンパイルして色々なチェックを行っています。
現在当惑していることは、れさぴょんの改造版の商業使用の禁止です。コンピュータ将棋のアルゴリズムには、そんな記述は無かったように記憶しています
現状思っている範囲では、れさぴょんの局面探索は、ソフト的に10倍ほど遅く、あと半分ぐらい枝狩りをしなければならないと思っています。局面評価は、根本的に書き直さないとならないと思っています。データ構造が半分程度、局面探索部が骨組みが残る程度で無いかと思います。そこまでになってもれさぴょんの改造版と言うことで、商業利用禁止になってしまうのでしょうか?
そこまでいうなら0から書き直せということになるかもしれませんが、今書くたたき台はインターフェースも含めて、れさぴょんに似た物になってしまうと思います。要するにどこまでが、れさぴょんなのかが分からないのですが?

  • コメント
    • 1.うさぴょんの育ての親
    • 投稿者のメール
    • 2009/11/09 13:18

    商業利用の範囲、についても難しいですね。
    あまり縛りを強くするつもりもないのですが、れさぴょんのどの程度の部分を利用するのか、という話になるかと思います。

    たとえば、盤や持ち駒、可能な着手の生成位しか使っていないとして、「選手権では」ライブラリとしてれさぴょん使用と書かないといけないと思いますが、商業利用の範疇として、それでも利用していることになるのか、と言われると微妙な気分です。

    掲示板ではなく、メールにてご連絡頂ければ幸いです。

    • 削除
    • コメント
    • 2.TH
    • 2009/11/09 17:14

    >>1
    最初の書き込みの文章が失礼ではなかったかと少し反省しています
    "うさぴょん"や"れさぴょん"のHPを探してみたのですが、E-mailアドレスが見つけられませんでした。どこを探したらいいのでしょう?探しかたが悪かったのでしょうか
    それとも掲示板に表示されるE-mailに私のアドレスを書くのでしょうか?

    • 削除
    • コメント
    • 3.うさぴょんの育ての親
    • 投稿者のメール
    • 2009/11/09 17:31

    >>2
    あ、いえ、この掲示板のメールのマークのところに私のメールアドレスを載せているので、そちらにご連絡ください。

    うさぴょんのページか、れさぴょんのページに、fzk05105@nifty.comというメールアドレスを掲載していますので、こちらでもかまいませんです。

    • 削除
    • コメント