おまいら最強の将棋プログラムしてみろよ part4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG前スレ
おまいら最強の将棋プログラムしてみろよ part3
http://pc5.2ch.net/test/read.cgi/tech/1064984089/l50
おまいら最強の将棋プログラムしてみろよ part2
http://pc2.2ch.net/test/read.cgi/tech/1043246252/
おまえら最強の将棋プログラムしてみろよ!!
http://pc2.2ch.net/tech/kako/1004/10043/1004395614.html
関連スレは>>2-6ぐらい
0002デフォルトの名無しさん
NGNGMTD(F)
http://www.cs.vu.nl/~aske/mtdf.html
ゲーム木の探索問題
http://tt.sakura.ne.jp/~suzu/search_problem/index.html
反復深化
http://tt.sakura.ne.jp/~suzu/search_problem/i_deepening.html
最良優先探索
http://kyu.pobox.ne.jp/softcomputing/ai/ai3.html
遷移確率、激指
http://www.logos.t.u-tokyo.ac.jp/~gekisashi/algorithm/abstract.html
GNU shogi
http://www.cs.caltech.edu/~mvanier/hacking/gnushogi/gnushogi.html
福将棋
http://touch-mi.hp.infoseek.co.jp/csa2001/prog.htm
0003デフォルトの名無しさん
NGNGhttp://www.computer-shogi.org/protocol/
アップローダ (Part3 929氏提供)
http://gm.a-ark.net/~shogi/clip/clip.cgi
CSAサーバ (Part3 773氏作、Part3 783氏提供)
アドレス wdoor.c.u-tokyo.ac.jp 4081
棋譜など http://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/
0004デフォルトの名無しさん
NGNGコンピューター将棋スレッド14
http://game6.2ch.net/test/read.cgi/bgame/1083665979/l50
コンピューター将棋スレッド番外編3・進歩に懐疑的な人たち
http://game6.2ch.net/test/read.cgi/bgame/1085592538/l50
おまいら最強の麻雀プログラムしてみろよ!!
http://pc2.2ch.net/test/read.cgi/tech/1048299493/l50
俺主催囲碁プログラミングコンテスト
http://pc2.2ch.net/test/read.cgi/tech/1024024666/l50
prologでオセロ
http://pc2.2ch.net/test/read.cgi/tech/1028644157/l50
0005デフォルトの名無しさん
NGNG好手
0006デフォルトの名無しさん
NGNGshogi-server ですが、各プレイヤーの消費時間が局をまたいで積算されてい
くようです。一旦時間切れ負けすると次局の初手で切れ負けになる(´・ω・`)
Game.initialize()あたり?で初期化が必要かと。
0007奈々美
NGNG>>6
すみません、直しました。
>>前スレ987
[ERROR]を付けるようにしました。
LOGIN:incorrectは、週末に直します。
## 普通、connectしたら、サーバが自分の名前や持っている機能を通知した後、
## クライアントがログイン開始だと思うのだが > プロトコルの中の人
0008デフォルトの名無しさん
NGNG%TORYOを送ると%TORYOが返ってくるみたいです。
0009デフォルトの名無しさん
NGNG俺自身は将棋が非常に弱いという問題が・・・
そういうのって将棋AIを作るのには関係無い?
やっぱある程度、将棋がうまくないと作れないかな?
0010デフォルトの名無しさん
NGNG0011奈々美
NGNG>>8
クライアントが%TORYOを送ると、
サーバは片方には
#RESIGN
#WIN
を、
もう片方には
#RESIGN
#LOSE
を送るのが正解でしょうか?
0012林
NGNG投了したほうに
%TORYO
#RESIGN
#LOSE
もう片方に
%TORYO
#RESIGN
#WIN
を送るんじゃないかな?
0013デフォルトの名無しさん
NGNG不要っぽいね。
0014私はバカだ ◆R/rLuLKeEI
NGNGサーバープロトコル仕様を読んでいて不思議なのは、勝敗が決まると切断されるのにログイン状態は保持されるかのようにも読み取れることだ。
クライアントは次の対局またはログアウトのために再接続するのが正しいのか?
それとも私の読み落としか?
奈々美さんの実装は如何に?
0015林
NGNG>3.4. 指し手と意思表示
>(略)
>以後、このように勝敗情報を伴うパケットがサーバから送られると、同時にコネクションは切断される。
>3.5. ログイン中のタイムライン
>クライアントがログイン中の、対局開始から終了までのタイムラインは以下の通りとなる。
>対局終了後は、ログイン状態が続く限りにおいて、繰り返し対局が可能である。
確かに変やね
0016デフォルトの名無しさん
NGNGそうともとれる書き方なのね。 % は C->S で # は S->C かと思いきや
%CHUDAN (S->C) もあるし。
>>14の件も合わせてよく判らんね。誰かCSAに(゚Д゚)ゴルァメールしない?
んで、規約見てて気付いた点。
>>奈々美タン
規約> また、規定時間内に指し手が送信されなかった場合、サーバは着手を待つことなく、
規約>
規約> #TIME_UP
規約> #WIN(LOSE)
規約> という情報を双方に送信する。
だそうで(今は着手しないと送信されない)。いつでもいいので直してくれると幸い。
0017まともに動いてない ◆R/rLuLKeEI
NGNGあ、始業だ。
未確認なのでだれかやってみてください。
0018デフォルトの名無しさん
NGNGコンピュータって人間の右脳に当たる思考が出来ないから弱いんだね。
羽生「最初に良さそうな手が頭に浮かぶ。
それが成立するかどうかを読む。
次に他に手がないかを読んで、
いくつかの手を比較する」
これってまず右脳を使って、盤面から良さそうな手が思いつき
次に左脳を使ってそれの評価をする。を繰り返して一番良い手を選ぶって感じかな?
0019デフォルトの名無しさん
NGNG右脳左脳以前に、一般的にはコンピュータが
現局面以外の情報を持っていない = 比較対象となるものが無い、
というのが原因じゃないかな。
ある局面を与えてコンピュータなりの最善手を求めることを何回も繰り返した場合、
(起動して、最善手をもとめた後、再起動して…を繰り返すという意味)
毎回、同じ探索・評価・時間・結果になると思うよ。
局面をどこかに保存しておかないと解決しない問題のような気もするけど。
0020デフォルトの名無しさん
NGNG現状はそのよさそうな手を人間が考えて定石として持っておくってとこでしょうか
0021まともに動いてない ◆R/rLuLKeEI
NGNG後手%TORYOを送信で両者とも全く同じ
%TORYO
#RESIGN
#WIN(LOSE)
という三行がサーバーから返された。
三行目が仕様に合わないような気がする。
CSALANはVer 3.00でした。
0022デフォルトの名無しさん
NGNGワロタ 参考にもならんなw
0023まともに動いてない ◆R/rLuLKeEI
NGNG何なんだ一体。
0024奈々美
NGNG>>だそうで(今は着手しないと送信されない)。いつでもいいので直してくれると幸い。
週末にやります。
>>14
現在の実装としては
CSAモードで繋がっている端末は、勝敗決定で切断
拡張モードで繋がっている端末は、勝敗決定でログイン状態保持
のつもりです。
>>15
勝敗情報を伴わない対局終了には、%CHUDANがあります。
これを考えての記述ではないと思いますけれども。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG現状で who も chat も対戦もできるよ。
0027デフォルトの名無しさん
NGNGもう皆対戦してるの?
ここに勝敗とか書き込まれてないけど。
0028デフォルトの名無しさん
NGNGないね。ランダムプレイヤー突っ込む手もあるけどまだテストの邪魔だろうし
なあ。
0029まともに動いてない ◆R/rLuLKeEI
NGNG>3 の棋譜などを見てください。
今日も対戦がありましたね。
みんなチャットに流れてんのか人が少ないような。
0030 ◆R/rLuLKeEI
NGNG粗忽ですまぬ。
0031デフォルトの名無しさん
NGNGチャットに流れるもなにもチャットできるクライアントがまだ揃ってないやん。
早く作ってくれ>>R/r
0032まともに動いてない ◆R/rLuLKeEI
NGNG腸炎が完治したら作ってみたいが、またまともに動かなさそう。
何しろまともに動かなくて放り出した色んな残骸が1ダースくらいあるんで…言い訳です。
すんません、多分作ります。
0033デフォルトの名無しさん
NGNGAIが完成してる奴は試してみた事ぐらいあるだろ?
24とかで試した自分のAIの強さを教えてくれ!
0034まともに動いてない ◆R/rLuLKeEI
NGNGまだjarにまとめてないけど何となく動いている気がするチャットプログラムならあるが…
今朝から断続的にサーバーに接続テストしてました。
夕食後、風呂までに間に合うだろうか。
明日は仕事なんで夜更かしはしたくないな。
目が疲れたよ。
0035まともに動いてない ◆R/rLuLKeEI
NGNGまともに動きますように…
0036デフォルトの名無しさん
NGNG駒が成れる陣の深さは2段、それ以外は本将棋と同じルールです。
盤36/81 駒24/40なので、ゲームの複雑さを本将棋の1/2とすると、2手読む手間は1/4、3手読む手間は1/8でしょうか?
めちゃくちゃ強いソフトが作れそうな気もしますが……
ミニ将棋 第2局
http://game6.2ch.net/test/read.cgi/bgame/1056038952/
後手持ち駒:
6 5 4 3 2 1
┌──┬──┬──┬──┬──┬──┐
│▽飛│▽桂│▽銀│▽王│▽金│▽角│ 一 最終手
├──┼──┼──┼──┼──┼──┤ ☆★
│▽歩│▽歩│▽歩│▽歩│▽歩│▽歩│ 二
├──┼──┼──┼──┼──┼──┤
│__│__│__│__│__│__│ 三
├──┼──┼──┼──┼──┼──┤
│__│__│__│__│__│__| 四
├──┼──┼──┼──┼──┼──┤
│▲歩│▲歩│▲歩│▲歩│▲歩│▲歩│ 五
├──┼──┼──┼──┼──┼──┤
│▲角│▲金│▲玉│▲銀│▲桂│▲飛│ 六
└──┴──┴──┴──┴──┴──┘
先手持ち駒:
0037デフォルトの名無しさん
NGNGこいつを動かすためにはあと何をそろえるといいのでせう?
0038デフォルトの名無しさん
NGNGとっても興味あるけど55将棋みたいにあtからゴルァされるといやだしぃ
0039まともに動いてない ◆R/rLuLKeEI
NGNGああ、やはりまともに動いてないんだ。
サンのJavaサイトから実行環境JRE 1.4.2_03以上をダウンロード、インストールしてほしい。
それでもなおまともに動いてないなら、どこかに結果を丸々コピペしてほしい。
お役に立てるかもしれない。
0040デフォルトの名無しさん
NGNGいやうちはwindowsXPなんだけど関連付けされてないのでまるっきり動かせなかったの(w
とりあえずサンへいってきまふ
0041まともに動いてない ◆R/rLuLKeEI
NGNG参考までに。
JREをインストールしたことがあるのはWindows98とRedHat系Linux。
今回作成したのはLinux上です。
インストール手順はサイトにあるので最後の最後までそれに従うようにお願いします。
0042デフォルトの名無しさん
NGNGttp://java.sun.com/j2se/1.4.2/ja/download.html
0043デフォルトの名無しさん
NGNGあっさりうごきました
0044まともに動いてない ◆R/rLuLKeEI
NGNGJava初心者スレ47(現行)もどうぞ。
URLは…すんません。出直してきます。
0045まともに動いてない ◆R/rLuLKeEI
NGNGええっ!そんなにあっさり…
動かねえ書き込めねえぞゴラァ七連発に打ち拉がれる準備してたんだが。
0046デフォルトの名無しさん
NGNGプレッシャーかけたる(w
0047まともに動いてない ◆R/rLuLKeEI
NGNGううっ、神経性胃炎が痛みだした。
完治してまだ需要があったら検討だけしまっさ。
0048まともに動いてない ◆R/rLuLKeEI
NGNG奈々美さんへ、
拡張モードで対戦中に現在の局面を確認するコマンドってありましたっけ?
実装が猛烈に困難なら無くてもいいです。
0049まともに動いてない ◆R/rLuLKeEI
NGNG再掲載を希望する。
0050デフォルトの名無しさん
NGNG前スレより転載
CSAモード
client: LOGIN name passwordで接続。game_waitingステータスに移行
server: 相手が見つかると対局条件表示。agree_waitingステータスに移行
client: AGREEで条件受け入れ。gameステータスに移行
client: 対局
server: 対局終了で切断
(gamenameは"default"に固定。先手、後手の選択は出来ない)
拡張モード
client: LOGIN name password x1で接続
server: ##[LOGIN] +OK x1 を送る。clientは"connected"ステータス
client: %%GAME gamename + or %%GAME gamename -で、"game_waiting"ステータスに移行
server: "gamename +"と"gamename -"が揃うと、対局条件表示
client: AGREEで条件受け入れ。gameステータスに移行
client: 対局
server: 対局終了でconnectedステータスに移行
client: %%LOGOUTで終了
仕様可能な拡張コマンド
%%WHO
%%CHAT string
%%GAME gamename +
%%GAME gamename -
%%LOGOUT
0051まともに動いてない ◆R/rLuLKeEI
NGNGそうそう、それそれ。
ありがとう。
%%LOGOUTは廃止だったよね。
チャットプログラムを練って作って上げて検討して二日連続で徹夜したらほんとに体調悪くなってもた。
将棋盤も出せる「拡張モードでチャットしか出来ないクライアント」はちょほいと待ちなぁ。
0052デフォルトの名無しさん
NGNG拡張モードは将棋に関わる拡張は(現在のところ)してないし、そもそもそのコ
マンドの必要性もよくわからんな。
それとム板的にはソースも上げてくれるとよいと思うんだけど。
0053まともに動いてない ◆R/rLuLKeEI
NGNGソースも上げてしまいました。
まともに動いてないかもしれないプログラムの中身を見たい方はどうぞ。
拡張モードで対戦中に現在の局面を確認するコマンドは、チャットクライアントのテキストエリアに一手毎に表示させることでクライアント内部での局面の更新をサボろうという魂胆です。
あえなく却下。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGなる、観戦があるか。いずれにしろフル仕様のサーバなら盤面情報も持たなきゃ
いけないから、その機能の実装も猛烈に困難ってことは無さそうだね。
0056デフォルトの名無しさん
NGNGうん、審判機能の実装のほうがよっぽど面倒くさいと思うなり(w
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG誰も質問に答えてくれない・・・
完成したらそれがどれぐらいの強さなのか試したりしないのか?
それとも完成してる奴がいないのか?
どっち?
0059デフォルトの名無しさん
NGNGwdoor で Revision 1.5 のログを眺めていたら
./shogi-server:590:in `main': undefined method `name' for nil:NilClass (NoMethodError)
from ./shogi-server:561:in `start'
というエラーが出ていました.
0060デフォルトの名無しさん
NGNGまだ級位者の自分より弱いので24では試したことがない
もうちょっとしてからの予定
老婆心ながらAIとはあまりいわないと思う
0061まともに動いてない ◆R/rLuLKeEI
NGNGお疲れさま。
皆様、おはようございます。
反動で寝ておりました。
とりあえず現物サーバー合わせで将棋盤も出せる拡張モードでチャットしか出来ないクライアントを気ままにこしらえていきます。
本来のまともに動いてない将棋プログラムと共用出来るように練り直すつもりです。
現状、将棋盤すら出ない拡張モードでチャットしか出来ないクライアントのダイアログはクラスファイルを共用しています。
アップしたものは断りなく使って構いませんが、Javaで作る人なんて私以外に誰もいないでしょう。
遅いし、JVMはリソース食うし、 略
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG* %%LOGOUT 廃止,##[ERROR] 追加に対応
* チャット機能のキー割当てを `c' に変更
* 感想戦用にトレース表示機能を追加
* kifuview.el を追加
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.4.tgz
0064デフォルトの名無しさん
NGNGhttp://wdoor.c.u-tokyo.ac.jp/shogi/index.html
補完などよろしくお願いします.
0065奈々美
NGNGタイムアウトするようにしました。
http://gm.a-ark.net/~shogi/clip/img/21.zip
>>54, >>55
%%LIST
で、現在の対局の一覧
%%SHOW 対局名
で、盤面表示
という感じでしょうか。
適当な仕様、コマンド名きぼんぬ。
>>59
どこがバグっているのか分かりません。
デバッグ出来てません。
0066まともに動いてない ◆R/rLuLKeEI
NGNG>>64
まとめページ「unofficial shogi server for computer programs」作成ありがとうございます。
管理者のページは後でゆっくり見て廻ります。
>>65
盤面表示はプロトコルの「3.2.3 対局の局面情報」の形式で。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/Playtown-Spade/8662/
よく知らんけど>>38からするとなんか胡散臭いの? これ。
0069デフォルトの名無しさん
NGNGでもindex.htmlおいたせいで、ディレクトリ一覧が見れないよ・・・
ログファイル一覧とか見たいけどダメ?
0070デフォルトの名無しさん
NGNGindex.html からリンク貼ってあるぞ。
0071デフォルトの名無しさん
NGNGその昔ソフトハウスともめてたことがあったのよ
その後どういう結論になったのか調べようと思ったんだけど
ネット上では探せなかったのでそれ以上調べてない
0072デフォルトの名無しさん
NGNGなるほど、サンクス。
0073デフォルトの名無しさん
NGNGサーバープログラムなんて結構簡単に作れそうに思うんだけどなぁ。
俺は初心者だから作れないけどw
0074 ◆R/rLuLKeEI
NGNG現に稼働してるし。
あっしはバカだから時間かかるけど、作れなくはない。
0075デフォルトの名無しさん
NGNGネットワーク関連は苦手なので、
上手い人にお任せする。これ最強。
でも自分の知らない言語で書かれると読めなくて(´・ω・`)ショボーン
0076デフォルトの名無しさん
NGNG>> 66
ども.「管理者」は連絡先として載せてるだけなので特に読みものはないです
>> 69
「一覧」をどうぞ
>> 70
どうも
0077デフォルトの名無しさん
NGNG0078まともに動いてない ◆R/rLuLKeEI
NGNGで、昨日の23時台に拡張モードで接続してみたところtest1さんまたはtest3さんが居た。
どうやらCSAモードだったらしく反応がなかった。
奈々美さんへ、%%WHOコマンドでどちらのモードでログインしたか分かるとちょっといい。
test1さんまたはtest3さんへ、私のまともに動いてないプログラムがログイン直後にダウンしてしまいました。
対戦待ちのところご迷惑をおかけしました。
済みません。
0079デフォルトの名無しさん
NGNG少し聞いてくれ。
「最後の審判」て詰め将棋がある。
http://www2u.biglobe.ne.jp/~nuida/h/t/syokei.htm
ただし詰むかどうかは不明とされる。
なぜ「不明」なのかというと、将棋のルールの不備を突いて
詰ます詰め将棋だから。
さて、なにが不備なのかだが、これは指し将棋と詰め将棋の
反則処理に違いがあることが原因。
将棋に限らずこの手のゲームの反則には、本来2種類有り得る。
ひとつは「飛車を3枚持っちゃいけません」等のゲームの根幹に関わる反則、
もうひとつは、「二歩」なんかの運用上有り得る反則のふたつだ。
ム板的に言えば、前者は「チェック済み反則」、後者は「実行時反則」。
指し将棋のルールは殆どの場合「実行時」なのは説明不要だろう。
ところが詰め将棋のルールは「チェック済み」だ。
なぜなら詰め将棋のルールに反する手は確実に誤答であるから。
(例えば王手以外の手を指して反則負け、のようなことは詰め将棋にはない。
また解き直せばいいのだから)
「最後の審判」はこの二つの反則を混ぜているので可笑しなことになっている。
「チェック済み反則」と「実行時反則」の区別がきちんと付いている人間には、
この作品が詰むか詰まないかなど迷う余地がない。
つーわけで、漏れの結論では、上記の詰め将棋は「詰まない」。
だからなんなんだ、といわれても困るのだが、このスレ以外で
書ける場所が思い浮かばなかったもんで・・・。例外の勉強してたんだよぉ。
・・・さて、何事もなかったようにこのスレは進んでいくのであった↓
0080デフォルトの名無しさん
NGNG手順は追ってないけど、
打ち歩による王手を回避する手がある以上は「打歩詰ではない」し、
それによって攻方に反則手しか選択の余地がないとすれば、
「詰将棋として成立しない(=詰まない)」のでは?
結構面白かったよ。
0081デフォルトの名無しさん
NGNG詰まったときにでもドゾー。
「現代将棋」成立に関する一考察
ttp://kazemidori.oheya.to/doc/gendai2.html
0082デフォルトの名無しさん
NGNG同意。
連続王手も4回連続でなくて、
王手 + 王手以外 + 3回連続王手
とかだと千日手になるんだよね。
(当たり前といえばそうなんだろうけど)
0083デフォルトの名無しさん
NGNGプロトコルうんぬんは別問題だろ
そんなに難しくないし
将棋AIプログラムが難しいんであって
通信は最後でもOKだろ
0084デフォルトの名無しさん
NGNG将棋板番外編に話が出てた効き表示機能ってのがおもしろそう
なのでやってみます。
0085デフォルトの名無しさん
NGNGだが、このスレももう4本目だし、
大会に参加できない人と対戦できるのも面白くないか?
自分のプログラムの弱点を知ることもできるしな。
どうせ革新的アルゴリズムができることはないから、
マターリ語る中に通信開発があるのも楽しいよ
0086デフォルトの名無しさん
NGNGプロトコルは難しくないかも知れないが、正しくプロトコルを実装した
サーバーを立てるのはマンドクサイ。
対戦将棋プログラムに「正しい」プロトコルを実装するのもマンドクサイ。
(漏れは通信プロトコルを実装した事なぞ無いんで多分だがw)
ところがこれらが無いと誰のプログラムがより強いのか分からんじゃないかw?
多分、一番初めにやるべきだった事を今やっていると言うのが正しい評価だろう。
でも、なかなか大変だよね。ボランティア精神のある人が大勢居ないと。
ところで将棋クラブ24にはこういう公開されたプロトコルは無いのかな?
これさえ守ってれば人間が使うクライアントと同じように対戦に参加できるというものは?
ソフト指しをやりたいと言うんじゃないデツよ!
将棋プログラムと知ってもらった上でアマチュアプログラマの作品も一般の人に
対戦、評価してもらえたら良いなあって事。
0087デフォルトの名無しさん
NGNGただの重労働
そこらへんにJavaアプリで対戦できるのはころがってるし
0088デフォルトの名無しさん
NGNGサーバは実装の手間の割に将棋プログラムの裾野を拡げる起爆剤になり得ると思う。
# 効果の方が大きいって意味ね、為念。もちろん奈々美タンには激しく感謝しています。
あと仕様がオープンなところがデカい。
24はよく知らないけど公開してないんじゃない? それに変わるものをこっちで
お膳立てできればいいなぁと思っているところ。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG009286
NGNGそうでつか、やっぱり無いでつか。
そうだよなあ、一般の人間に混じって,分けの分からないプログラムがどんどん
指すようになったらよっぽどプロトコルの安全性を高めておかないとえらい事になりそう。
悪意でなくともバグったクライアントのためにサーバー全体がダウンしたりしそー!
あるいはその公開したプロトコルがセキュリティ上の穴になってクラッカーに狙われるとか。
>90
お,俺は谷川に指して欲しい。このサーバーで人間が誰でも自由に指せるようになったら
プロ棋士がこっそり指してみたりしてくれんかなあw?
0093デフォルトの名無しさん
NGNG0094まともに動いてない ◆R/rLuLKeEI
NGNGそうしょっちゅう自爆はせんやろ。
いや、できんやろ。
0095デフォルトの名無しさん
NGNG歩を張るときは通常より3秒程、思考時間が長くなるに違いない
「二歩じゃないだろうな・・・キョロキョロ(3秒間)」
009686
NGNG「阿部隆の良い手、悪い手、普通の手」
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGチャットでスペースをいれるとそれ以降無視されるようです
特に不都合がなければスペースも使えると嬉しいです
- when /^%%CHAT\s+(\S+)/
+ when /^%%CHAT\s+(.+)/
でいかがでしょう
0099デフォルトの名無しさん
NGNGWin なクライアントが多いだろうから長いものには巻かれろ、かな。
まとも氏のは何で流してます? (Java はすっかり忘れちったな…)
0100まとも氏 ◆R/rLuLKeEI
NGNG>まとも氏のは何で流してます? (Java はすっかり忘れちったな…)
まったく気にしてなかった。
LINUXだから多分EUCじゃないかな。
でも、何も変換してないから各OS標準の文字コードか、さもなくばUNICODEで流れているかも…
つまり分からんというこってす。
0101林
NGNG文字コード未指定だから、流れる文字コードはシステムのデフォルト文字コードだね。
OSによって変わっちゃうから、文字コード指定した方がいいかも。
// 動作未確認
// pr = new PrintWriter(server.getOutputStream(), true);
// br = new BufferedReader(new InputStreamReader(server.getInputStream()));
pr = new PrintWriter(new OutputStreamWriter(server.getOutputStream(), "Shift_JIS"), true);
br = new BufferedReader(new InputStreamReader(server.getInputStream(), "Shift_JIS"));
0103デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106まともに動いてない ◆R/rLuLKeEI
NGNGありがとう。
でもまだサービス残業中なので更新できません。
急ぎの方は各自いじくり倒して改訂版を作ってください。
週末にでもログインダイアログに文字エンコーディングコンボボックスを追加するか設定ファイル化するつもりです。
私が休日出勤にならないことを祈ろう。
0107奈々美
NGNG対応しました。
http://gm.a-ark.net/~shogi/clip/img/23.zip
>>106
コードは全クライアントで統一すべき(== 各自で選択出来ないべき)だと思います。
unicodeに一票入れます。
>>74
土曜日深夜にコーディングを開始して日曜に公開くらいです。
>>54, >>55
先週サボってました。まだ始めてません。
0108まともに動いてない ◆R/rLuLKeEI
NGNGというかJavaの内部表現はUNICODEだし。
なので、サーバー側で決めて頂ければそれに合わせます。
あと、未確認だけどRS232プロトコルはシフトJISだった気がする。
0109まともに動いてない ◆R/rLuLKeEI
NGNG>あと、未確認だけどRS232プロトコルはシフトJISだった気がする。
嘘です。
棋譜フォーマットのほうでしかもOS依存でした。
0110デフォルトの名無しさん
NGNGもつかれさまです。
Unicode はちょっと… って人は多くないのかな。クライアントが限定されそ
うだし。少なくとも自分はそうなんですが。
関係ないけど、wdoor のログに teamgps がキタ━━(゚∀゚)━━ !!!!!
0111うさぴょんの育ての親
NGNGUnicodeですかー。
OSがWindowsなので、JavaのUnicodeとは微妙に相性が悪いんですけどー…。
〜が~に化けたりとか、\がバックスラッシュになったりとかね。
まぁ、でもちょっと我慢してもらうだけだからいいかなぁ。
時間に余裕ができたらusapyonもwdoorに突入するのでよろしくー。
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGEmacs クライアント重宝してます
香が成ったら成桂になってしまったので報告します
あと本質ではないですが
auto scroll の関係でチャットの発言は最終行に出る方が自然かと
--- shogi.el.org Sat Jun 26 01:48:39 2004
+++ shogi.el Sat Jun 26 01:48:47 2004
@@ -463,7 +463,7 @@
(cond ((eq symbol 'fu) 'to-kin)
((eq symbol 'gin) 'nari-gin)
((eq symbol 'kei) 'nari-kei)
- ((eq symbol 'kyo) 'nari-kei)
+ ((eq symbol 'kyo) 'nari-kyo)
((eq symbol 'hisha) 'ryuu)
((eq symbol 'kaku) 'uma)
(t nil))
0114奈々美
NGNGの仕様を追加しました。
http://gm.a-ark.net/~shogi/clip/img/24.zip
ほとんどチェックしてないので、バグったらすいません。
↓%%LISTコマンドによって、対局IDの一覧が出る。
%%LIST
##[LIST] b-1-a-20040626025755
##[LIST] +OK
↓%%SHOWコマンドで盤面表示
%%SHOW b-1-a-20040626025755
##[SHOW] P1-KY-KE-GI-KI-OU-KI-GI-KE *
##[SHOW] P2 * -HI * * * * * -KA *
##[SHOW] P3-FU-FU-FU-FU-FU-FU-FU-FU-FU
##[SHOW] P4 * * * * * * * * *
##[SHOW] P5 * * * * * * * * *
##[SHOW] P6 * * * * * * * +NY *
##[SHOW] P7+FU+FU+FU+FU+FU+FU+FU * +FU
##[SHOW] P8 * +KA * * * * * +HI *
##[SHOW] P9+KY+KE+GI+KI+OU+KI+GI+KE *
##[SHOW] P+00KY
##[SHOW] P-00FU
##[SHOW] +OK
0115奈々美
NGNGチェック出来ること
- 持っていない駒を打つ
- 歩が馬に成ったりする
- 自分の駒を取る
チェック出来ないこと
- 角が直進するとかの、動き方
- 角が敵を跨いで進むとかの、動き方
- 敵陣以外で成る
- 二歩とか
予定
他人の対局を見続ける機能
%%MONITORコマンド?
0116デフォルトの名無しさん
NGNG当方24で中級者やってます
ここで作られてるソフトにはもう負けてしまうのかなぁ
0117奈々美
NGNGwdoorの管理者さんとCHAT出来ました :-)
あっという間にレスポンスが帰ってきたので、
おうむ返しプログラムでも繋がっているのかと思いました。
./shogi-server:607:in `main': undefined method `name' for nil:NilClass (NoMethodError)
これは直さないと...
0118デフォルトの名無しさん
NGNGちょうど今サーバ落としても大丈夫かなーと眺めていたところだったので:-)
> 奈々美さん
0119デフォルトの名無しさん
NGNG拡張モードでゲーム名を指定して待たせています
loginname: sentegps, gamename: sentegps, (GPS将棋が先手)
loginname: gotegps, gamename: gotegps, (GPS将棋が後手)
デバッグが不充分なので途中で落ちたらごめんなさい.
0120まともに動いてない ◆R/rLuLKeEI
NGNG拡張モードでチャットしか出来ないクライアントは%%GAMEを送信するところまで。
どっちもそのあとまともに動かなくなってもた(笑)。
0121デフォルトの名無しさん
NGNG* データ構造を若干変更
* チャットの文字コードを(暫定的に) utf-8 に指定
* 香が成ると成桂になっていたのを修正 (Thanks to >>113さん)
* チャット発言が最終行に表示されるよう変更 (Suggested by >>113さん)
* その他細かい修正
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.5.tgz
0122113
NGNGどうもしゃべる前に (get-buffer-create csashogi-chat-buffer-name)
しないといけないみたいなんですが,どこにいれれば良いでしょう
0123デフォルトの名無しさん
NGNGあわわ、ご指摘ありがとうございます。
--- csashogi.el 26 Jun 2004 11:18:40 -0000 0.28
+++ csashogi.el 27 Jun 2004 06:37:22 -0000
@@ -223,13 +223,13 @@
(insert (concat string "\n"))))
(defun csashogi-chat-insert (id string)
- (with-current-buffer csashogi-chat-buffer-name
+ (with-current-buffer (get-buffer-create csashogi-chat-buffer-name)
(setq buffer-read-only t)
(let ((buffer-read-only nil))
(goto-char (point-max))
(insert (concat id "> " string "\n"))))
(when (equal (buffer-name) csashogi-board-buffer-name)
- (csashogi-display-buffer (get-buffer-create csashogi-chat-buffer-name))
+ (csashogi-display-buffer csashogi-chat-buffer-name)
(other-window 1)
(unless (pos-visible-in-window-p (goto-char (point-max)))
(recenter -1))
こうですかね。修正版も置いておきます。
http://tokyo.cool.ne.jp/progn/shogi-0.6.tgz
0124まともに動いてない ◆R/rLuLKeEI
NGNGLOGIN matomo1 te
LOGIN:matomo1 OK
Protocol_Mode:Server
Format:Shogi 1.0
Game_ID:default-matomo1-matomo0-20040627192729
となって、
BEGIN Game_Summary
Protocol_Version:1.0
が抜けていることに気が付いた。バグ?仕様?
0125奈々美
NGNGバグです。修正しました。
http://gm.a-ark.net/~shogi/clip/img/25.zip
0126デフォルトの名無しさん
NGNGgps将棋関係で,合法手が ILLEGAL_MOVE と判定されるという話が
二件あったのでちょっと記録をとろうかと思っています.
ruby は素人なのでアドバイスお願いします.
なお,wdoor のruby は ruby 1.8.1 (2004-02-03) [i386-linux] です.
--- shogi-server.10 2004-06-27 23:49:26.000000000 +0900
+++ shogi-server 2004-06-27 23:56:04.000000000 +0900
@@ -550,6 +550,7 @@
@end_time = Time::new
t = @end_time - @start_time
t = Least_Time_Per_Move if (t < Least_Time_Per_Move)
+ legal_move = false;
if (str != :timeout)
legal_move = @board.handle_one_move(str)
if (legal_move)
@@ -564,6 +565,7 @@
@current_player.mytime = 0
end
if (!legal_move)
+ log_message(sprintf("ILLEGAL_MOVE %s\nT%d\n", str, t))
illegal_end()
finish_flag = true
elsif (@current_player.mytime <= 0)
0127奈々美
NGNG何か指されてILLEGAL_MOVEの場合には、棋譜に残ります。
timeoutの場合に、ILLEGAL_MOVEとなっていたのを修正しました。
http://gm.a-ark.net/~shogi/clip/img/26.zip
これでダメな場合は、
if (!legal_move)
+ log_message(sprintf("ILLEGAL_MOVE %s\nT%d\n", str, t))
illegal_end()
を入れて下さい。
+ legal_move = false;
は入れてはダメです。
0128デフォルトの名無しさん
NGNGありがとうございます.wdoor 更新しました.
しばらく様子を見てみます.
0129デフォルトの名無しさん
NGNG手動クライアント@Emacsをアップしておきます。
まだコードがやっつけレベルでバグがあるかもしれませんが、ないよりはマシ
かなーと。
* ##[LIST] コマンドサポート (`L' キーにバインド)
* ##[SHOW] コマンドサポート (`S' キーにバインド.但しまだ表示は生データ)
* Game_ID 指定時に補完が効くように
* kifuview の CSA 形式棋譜サポート
(kifuview-display-csa-region(), kifuview-display-csa-file())
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.7.tgz
0130まともに動いてない ◆R/rLuLKeEI
NGNG0131奈々美
NGNGhttp://gm.a-ark.net/~shogi/clip/img/27.zip
0132奈々美
NGNGどんなOSでも動くと思うのですが、違うのかしら?
0133うさぴょんの育ての親
NGNG時間が出来たらうさぴょんも拡張モード対応して参戦するつもり。
…って、要するにまだ作り始めてないんですが。スマソ。
0134まともに動いてない ◆R/rLuLKeEI
NGNGもちろん無問題です。
0135林
NGNGhttp://gm.a-ark.net/~shogi/clip/img/28.zip
http://gm.a-ark.net/~shogi/clip/img/29.png
0136デフォルトの名無しさん
NGNGWIN用作りかけてますが時間がなかなかとれず停滞中
0137デフォルトの名無しさん
NGNG改造について奈々美さんに査読をお願いしたいのですが,
差し支えなければ http://wdoor.c.u-tokyo.ac.jp/shogi/ の下の方の"管
理者" のリンク先のページにあるアドレスまでご連絡下さい.
0138デフォルトの名無しさん
NGNGyowai_gotegps ならぎりぎり勝てるかなぁ...
0139うさぴょんの育ての親
NGNGLOGINusapyon OK
って帰ってくるんだけど、これって拡張モードでログインした場合、LOGIN usapyon OK x1って帰ってくるんじゃなかったっけ?
とりあえず、些細な違いは気にせずログイン成功したことにしますが。
0140林
NGNG##[LOGIN] +OK x1
が帰ってくるはずですけど・・・
拡張モード
client: LOGIN name password x1で接続
server: ##[LOGIN] +OK x1 を送る。clientは"connected"ステータス
http://wdoor.c.u-tokyo.ac.jp/shogi/
0141うさぴょんの育ての親
NGNGゴメソ、何か勘違いしてた。
その後、
##[LOGIN] +OK x1
が帰ってくるのね。
もう少しで繋がってゲーム開始までは行きそう。
0142デフォルトの名無しさん
NGNGあと、人間かコンピュータか を調べられるコマンドとか。
0143デフォルトの名無しさん
NGNG> UserAgentみたいなのは無いの?
まぁ login name でも事足りるのかもしんないけど、対応クライアントが増え
てくればあると面白そう。
> あと、人間かコンピュータか を調べられるコマンドとか。
こっちは判断が付かないから、結局 UA の自己申告で判断すんだろうね。
0144デフォルトの名無しさん
NGNGUAがあると面白そうだね。
人間かコンピュータかは自己申告しかないけど、
人間が対戦相手にコンピュータを指定とか、コンピュータが対戦相手にコンピュータを指定
ということができるのは良いね。
0145うさぴょんの育ての親
NGNGしかし、CHAT対応とかまだ課題は山積み。CHATコマンドはどんなタイミングでも
飛んでくる可能性があるから、今みたいにこの次は必ずこれが帰ってくるとか
いう風に前提したプログラムだとCHATされた途端にコケてしまう。
真面目にCHAT対応しようとすると、Asyncソケットとか使わないとダメかなぁ。
0146デフォルトの名無しさん
NGNGおー、いよいよ来ましたね。がんがってください。
0147うさぴょんの育ての親
NGNG今までは通信機能がなかったから、最後の一手(玉を詰ます手)を指したら、
その場でゲーム終了していて問題なかったんだけど、最後の一手を相手に送らないまま
勝ったと思い込んでいる(笑)。それじゃ時間切れ負けだよ(笑)。
0148まともに動いてない ◆R/rLuLKeEI
NGNG早っ。
Java版チャットクライアントでもチャットデータ行が混ざる問題を考え中。
サーバーからの入力は別スレッド化してあるからそれぞれ振り分けるだけだとは思うのだが…
WIN用のを作ってらっしゃる方同様なかなかまとまった時間がとれないですね。
0149デフォルトの名無しさん
NGNGさっき似たようなかんじでノーマルGPSに勝ったw
ゆくゆくはサーバが判定してくれることになるんだろうけど。
しかし全然敵わねーな… orz
0150うさぴょんの育ての親
NGNG0151うさぴょんの育ての親
NGNG相変わらず医者に夜更かし禁止(23:30就寝厳守)されているのでもう寝ます。
でもタイムリミット前にうさぴょん対うさぴょんで決着が付くのを見られて幸せ。
0152デフォルトの名無しさん
NGNGgps将棋ではチャットは単に無視して次の行を読んでます
対局する分には充分かと:-)
0153奈々美
NGNG通信が途切れた場合の処理が不完全で、ゾンビみたいのが残っているのかしら...
0154まともに動いてない ◆R/rLuLKeEI
NGNGJava版チャットクライアントでは全てを単に表示しているだけです。
対局しない分には充分かと(笑)。
チャットが主で観戦が副、対局は副の副。
なので対局するならチャットデータとは振り分けたいなぁって。
生い立ちが違うと面倒が増える。
0155うさぴょんの育ての親
NGNG夜中にこんばんは。ちょっとトイレに起きて来ました(^^;;
おそらく通信が途切れた場合の処置が不完全なゾンビなのだと思います。
今、うさぴょんをつなぎっぱなしにしておいたログを見てみたら、
Chatの方は、Unicode変換もあることを思い出しました(笑)。
全然読めませーん(笑)。
みんな何て言っているのかさっぱりです(笑)。
でもななみさんの「hello」*だけ*は読めたので、同じUnicodeでもUTF-8ってことですかね。
0156うさぴょんの育ての親
NGNGお約束でGPS将棋に時間切れ負けしてました。これで今のところ一勝一敗。
0157うさぴょんの育ての親
NGNGyowai_gpsに挑戦した一手10秒のうさぴょんは勝ったので、通算2勝2敗。
タイムアウト多いから、いい加減、選手権用の早いマシンと定跡で本気で挑もう(^^;
でもその前にタイムアウト負けなどをサーバから送られた時に処理しなくては。
0158将棋NN(314)
NGNGまた、一手何秒の将棋と設定して対局を始めたら、時間が来れば途中で読みを打ち切って
手を指すわけでしょう?なぜ、タイムアウトが起きるのでしょうか?
微妙なバグというかサーバーと対局ソフトの方で時間のカウントが合ってないのでしょうか?
それとも通信遅延のせい?
0159うさぴょんの育ての親
NGNG細かいところで未実装な点がありますが、一応GPS将棋と対戦して遊べる
レベルになりました。今のところ、時間切れるとうさぴょんの負け、時間内に終われば
うさぴょんの勝ちという感じで2勝2敗。良きライバルのようです。
0160うさぴょんの育ての親
NGNGあ、コンピュータ将棋選手権と同じで25分切れ負け、0秒で指しても必ず1秒はカウントするルールです。
(そうなってなかったら審判サーバのバグです(笑))。
与えられた25分を使い切ったらとにかく負けなんですが、序盤から長考するうさぴょんは、
長い将棋になると、時間切れ負けしやすいんです。
タイムアウト負けって表現が悪かったですね。
0161将棋NN(314)
NGNG了解しました。
しかしそうなるとこのサーバーにはクラブ24と同じように持ち時間と持ち時間を
消費した後、何秒将棋にするかをネゴして選択できる機能を追加してもらえないのでしょうか?
25分切れ負け制ではあまりに考慮時間が短いし時間を使ってしまった方が問答無用で負けになるので
本当の実力の評価にはならないのではないでしょうか?
コンピュータ将棋選手権の方は大会運営の都合上仕方が無いのでしょうけど。
0162うさぴょんの育ての親
NGNGCHATが来たら画面に表示するようにはしました。
でも、サーバからのレスポンスを読み込むのは、相手の指し手を待っている間だけなので、
ちゃんとチャットするには機能的に不十分です(w。
大真面目に処理しようとすると、根本的に直しを入れないといけないような感じなので、
それをやる気が起きるまではこのままですね。きちんとリアルタイムにチャットできる
ユーザエージェントになったら、次の版のうさぴょんとして公開します。
ついでにソースも。
0163うさぴょんの育ての親
NGNGそういう機能を追加するのは割と簡単だと思いますし、将来的にはやって欲しいと思いますが…。
まぁとりあえず大会と同じルールでうさぴょんが如何に時間切れ負けが多いか
見てやるのもまた一興かと(笑)。
wdoorの管理者の方は、コンピュータ将棋選手権参加者でもあるので、
コンピュータ将棋選手権のルールで、如何に自分のプログラムが戦えるか
見てみたいという欲求もあるでしょうし。
持ち時間が長時間の大会(9時間で切れたら1分とかね)を開くべきだと言っていた人が前スレに
いらしたのですが、そういうサーバ立ててくれないかしら。
0164デフォルトの名無しさん
NGNG> 持ち時間が長時間の大会(9時間で切れたら1分とかね)を開くべきだと言っていた人が前スレに
> いらしたのですが、そういうサーバ立ててくれないかしら。
漏れはこの計画に、そういうのを期待していた。
一手でも多く読む対戦で
24時間接続しっぱなしにして、自動対戦させておけば
あとから記録を見て弱点を知れるし。
0165デフォルトの名無しさん
NGNGうさぴょんの育ての親さん先程は挨拶に気付かず抜けてしまってすみません
今のところサーバをおいておくマシンの負担はほとんど無さそうなので,
wdoor の別のポートに持時間の長い対局用サーバをおいてもいいですね.
サーバ設置者としてはまずは沢山のプログラムが集まって対局で賑わうと嬉し
いです.
0166まともに動いてない ◆R/rLuLKeEI
NGNG0167うさぴょんの育ての親
NGNGむぅうう。ネゴは面倒そうですね。
>>164 >>165
wdoorの管理者さん、とりあえず持ち時間36000秒くらいのサーバを別ポートで
立ててもらうってことでどうでしょ?
0168うさぴょんの育ての親
NGNG実は10時間サーバを自分で立てようと思ったんだけど、こんな感じで頓挫中。
usapyon# netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp6 0 0 *.4081 *.* LISTEN
なんでプロトコルがtcp4じゃなくてtcp6になるんだよーーーーー。
Ruby使いじゃないのでさぱーり分かりません。
0169165
NGNGwdoor:5081 でどうぞ > 10時間サーバ
対局中に停電とかサーバ再起動があったらすみません
# 良くみたらさっきは161と162を間違えてました
0170うさぴょんの育ての親
NGNGとりあえず、一手400秒のうさぴょんをwdoor:5081に繋ぎました。
勝負したい方はどうぞー。勝負がつくのにえらい時間がかかると思うので、先着一名様限りだと思います(笑)。
0171デフォルトの名無しさん
NGNG0172将棋NN(314)
NGNG早速のご対応ありがとうございます。
と言っても私はまだ対局プログラムなんぞ作れてませんがw。
将来的な課題として持ち時間、それが切れた後、何秒将棋にするかをネゴするための
プロトコルをこのスレッドで拡張仕様として決めて頂けないでしょうか?
例えば 将棋プログラムA 持ち時間 30min-2hour 時間切れ後 一手30秒から1分
将棋プログラムB 持ち時間 1hour-4hour 時間切れ後 一手1分から3分
だとしたら両方が許容できる一番「長い」時間(2hour,一手1分)で対局できるとか。
お願いばかりで申し訳ありません。
0173デフォルトの名無しさん
NGNGわざわざネゴする必要性がよくわかりませんけど。
今みたいに持ち時間が違うサーバをいくつか上げとけば充分じゃない?
サーバから指定された時間に基づいてクライアントが動けばいいだけだし。
0174デフォルトの名無しさん
NGNG%%GAME GAMENAME-X-Y
(X: 持ち時間, Y: 切れた後一手何秒で指すか)
一致した相手としか対局しないのは今までと同じ
0175うさぴょんの育ての親
NGNGusapyon.dip.jp:4081にも10時間サーバを立ててみました。
誰か使えるようなら使ってみて下さい。
#Rubyのバージョンとかの問題でうまく動いてなかったりしてそうな…。
0176将棋NN(314)
NGNGそれでは一般性(汎用性)が無いと思うのですよ。
他にも対戦サーバーが出てきた場合、全てのサーバーがこのwdoorサーバーのやり方を
踏襲しなければいけないとなるとサーバーの立て方自体(どのポートを開けるかなど)が
制約を受けるのでは無いかと
またそれぞれのサーバーが事前に規定した条件には無い条件で戦いたい場合もあるのでは無いかと。
考えすぎ(贅沢すぎ)ですかね?
0177デフォルトの名無しさん
NGNGBさんがAさんと持ち時間5分で対局したいと思ったら
BさんはサーバーへAさんと5分マッチさしてとコマンドを送る
するとサーバーがAさんにBさんが5分マッチしようって言ってるよとメッセージを送る
Bさんがその条件では嫌だと思ったら「そんなんだめよん」コマンドを送る
その条件を受け入れるなら「いいよん」とこまんどをおくる
そうすると現在の盤面(途中再開もあり)が両者に送られて対局が始まる
0178173
NGNGなるほど。自分の案は麻雀の東風荘のイメージね。東風戦と東南戦でサーバが
別れてるかんじ。
>>176
真っ先に感じたのは(ネゴを規定して実装する)労多い割に実りが…ってこと。
でも、その意見も一理あると思います。
>>174案ならば結構楽に実現できそうかな。
0180奈々美
NGNGどうするのがいいでしょうか?
"王手を回避しなかった"という判定が、今のサーバには難しいです。
相手クライアントが、%KACHIを送ってくれるのを期待していいですか?
0181うさぴょんの育ての親
NGNG>>180
王を取られたら負けという判定は出来ないですか?
大抵のクライアントは、王を取る手を指すと思います。
0182奈々美
NGNG0183将棋NN(314)
NGNG恥ずかしいな、それw
0184デフォルトの名無しさん
NGNG%KACHI は意味合いが違うのでちょっと無理がありそうですね。
0185うさぴょんの育ての親
NGNGすいません、手動クライアントで恥ずかしいことかましました…(w
0186奈々美
NGNG0187将棋NN(314)
NGNG手動なら仕方が無い(良くある)でしょう。
私も何回かやりましたw。
0188デフォルトの名無しさん
NGNG0189まともに動いてない ◆R/rLuLKeEI
NGNGイリーガルムーブを指した局面で自玉に敵の利きがあるかないかで判定するのが今のサーバーでは難しいのでは?
0190デフォルトの名無しさん
NGNG* csashogi.el: チャット表示フォーマットを Riece 風に変更
* csashogi.el: チャット入力用バッファを新設
* kifuview.el: 盤の向きをトグルする機能を追加 (`s' キーにバインド)
* kifuview.el: 新たにフレームを開かない設定の時はバッファをポップアッ
プするように修正
* その他細かい修正
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.8.tgz
0191デフォルトの名無しさん
NGNG駒の利き管理について、
その場所に利いている方向をビットで管理するうさぴょんタイプと、
その場所に利いている駒をスタックで管理するYSS?タイプとが思いつくのですが、
どちら(もしくはハイブリッド)を採用されているのでしょうか?
愚問と思われた方は流してください(^^;
0192まともに動いてない ◆R/rLuLKeEI
NGNG改造しようとしている方向は[その場所に利いている駒をスタックで管理するYSS?タイプ]に近い。
0193うさぴょんの育ての親
NGNG変わったところでは、奈良将棋は、その場に利いている駒を64ビットで管理していて、
例えば飛車1なら48ビット目、飛車2なら49ビット目…のように
管理しているよ。つまり、各駒に背番号をあたえて、その背番号の
ビットが立っていたらその駒の利きがある、立っていなかったら利きがないという風に。
…こんな下手な説明でイメージできなかったらゴメソ。
これはうさぴょん2向けのアイディアだったのだが、奈良さんに先を越されてしまった(^^;
0194デフォルトの名無しさん
NGNGうさぴょんの育ての親さん
レス、ありがとうございます。
(飛び駒をどのように管理するかも含め)色々と試行錯誤されているのですね。
0195デフォルトの名無しさん
NGNG奈々美さんから直接送っていただいたので,変更点を代理でアナウンスします.
仕様変更:
- user name, game nameには,A-z0-9@_-. だけが使えることになった
(やる気になれば mail addresss そのものをユーザIDに使える)
- game nameのフォーマットが
name:total_time:byoyomi_time
と変更された.total_timeが0の場合は無制限.
(クライアントによる持ち時間の指定が可能になった)
その他:
- ゾンビ対策: ユーザIDとパスワードが同じだったら,ゲーム中以外は
古い接続を切って新しい接続が有効に
- 対局中の投了処理,REJECTのサポート,持時間管理など
~~~
同じサーバ上で持ち時間の長い対局が可能になったので
wdoor:5081 は一旦廃止しました.
0196奈々美
NGNGサーバ修正です。
http://gm.a-ark.net/~shogi/clip/img/30.zip
- 対局の終了部分に問題があったので修正
- 指定した対局の観察を継続的に行うコマンド
%%MONITORON game_id
を追加
解除は、%%MONITOROFF game_id
game_idは、%%LISTで表示される。
0197うさぴょんの育ての親
NGNGうーん、うさぴょんの実装が悪いのか、サーバが不安定なのか…
うさぴょんでゲームウェイトステータス中にCHATしてたらサーバがこけたみたいです。
何かクライアント側がこうだとやばいよとか、原因で考えられることありますか?
0199うさぴょんの育ての親
NGNGなのでメッセージもないです(泣)。
0200うさぴょんの育ての親
NGNG今日はお休みなさーい…。
0201奈々美
NGNGコード見直してますが、どこが悪いのか分かりません...
0202まともに動いてない ◆R/rLuLKeEI
NGNGうさぴょん側の問題の可能性もなきしもあらず。
再現しないのが厄介ですね。
0203191,194
NGNGいろいろと考えていたのですが、
奈良将棋の方法が、かなり美味しそうに見えてきました(^^;
参考にさせていただきます(っていいのかな?)。
0204うさぴょんの育ての親
NGNG奈良将棋の方法だと、64ビットの記憶域を使おうとすると24ビットも余るので、
飛車なら上下左右どちらから利いているか、角についても4方向、を持っておくと、
開き王手とか、自分の駒がピンされていて動けないかとかの判定に使えるので、
飛び駒の利きについては方向も持たせるのが吉でしょう。
うぁぁうさぴょん2の利きデータ構造これで全部しゃべってしまった(w。
0205191,194
NGNGおっしゃられている利きの話題は、某所にありましたね。
ビットで処理した場合、
ビット検出など手間が掛かる面もありますが(これで躊躇しているのも事実です)、
飛び駒の利きの延長短縮の更新などでXOR処理が美味しいんじゃないかと…
思っていたりしながら、128(64x2)ビットで盤面を持とうなどと
無謀なことを考えていたりもします(^^;
0206奈々美
NGNGサーバから送るメッセージ(CHATとか)を、getしてくれないクライアントに対して、
しばらくたつと、サーバのsocket writeが終了しなくなる
->
lockをかけてからsocket writeしているので、全threadフリーズ
というのが、サーバのフリーズの原因その1
これが発生したのかは、分からないけれど
0207うさぴょんの育ての親
NGNGこの現象はうさぴょんが原因で起きた可能性ありますねぇ。
今日のうさぴょんは大丈夫なんですが、昨日のバージョンではマルチスレッド動作時の
ロックに問題があって、40秒〜60秒くらい(うさぴょんが考えている間)サーバからの
メッセージを取れないというバグがあったので。
それから、追加でバグっぽい現象の報告なんですけど、ゲームしているIDで
ログインしようとすると、ログインを蹴られるんじゃなくて、待たされるみたいな…。
うさぴょんはログインを長時間待たされると想定して作ってない(すぐに
蹴られるかすぐにログインOKが帰ってくると思っているので、何にも考えずに
ただ待っている)のですが、待たされるのが仕様なら、対応することを考えます。
0208デフォルトの名無しさん
NGNG深く考えずに行き当たりばったりで作ってましたので
気が付くと駒が両方王になっちゃってることに気が付きました
csaの仕様見ても書いてないようなんですが
プロトコル上は王と玉はどうなってるんでしょうか?
0209デフォルトの名無しさん
NGNG1.14, 1.15 と立て続けに凍ったので,現在 1.12+改造版まで戻しています.
その差分が原因でなさそうでしたら,また1.15 に戻しましょうか.
奈々美さん
$mutex.lock でタイムアウトをかけられるでしょうか.もし可能でしたら,10
秒くらいしてもlock できなければabortさせていただけると,自動で再起動で
きるので,(全体が凍るよりも)メンテナンスが楽なのでお願いしたいです.
0210まともに動いてない ◆R/rLuLKeEI
NGNG公開間近、いや対戦間近ですね。
プロトコル上は王と玉は
+OU
-OU
で区別は可能。
それをどちらで表現するかはあっしは知らぬ。
0211デフォルトの名無しさん
NGNG細かい表示はあと回しにして完成を急ぎます
ついでにもう一つ質問
観戦モードのときは先手が上側でいいんでしょうか?
われながら将棋そのものについてあまりにも無知すぎるような気がしてきた(汗
0212デフォルトの名無しさん
NGNG一般的に盤面を表示するときは「先手が下側(手前側)」ですね。
0213デフォルトの名無しさん
NGNGそんな方が興味を持ってくれてとても心強い。
しかし先後の上下は‥‥そーかー知らない人は知らないもんなのかぁ。
0214デフォルトの名無しさん
NGNGあまりにも基本すぎてあらためて解説してるとこも無いようで
ざっと検索した程度では出てこなかったです
もしかしたら将棋入門書になら載ってる?
たぶん私が知らなさ過ぎるだけだと思います(w
将棋のレベルは駒の動かし方を知っている段階をちょっと超えたくらいです(なはは
インテリジェントゲームプレイヤー全般に興味があるので
いつかは将棋も作りたいと思っています
オセロにはだいぶはまってましたけどあれって上下無いですし(w
0215デフォルトの名無しさん
NGNG盤にふる番号も逆でした
どっと疲れが・・・
0216デフォルトの名無しさん
NGNG0217まともに動いてない ◆R/rLuLKeEI
NGNG大丈夫。
わたしもかつて同じミスをやってもうたし。
0218デフォルトの名無しさん
NGNG奈々美さんが>>206の対策をされたものです.
また,再びport 5081を廃止しました.
0219デフォルトの名無しさん
NGNGみんな通る道?(w
0220デフォルトの名無しさん
NGNGtelnetでは頭に%%CHAT を入れないといけないのでむっちゃ大変ですね
アンノウンコマンドになってしまって同じメッセージを何度も打ち直してました
クライアント作成を急ぎマフ
0221まともに動いてない ◆R/rLuLKeEI
NGNG否。将棋については無知なのに行き当たりばったりにコードを書き始める人にだけ開かれる苦難の道。
彼らに栄光あれ。
ネグルシイヨルダナ。テンデネレヤシネェ。
0222matomoni ◆R/rLuLKeEI
NGNG頑張って下さい。
期待してます。
0223デフォルトの名無しさん
NGNGこのパッチをあててしまうと、将棋フォントをインストールしていない場合、後手の駒はキリル文字になってしまうので注意してください
Emacs の設定は以下のようにして使っています。
(setq shogi-koma-gote-prefix " ")
(require 'csashogi)
(set-face-font 'shogi-gote-face "-shogi2-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0")
(set-face-font 'shogi-sente-face "-shogi2-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0")
pos)))
0224223
NGNG--- shogi.el.orig2004-07-02 23:25:49.000000000 +0900
+++ shogi.el2004-07-05 13:41:43.000000000 +0900
@@ -357,6 +357,22 @@
"KOMA を表す文字を返す."
(shogi-symbol-to-string (shogi-koma-get-symbol koma)))
+
+(defun shogi-koma-to-string-with-muki (koma sente)
+ "KOMA を表す文字を返す."
+ (shogi-symbol-to-string-with-muki (shogi-koma-get-symbol koma) sente))
+
+(defun shogi-symbol-to-string-with-muki (symbol sente)
+ "SYMBOL を表す文字を返す."
+ (let ((koma-list (if sente
+ '(oh "王" gyoku "玉" ryuu "龍" hisha "飛" uma "馬" kaku "角"
+ kin "金" nari-gin "з" gin "銀" nari-kei "й" kei "桂"
+ nari-kyo "л" kyo "香" to-kin "と" fu "歩")
+ '(oh "А" gyoku "А" ryuu "В" hisha "Б" uma "Д" kaku "Г"
+ kin "Ё" nari-gin "Ч" gin "Ж" nari-kei "Щ" kei "И"
+ nari-kyo "Ы" kyo "К" to-kin "Н" fu "М"))))
+ (plist-get koma-list symbol)))
+
(defun shogi-symbol-to-string (symbol)
"SYMBOL を表す文字を返す."
(let ((koma-list '(oh "王" gyoku "玉" ryuu "龍" hisha "飛" uma "馬" kaku "角"
0225223
NGNG(insert (if (eq owner shogi-display-board-muki)
shogi-koma-sente-prefix
shogi-koma-gote-prefix))
- (insert (shogi-koma-to-string koma))
+ (insert (shogi-koma-to-string-with-muki
+ koma (eq owner shogi-display-board-muki)))
(shogi-put-face-at-pos pos (if owner 'shogi-sente-face 'shogi-gote-face))
(shogi-cursor-jump-to-pos pos)))
0226うさぴょんの育ての親
NGNG一応CHATも出来ます。(一応、というところがミソ…ごめんorz)
対戦クライアントとしての信頼性はまだいまいちです。
特にSingleCPUだと重くて使い物にならない懸念が…。
とりあえず、うさぴょんに指させながらCHATするのは、HT対応CPUか、
マルチCPU環境の人以外にはお勧めできません。あまりにも動作重すぎ。
自分で指しながらCHATならCPU負荷に余裕があるので、マターリとCHATを
楽しめると思います。
0227デフォルトの名無しさん
NGNG* kifuview.el: 盤面を手で変更した場合も履歴をとりトレースできるように
修正
* 駒を表わす文字を先後で別に定義できるように
* 名前と駒のフェイスを別に
* フェイスを先手/後手で定義していたのを手前側/相手側に変更
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.9.tgz
>>223
ありがとうございます。手元のやつはそのあたりの修正をやりかけだったので
若干違う実装になってます。また諸般の事情でフェイス名とか変数名を変更し
てますのでご注意ください。またなにかあったらよろしくお願いします。
# いちお shogi-load-hook も設けておきました
0228まともに動いてない ◆R/rLuLKeEI
NGNGしかし、まだサーバーにAGREE送るところ以降書いてないから対局が始まらない。
0229まともに動いてない ◆R/rLuLKeEI
NGNG出来そうなんだけど…後回し。
もっとよく練らないとアプリケーション版もアプレット版も爆死しかねない。
手動クライアント@Emacsさんやうさぴょんの育ての親さん達はすごいなぁ。
ほいほいっと作っちまう(ように見える)。
0230デフォルトの名無しさん
NGNGダイアログで対戦相手gpsgote・・・と出てOKしてもキャンセルしてもそこでかたまっちゃって挫折
早く自前のやつ作れと神さまがおっしゃっているのだろうか・・・・
0231うさぴょんの育ての親
NGNG何も選ばずにOKすると固まりますね(−−;こりゃばぐだわ。
対戦相手を誰か選んでからOKしてくださいまし。
バグはバグで直しますが。
0232デフォルトの名無しさん
NGNGなる、すでに選ばれててOKか?と問われていると思ってました(w
0233デフォルトの名無しさん
NGNG一回目負けた...orz
0234デフォルトの名無しさん
NGNG付属ドキュメントのサンプルをまねしてみたけど名前空間がうまく参照できないみたいで頓挫中
vb.net の達人はおられませんか、サンプルコードをめぐんでくれるとたいへんうれしいのですが(おい
0235うさぴょんの育ての親
NGNGVBじゃないとダメ?VC++ならうさぴょんのコードを貼り付けてもいいんですが。
0236デフォルトの名無しさん
NGNGもしそうならむっちゃ参考になりそうです
よかったら見せてください
0237まともに動いてない ◆R/rLuLKeEI
NGNGVB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1088812165/
プログラム板の人ならもう行ってるわな。すんません。
0238デフォルトの名無しさん
NGNGいまんとこあのへんで質問するとエスパーを呼べって言われかねない程度にしか把握できてないので・・・
0239うさぴょんの育ての親
NGNGうぅ、クラスライブラリは使ってません。ですが、WindowsのAPIと算術演算で
やっているので、移植可能じゃないかなーと…って、.NET知らん人間のたわ言
ですか?
0240デフォルトの名無しさん
NGNGうまく呼び出せさえすれば一発変換なもんで一行ですんじゃうんですよ
解決しなければ自力変換するしかないんですけど、楽したいなあと(w
0241まともに動いてない ◆R/rLuLKeEI
NGNGそうでしたか。すまぬ
胃がキリキリ痛み、猛烈に怠くて確かめもせず、投稿後すぐにダウンしてました。
まだ怠いんでダウンし直します。
Java版クライアントのデバッグは土日だな。
0242デフォルトの名無しさん
NGNGあらあら、大丈夫ですか?、御大事に
とりあえず動き出しました、原因はなんというか・・・・
引数が間違ってるのにそのクラスはプライベートなのでアクセスできません云々というエラーを返してくる統合環境(ばぐ?)のせいでした
引数を直したらあっさり動いてしまい拍子抜け・・・
そういえば素のVBの時も関係ない行でエラーが出たことになっちゃう現象で、大はまりしたことが有ったっけ・・・
0243うさぴょんの育ての親
NGNGバグと言うかなんというか…。たまたま、その引数で呼び出されるプライベートな
関数があったんでしょうね。でも、こりゃぁはまるわ。
0244うさぴょんの育ての親
NGNGrubyのバージョンも1.8.1_2にしましたし、今度はまともに動いているみたいです。
でも今のところ常駐プログラムがいないのでさびしいことこの上ないです(^^;
0245うさぴょんの育ての親
NGNG常駐しているわけではありませんが。
1時間に一度くらい様子を見て、手動で常駐をエミュレートします(笑)。
0246まともに動いてない ◆R/rLuLKeEI
NGNG主催者のPCが超高速で主催者が絶対有利。
で年に一度のCSA杯が公平で由緒ある世界一決定戦。
まだまだ先の話ですね。
今日も胃が痛い。
0247デフォルトの名無しさん
NGNG別に参加者も超高速な PC を使えば主催者が有利には
ならないかと思いますが...
0248まともに動いてない ◆R/rLuLKeEI
NGNGああ、そうか。
いや何、私が金ないから大容量メモリで超高速なPCを買えないなぁ...っていう…それだけ。
地球シミュレータ買いたいなぁ。
0249うさぴょんの育ての親
NGNGGPS対うさぴょんはお互いに最速マシンで戦っているのではないかと。
でも、回線遅いのはハンデになるかもなぁ。特に持将棋模様の時なんか、
切れ負けするかどうかにモロに影響しそう。
usapyon.dip.jpはこの意味でも公平なサーバで、ややこしい設定しているので
自宅から繋ぐ時も、すぐ目の前にあるのに、インターネットを越さないと繋がらない(w。
0250デフォルトの名無しさん
NGNG0251うさぴょんの育ての親
NGNG…いくら?
0252うさぴょんの育ての親
NGNGまともに動くようになれば、誰かが最速マシンで動かしてくれるかも。
なので、まずはまともに動かさないと。
それから、地球シミュレータは将棋で使うには遅いと思うので、むしろ
「理研スーパー・コンバインド・クラスタ」辺りの方がよろしいかと。
0253うさぴょんの育ての親
NGNG0254まともに動いてない ◆R/rLuLKeEI
NGNGJava版対戦可能チャットクライアントは近々。
思考部がまともに動くのは半年後。
地球シミュレータも「理研スーパー・コンバインド・クラスタ」辺りの方も買えねえ。宝くじで一発…
0255うさぴょんの育ての親
NGNG理研の方も10億円は軽くするので、宝くじで一発ぐらいでは…。
xxジャンボ宝くじを前後賞合わせて当てるのを2発くらいか?
0256まともに動いてない ◆R/rLuLKeEI
NGNG>xxジャンボ宝くじを前後賞合わせて当てるのを2発くらいか?
もうダメだぁ〜って金貯めて速い中古PC買うわ。
それまではまともに動くように地道に改善する。
0257デフォルトの名無しさん
NGNGホームアンドアウェイで1局づつとか
0258デフォルトの名無しさん
NGNG回線の遅延が気に入らない人はどうぞ会場までいらしてくださいと言って逃げときましょう
0259うさぴょんの育ての親
NGNGXeon2.8GHzのDualマシン+OSにWindows2000Serverなら25万円くらいで売るので
いつでも相談してください(笑)並列を生かしたPG書けば、十分にまだ早いです。
#僕はもうOpteronのDualに乗り換えてしまったので、半不用品ですが。
0260うさぴょんの育ての親
NGNGそうですね(w。
かと言って本当に自宅に押しかけられても困るわけっすが(w。
まぁ、実際のところ、持将棋模様にでもならないと関係ないですよ、遅延なんて。
…はっ!ホームの利を生かして常に入玉を目指すプログラムを書けばいいのか?
0261デフォルトの名無しさん
NGNGおもてにビーチパラソルを立ててコンセントとLANケーブルを用意してあげましょう(w
0262まともに動いてない ◆R/rLuLKeEI
NGNG参加費は消費電力を割勘で。
うさぴょんの育ての親さん家のブレーカーが落ちたら解散(笑
0263うさぴょんの育ての親
NGNG実家は工場やってるから巨大なクラスタマシンでも持ち込む人がいないと落ちないっす(笑)
どうせネットで調べるとモロバレなのでリンクも示すと、
http://www.ntv.co.jp/burari/001230/info06.html
誰かうちの親父に仕事ちょうだい。
0264まともに動いてない ◆R/rLuLKeEI
NGNGREJECT
を送ると
REJECT:<GameID> by <rejector>
が返ってくると思っていたけど違うみたいやね。revision 1.15。
0266まともに動いてない ◆R/rLuLKeEI
NGNG返答待ちでクライアントが固まります。
1.17でも同じ現象でして実はクライアント側のバグでした。
一応解決済(ちょっとクライアント側の問題が残るけど目をつぶる)。
で、気付いたこと:
"game_waiting"ステータスの二つのクライアントの一方がREJECTしたら、双方に
REJECT:<GameID> by <rejector>
を返して"connected"ステータスになる。ここで他方がまだ"game_waiting"ステータスと思って遅れてAGREEまたはREJECTすると
REJECT:<GameID> by <rejector>
##[ERROR] "connected"ステータスでAGREEがどうたらこうたら。
と出るがこの##[ERROR]行は必要?
あるいはAGREEまたはREJECTする前にREJECTが送られていない事を確認するのが正しいクライアントの作法?
0267うさぴょんの育ての親
NGNGAGREE or REJECTする前にREJECTされてないことを確かめても、タイミングが
悪ければやはり##[ERROR]になってしまうのでは。
##[ERROR]は必要ないかも知れないですが、AGREEした「後」に、相手から
REJECTされていないかどうかチェックは必要でしょうね。REJECTした後は
特にチェックは不要でしょうが。
0268まともに動いてない ◆R/rLuLKeEI
NGNGREJECTした後のチェックは害がなさそうなのでどちらの場合もREJECTされちゃったメッセージボックスを出すようにして昨日は寝ました。
サーバーがコネクトステータスにするタイミングを指し手毎にAGREE/REJECTが送られてきた後まで待ってくれると##[ERROR]が回避出来そう。
一応現物合わせで対処しますけど。
多くのクライアントの実装を真似て無条件AGREEにすれば良かった。
0269デフォルトの名無しさん
NGNGttp://gm.a-ark.net/~shogi/clip/img/31.zip
0270デフォルトの名無しさん
NGNGttp://gm.a-ark.net/~shogi/clip/img/34.zip
書き忘れてましたが.NET FrameworkがインストールされてなおPCの場合は動きません
windowsアップデートか下記のページより入手してください
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=ja
0271まともに動いてない ◆R/rLuLKeEI
NGNG> まともにさん報告の現象はまだこちらでは再現してません
> こまった・・・・
telnetでもつながらない環境でした。
wwwは見えるんだけど微妙にアクセス制限があるようだ。
気になさらず、続けていってください。
未だに胃が痛い、毎日下してる
0272まともに動いてない ◆R/rLuLKeEI
NGNG0273デフォルトの名無しさん
NGNG了解、接続不能なときですね、確かに手抜きしてます(汗
それよりお体おだいじに、病院いってね
0274うさぴょんの育ての親
NGNG今日たまたま千日手になったんですが、サーバから何も来ないようなので。
0276うさぴょんの育ての親
NGNGそうでしたか。
やっぱりフル機能のサーバを作ろうとすると、将棋のプログラム半分書くくらいの
労力が必要そうですね…(泣)。
0277まともに動いてない ◆R/rLuLKeEI
NGNG局面のハッシュ値で遡って同じ局面らしかったら改めて完全一致を調べるというのでOK?
0278うさぴょんの育ての親
NGNGハッシュ値が64ビットくらいだったら、完全一致調べなくてもまぁOKでしょう。
完全一致まで調べられるなら調べた方が好ましいけど。
0279デフォルトの名無しさん
NGNG* "*棋士控室*" バッファからでも発言,ログイン,ログアウトできるように
(Suggested by nanami さん)
* kifuview.el: 手数が盤面とマッチしていなかったバグを修正
(Thanks to kaneko さん)
* MONITOR 暫定対応 (`M' キーにバインド)
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.10.tgz
0281名無しさん@そうだ選挙に行こう
NGNG* kifuview.el: CSA 棋譜の解析がエンバグしていたのを修正
* フェイス色名のタイポを修正
* shogi-debug を non-nil にすると合法手以外でも指せるように
といったところです。
http://tokyo.cool.ne.jp/progn/shogi-0.11.tgz
0282奈々美
NGNGコメントを投稿して下さい。
1. %%GAMEコマンドのパラメータgame_nameのフォーマット変更
現在は、
game_name = base_name:total_time:byoyomi
(例えば、hogehoge:1500:0)
のように、":"で区切られているが、これを(おそらく)"-"(マイナス)に変更
game_nameはgame_idの一部で、結局、CSA形式棋譜のファイルネームに使用されているが、
":"を使用したファイルネームがwindowsで使えないため。
2. %%SHOW, %%MONITORONでの表示フォーマット変更
現在は、以下のような盤面表示のみ
##[SHOW] P1-KY-KE-GI-KI-OU-KI-GI-KE *
##[SHOW] P2 * -HI * * * * * -KA *
省略
##[SHOW] P9+KY+KE+GI+KI+OU+KI+GI+KE *
##[SHOW] P+00KY
##[SHOW] P-00FU
##[SHOW] +OK
使用変更後は、盤面表示を含む、
http://www.computer-shogi.org/protocol/tcp_ip_server.htmlの3.2.の
BEGIN Game_SummaryからEND Game_Summaryのような表示になる。
各人の残り時間、最新の手など、一部パラメータが独自拡張される。
0283うさぴょんの育ての親
NGNG2. 独自拡張の部分をどうするか示してくれることを希望。
ってまだ決まってない?
> BEGIN Game_SummaryからEND Game_Summaryのような表示になる。
ことは了解。特に問題ないでしょう。
0284まともに動いてない ◆R/rLuLKeEI
NGNG2.了解(まだ作ってないから問題ない)
0285奈々美
NGNG1.
+ は大丈夫だと思っています。
ダメですか?
2.
今のところは、以下のようなキーワードで、上から、
先手残り秒数、
後手残り秒数、
直前の手(一手も指されてない場合は空白)、
手数(一手も指されてない場合は0)
を考えています。
将棋の常識として適切なキーワードがあれば、教えて下さい。
##[MONITOR][hoge+a-0-0+234+123+20040712000602] Remaining_Time+:1400
##[MONITOR][hoge+a-0-0+234+123+20040712000602] Remaining_Time-:1300
##[MONITOR][hoge+a-0-0+234+123+20040712000602] Last_Move:-8384FU,T23
##[MONITOR][hoge+a-0-0+234+123+20040712000602] Current_Turn:2
BEGIN Game_Summary -- BEGIN Positionの間のどこかに、
上記拡張キーワードを足すつもりですが、具体的な場所は未定です。
0286まともに動いてない ◆R/rLuLKeEI
NGNG2.
先手残り秒数、後手残り秒数はTime内ヘ
直前の手(一手も指されてない場合は空白)、手数(一手も指されてない場合は0)はPosition内へ
キーワードの現われる順序は問わない。
私の解析部は追加や順序変更に対応可能になっているから。
0287まともに動いてない ◆R/rLuLKeEI
NGNGCurrent_Turnだと現在の手番みたいだけどええの?
チェス用語とかに代替案はないかなぁ…
0288奈々美
NGNG直前の手、手数は、盤面情報の仲間みたいなものですから、Position内に
置くのは正しいような気もします。でも、Position内は、
keyword:value
というフォーマット以外がくるのが原則みたいですので...
でもでも、
Jishogi_Declaration:1.1
もPosition内だったり...
Current_Turnでなく、Movesかな?
0289うさぴょんの育ての親
NGNG失礼、+は大丈夫です。ちょっと勘違い。
ダメだったら大体Microsoft Visual C++6.0なんてショートカット名作れませんね。
>>288
Current_Turnでなくて、Movesであることに一票。
それから、現在の局面そのものじゃなくて、最初のポジション(っていつも固定だけど)
と、そこから現在の局面に至る手順があった方がいいと思う。
つまり、
BEGIN_Game_Summary
いつもの文字列
+7776FU,T1
-3334FU,T1
+8786FU,T12
END_Game_Summary
みたいなイメージ。
さらに言うと、MONITORコマンドも、MONITORしているクライアントに、
MONITORしているゲームで手が指されたらその手を送信する方が、
クライアントとしては操作しやすいもの(たとえば、ユーザの要求の合わせて、
最初から見直したりとかね)が出来ると思うのだけどどうでしょう。
0290林
NGNG局面に至る手順、「3.2.3. 対局の局面情報」の所に書いてありますね。
それをそのまま使えば良いかと。
> 書式はCSAファイル形式に準拠した初期局面表記と指し手表記に一部変更を加えた形式からなる。
> 指し手表記がない場合、対局は初期局面から開始される。
> 指し手表記がある場合、初期局面と規定の持時間が与えられた状態から、
> 表記された指し手がすでに完了しているものとし、そこから再開される。
0291デフォルトの名無しさん
NGNG奈々美さんから伺った主な変更点をwebに書いてありますが,
特に「game_name のフォーマット変更 (区切り文字を":"から"-"に)」に
ご注意下さい.
よろしくお願いします.
0292うさぴょんの育ての親
NGNGgame_nameのフォーマット変更に伴い、うさぴょんはV1.2.3以降でないと、
ログイン後「対戦相手を待つ」ことが出来なくなっています。
V1.2.3は今作成中で、おそらく明日未明までにリリースできると思います。
0293奈々美
NGNGEND Positionの直前で
+7776FU,T1
-3334FU,T1
+8786FU,T12
を送るわけですね。
そうすれば、>>285の2.での拡張は不要になりますね。
正しい方法な気がしてきました。
0294うさぴょんの育ての親
NGNGV1.2.3リリースしました。
主な変更点は、
・>>291のプロトコル変更(game_idを':'区切りから'-'区切りへ変更)対応
・うさぴょん400秒モードで、対戦を待つ時は、10時間対戦を待つように。
・自分側の手番で、「誰」ボタンを押したときにハングするバグに対応
・「見」ボタン追加。%%SHOWコマンドを発行し、画面に局面を再現。
でし。
そのうち仕様確定したら、%%SHOW,%%MONITORともに対応しなおしでしょうね。
0295奈々美
NGNG- 過去の手と最新盤面の両方を送る(CSAファイル形式からの拡張が必要になりますが)
- 過去の手を送るコマンド、最新盤面を送るコマンドの両方をサポートする
というのもあり得ますね。
0296うさぴょんの育ての親
NGNGクライアントを作る立場からすると、過去の手を得るコマンドが欲しいのも確かなのですが、
あわてて改造しないで良い分だけ、両方サポートの方がありがたいです(^^;
0297うさぴょんの育ての親
NGNG>>294でリリースしたEXE、バージョンがちびっと古いやつでした
動作確認してて気が付きました m(..)m
V1.2.3ダウンロードしちゃった人はダウンロードしなおして下さい m(..)m
0298デフォルトの名無しさん
NGNG0299うさぴょんの育ての親
NGNG聞かないから最近全然治んない(ーー;
こないだは医者にばれて叱られてきますた。
0300デフォルトの名無しさん
NGNG私もかなりやばやばだったけど、
仕事やめてとにかく寝られるときに寝て寝て寝て寝て寝たおしたら
や〜っと体内時計の周期が戻ってきました
位相はまだズレっぱなしだけど・・・・・
おかげで今は超〜〜びんぼ〜
0301デフォルトの名無しさん
NGNG体が資本
健康第一
0302まともに動いてない ◆R/rLuLKeEI
NGNG0303うさぴょんの育ての親
NGNGあ〜さりげなくなくてもいいです(笑)。
さりげないと気が付かないかも知れません(^^;
0304うさぴょんの育ての親
NGNGマシンが熱いマシンなので、熱暴走して止まる可能性が高いですが。
usapyon-1500-0 +
で挑戦を待ってます。
0305デフォルトの名無しさん
NGNG0306rei
NGNGなぜに %TORYO #TORYO あるいは %RESIGN #RESIGN ではないのかと素朴な疑問
0307rei
NGNG%TORYOに対して
%TORYO
#RESIGN
と2行帰ってきてるみたいですね
頭が % だったから見逃してました
0308rei
NGNGttp://gm.a-ark.net/~shogi/clip/clip.cgi
わかりにくいところを簡単に説明しとくと
・ユーザー名とパスワードを入れてconnnectボタンを押してログイン成功したら
・最下部の一行ウインドに who と打ち込むと接続中の人&こんぷーたのリストが出ます
・game_waiting の文字が含まれるのが待ち受け中の人ですので
その行をいきなりダブルクリックすると将棋板が出てきて対局が始まります
・list と打ち込むと対局中のリストが出ますので目的の対局の行をいきなりダブルクリックすると
モニタ画面が立ち上がり観戦できます、これは複数同時に見られます
・popupにチェックを入れとくと変化のあった画面が上にでてきます
チャットしてるときは非常に邪魔ですがそのときはチェックをはずしてください
・先頭が%の文字列は加工せずに送信しますので全部手動で操作することもできます
.net Framework が必要です入手先はウインドウズアップデートかこちら
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=ja
Linux用 .net Framework も開発されているようです検証してませんので動くかどうかわかりませんが、
もし暇なかたがいらっしゃいましたら試してみてください
http://www.mono-project.com/downloads/
BSD用のもあるらしいと情報をいただきましたが見つけられませんでした m(__)m すんまそん
0309rei
NGNG小さいほうはそれを私が縮小したものです、もっと小さくしたかったけど字がつぶれてしまうので妥協しました
ちっこい駒のサンプルをUPしてた前スレ921氏に期待
ほかにも画像得意なかたいらっしゃいましたらアルファチャネル付きPNGで作って入れ替えると
将棋版は画像の大きさにあわせて表示されますのでよろしくです
0310デフォルトの名無しさん
NGNGぅおつかれちゃーん。
> ・先頭が%の文字列は加工せずに送信しますので全部手動で操作することもできます
おお、これは debug なんかに(・∀・)イイ!!っすね。
0311まともに動いてない ◆R/rLuLKeEI
NGNG「なんとか対局可能になった版の人間用クライアント」リリースおめでとうございます。
私はサービス残業続きなので、Linuxでの試用はどちら様かやって下さいな。
うぅっ、また胃が痛みだした…
0312前スレ921
NGNG>309
あの大きさでいいなら暇見てばらして透過PNGにして詰め合わせて上げておきます。
で、希望の大きさがあるなら言ってもらえば善処します。
#早速>309さんのをダウンロードしているんだけど妙に遅い…
0313デフォルトの名無しさん
NGNGありゃりゃあ、たいへんですね〜、おだいじに〜
パスの区切り文字が違うからそこでこけそうな気もするんですが
.net framework がそこまで面倒見てくれるんかな?んなわけないか?←よくわかってない
0314デフォルトの名無しさん
NGNGとりあえずちっこいのがほしかったので、あの大きさでバッチりです
画面が狭くてつらいのっす・・・
0315デフォルトの名無しさん
NGNG>おお、これは debug なんかに(・∀・)イイ!!っすね。
は〜い、ほとんど自分の為につけたような機能でし(笑
0316まともに動いてない ◆R/rLuLKeEI
NGNG対処方法も分かったっぽい。
修正を始めてるっぽい。
残業のしすぎて訳分からなくなってるっぽい。
頭が回ってないっぽい。
とても眠いっぽい。
ぽい。
0317rei
NGNGスピーカーつないでなかったから気が付いてなかったですスンマソン
希望があればbeep止めるだけの修正版先にだしますのでよろしく
とはいえ誰も何も言ってこないしなぁ
0318うさぴょんの育ての親
NGNGえ?そういう仕様じゃなかったの(笑)?
0319まともに動いてない ◆R/rLuLKeEI
NGNGモードが違っていても対戦できるのか。知らなかった。
ちょっと前のバージョンまで二つ起動してCSAモードのテストしていた。
拡張モード側のgame_nameはdefalt:1500:0にせにゃならんとかいうことはないの?
0320デフォルトの名無しさん
NGNGうはは、仕様ということにしてもいいけど
さすがにうっとうしくない?(笑
0321まともに動いてない ◆R/rLuLKeEI
NGNGreiさんのプログラム:「なんとか対局可能になった版の人間用クライアント」の本当の名前は何?
0322うさぴょんの育ての親
NGNGexeの名前はbulbulでしたね。ってことは、「ぶるぶる」?
うーん、「うさぴょん」に強力な名前のライバルが…
0323rei
NGNG私自身はネイティブな発音は一度も聞いたことがありませんのでよくわかりません(笑
0325旧921
NGNG0326奈々美
NGNGサーバに、千日手、王手千日手、打ち歩詰め、の判定を実装し、テスト中です。
皆様にお願い:
千日手、王手千日手、打ち歩詰め等、興味深い局面、そうなる直前の局面を、
CSA方式での盤面表現か棋譜で、提供して貰えませんでしょうか。
サーバのテストに使用したいと思います。
0327うさぴょんの育ての親
NGNG打ち歩詰めの局面はうさぴょんの実戦で出てきたことがあったと思うので、
打ち歩詰めは提供できそうです。
王手千日手も鈴木将棋の実戦であったと思うんだけど、棋譜残っている
かなぁ?
ノーマルな千日手は、こないだ実際にサーバで起きて、千日手判定が
帰ってきた記憶があります。サーバ上に棋譜が残っていると思われますので、
それのファイル名を探して見ます。
というところで、とりあえず、棋譜を漁るのでしばしお待ちを。
王手千日手は見つからない可能性大なので、誰か引き続き探して見て下さい。
0328うさぴょんの育ての親
NGNG申し訳ない。こないだ夏の暑さで死んだHDDに入っていたようで、
打ち歩詰めの局面が出てこない。ノーマルな千日手も、サーバのログに
残ってないようです。
何の役にも立てなくてすみません。
とりあえず、今のサーバで先手LAN対人間、先手人間対LANで、
すぐに千日手にしてみますので、千日手のデータだけはすぐ出来ます。
0329うさぴょんの育ての親
NGNGhttp://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/wdoor+sennitite1-1500-0+sennitite1+sennitite2+20040717225338.csa
0330うさぴょんの育ての親
NGNGhttp://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/wdoor+sennitite1-1500-0+sennitite1+sennitite2+20040717225813.csa
0331うさぴょんの育ての親
NGNG(後手が玉頭に打てば打ち歩詰め成立)
http://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/wdoor+utifudume1-1500-0+utifudume1+utifudume2+20040717230339.csa
0332うさぴょんの育ての親
NGNG331はかなり簡単だけど。
331の42手目、78歩打ちを78角打ちとしても、次に玉頭に歩を打つと
打ち歩詰めになります。角で歩を取ると、飛車に玉を取られちゃうので、
角が動けないところがポイントです。
0333うさぴょんの育ての親
NGNG0334rei
NGNG駒画像サンキューです
同梱したものをアップロードさせてもらいました
今回は
駒画像を複数選択できるようになりました、あとから追加するときはEXEと同じフォルダ内に
適当な名前をつけたフォルダを作りその中に駒画像一式を入れてください
自動的に駒選択のリストに反映されます
後手の時に将棋板の上下を反転できるようになりました反転したいときはswitchにチェックを入れてください
0337奈々美さんの代理
NGNG---
問題が見つかりましたので、%%GAMEコマンド関連の仕様変更/追加です。
コメントお願いします。
従来仕様:
%%GAME game_name +
%%GAME game_name -
で、対局相手募集 / 募集している人への挑戦。
+、-は先手、後手を示す、必須の項目。
問題:
募集者に、同時に二人が挑戦し、片方は対局を開始したが、
もう片方は開始せず、"相手募集"の状態に入った。
クライアントは、即座に対局が開始されるを期待しているので、
あまりよろしくない。
将来、期待していないuserと同じgame_nameで、対局開始になる可能性が高い。
0338奈々美さんの代理
NGNG---
解決案:
挑戦専用で、挑戦者がいない場合はエラーが即座に返って来る
%%CHALLENGE game_name +
%%CHALLENGE game_name -
を追加。
エラーメッセージは以下。##[ERROR]移行のフォーマットは、今後、変更されるかも。
%%CHALLENGE sample_game-1500-0 +
##[ERROR] can't find rival for sample_game-1500-0
微妙に仕様変更:
%%GAME, %%CHALLENGEの、+、-をオプションに格下げ。
先手、後手、どちらでもいい場合は、+、-を指定せずに
%%GAME game_name
%%CHALLENGE game_name
とする。二人とも指定がない場合は、サーバが乱数で決定する。
0339奈々美さんの代理
NGNG---
指定がない場合は、WHOでも表示が出ない。
##[WHO] x x1 game_waiting I_dont_care-1500-0
##[WHO] nanami x1 game_waiting I_like_sente-1500-0 +
##[WHO] +OK
CSA標準クライアントは、接続直後に
%%GAME default-1500-0
したのと同等の扱い。
とくに迷っているところ:
先手、後手どちらでも、という記号、例えば"="を決め、
%%GAME, %%CHALLENGEでの入力、%%WHOでの表示に使用すべきか?
0340うさぴょんの育ての親
NGNGどちらかというと、何か記号を決めてもらった方が実装(というかパーズ)
しやすいかなぁ。
0341うさぴょんの育ての親
NGNG0342まともに動いてない ◆R/rLuLKeEI
NGNG私の端末では>>341が最新レスなんだが、本家2chではどうなんだろう。
こっち(t2.i2ch.net)が数レス遅れている模様。
0343デフォルトの名無しさん
NGNGここの住人の一部は論文の締め切りで忙しいことだろう...
0344まともに動いてない ◆R/rLuLKeEI
NGNG水面下で進んでいるっぽい。
>>64のまとめページが更新されている。
本当に皆、チャットに流れているような気がする。
私は帰宅が遅くて参加でけへんねん。
0345デフォルトの名無しさん
NGNG0346rei
NGNG思考プログラムにかかりたいな〜と思いつつ、まず自分がそれなりに強くならねばと秘密兵器を仕入れてきました
親子で楽しむ将棋入門と将棋必勝定石の2冊(w、いいのか・・・
0347デフォルトの名無しさん
NGNG0348うさぴょんの育ての親
NGNGCマガまるまる一冊分くらいの量になるから無理だと思う…。
0349デフォルトの名無しさん
NGNG昔某誌でやってたみたいに連載という手も
0350うさぴょんの育ての親
NGNGMICROですか。懐かしい。でも、その雑誌潰れたんですよねぇ(笑)。
それはともかく、最近も連載の企画の持込とか某編集部にあったみたいですよ。
そんなの読者が少ないからボツって言われたらしいですけど。
それから、今は多分ちょうど書き手がいないですね。あと半年とか経つとまた分かりませんが。
0351rei
NGNG読者居ないのかなあ?
Bit誌で将棋じゃなくてオセロ方面のプログラムの記事が3連載くらいしたときも
うちの近所の本屋ではいつも次の発売日まで残ってるのにその月のだけは
店頭から姿を消してしまって買えなかったですけどね(笑
結局出版社のサイトから通販でバックナンバーを買う羽目になりました^^;
0352うさぴょんの育ての親
NGNGBitを立ち読みしている人なら、その特集が背中を押してくれるかも。
結局、雑誌の個性の違いとかも大きく影響するでしょうし。
「読者がいない」と言っても、「うちの読者層に受けない」の方がきっと
正確な表現なのでしょうね。
0353まともに動いてない ◆R/rLuLKeEI
NGNG次はその手をサーバーに送る処理を作らなければ…
電車に十万円相当の忘れ物して凹んでる。
0354デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG0357↑
NGNG0359デフォルトの名無しさん
NGNG0360まともに動いてない ◆R/rLuLKeEI
NGNGよって終了。
ところで私のチャットクライアントですが、手をサーバーに送る処理を練りに練り込んで、まだほんのちょっとしか書いてない。
土日はサービス出勤なので進みそうにないです。
0361デフォルトの名無しさん
NGNG十万円相当の物と交換差し上げます 権利をすべてくれ
1億ほど 儲ける予定です お願いします
0362デフォルトの名無しさん
NGNG最狂なら
0363デフォルトの名無しさん
NGNG知ってるよ最強の将棋ソフトを作るソフト
それはアセンブラーだなうん
え、そうじゃない
0364デフォルトの名無しさん
NGNGいやまて、再帰が簡単に書けるCだろ?
と、以下COBOL方向でネタにするか、LISPとかでマジな議論開始の悪寒。
0365デフォルトの名無しさん
NGNG最強の将棋ソフトを作れと 命令すると 翌朝出来上がってるような
1週間掛かってもいいですが!
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG費用が大変だな
0368デフォルトの名無しさん
NGNGもしプロ棋士と対局してプロ側持ち時間 9時間、コンピュータ側
持ち時間無制限なら、何時間(何日、何ヶ月)ぐらい思考したら
プロに勝てるかな? それとも時間を長くしても無理?
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGそんなんコンピュータが勝つに決まってるジャン。
「待ち時間無制限」を有効利用して、人間が死ぬまで待てばいい。
というのはチト極論だけど、体力&集中力に限界がある人間が圧倒的に不利。
0371368
NGNG持ち時間ハンデをどのくらいにすれば適当か?って話。
人間の一生分(100年)ぐらいの持ち時間にしないと対等な勝負はできないって事?
0372デフォルトの名無しさん
NGNGどれだけ時間を伸ばしても無駄。
0373デフォルトの名無しさん
NGNGこんぷーた君は一応考えてるわけじゃなく手をひたすら探索しているだけだからして
時間さえ与えられれば(以下略
0374デフォルトの名無しさん
NGNG無限の時間を与えて得られた最前手が最前手でもなんでもないから無駄。
0375デフォルトの名無しさん
NGNG駄目押しするが、読めば解決するような局面は将棋のごく一部。
読めば解決するような局面に行くためには発想や構想が必要だが
コンピュータにはそれやその代替がないので自分の力でそこまで行けない。
全くの暗闇を適当に進んで、図らずも視界が突然開ける。
それが現在のコンピュータの状態。
目倉序盤に目倉終盤、力業で突然の明かり、本人すら予想せず。
はっきりいって超弩級の馬鹿だ。
方針も目安も予想もそれに類するものはなにひとつ持っていない。
0376デフォルトの名無しさん
NGNGまぁ今のまま力押ししても無駄だろうけど。
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGおまえ馬鹿だろorz
0379デフォルトの名無しさん
NGNGいやあ、きみほどではないよ
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG哲学がない。
将棋をなめている。
頭が悪い。
もうね、死ね。マジで。
おまえらには期待できん。
0382デフォルトの名無しさん
NGNGもまいもしらね〜だろ
0383デフォルトの名無しさん
NGNG手間暇かけて殺しに行ってやるから住所と名前晒せ。
苦しませんから安心しろ。
0384デフォルトの名無しさん
NGNG以上、>>379 の証明終わり
0385デフォルトの名無しさん
NGNG当方、プログラマさんたちの邪魔にならないように普段ROMってるんですが。
専門的でない議論・煽りに関しては下記の専門スレがありますのでそちらにどぞ。
コンピューター将棋番外編3・進歩に懐疑的な人たち
http://game6.2ch.net/test/read.cgi/bgame/1085592538/l50
0386デフォルトの名無しさん
NGNGその紹介は、ちょっと違うんだが(w
ま、いいか。
0387まともに動いてない ◆R/rLuLKeEI
NGNG>>375
それらは全て事実か?
0388将棋NN ◆C3mb2PReIs
NGNG◆R/rLuLKeEIさん、まあまあ。
ここは将棋ソフトを作成する人達のための実務スレでしょ?
それに徹しましょうよ、特に作成する側の人は。
その方がカッコイイ。議論は別スレで。
0389奈々美
NGNG近況報告:サーバ revision 1.29の状況
>>337-339については、>>341を取り入れ、引数や%%WHOの表示で"*"を使用することにした
>>329-333を実装したので、CSAが定義した仕様は全てカバーしたつもり
>>319, 324については、もっといい案がありそうだけど、
最低線は行っていると思うので、そのまま。
>>289については、そのようなアプローチに変更したいと思っているが、
手を付けていないので、>>285のような状態のまま。
0390rei
NGNG今の仕様だとゲームネームが一律なんで2機目を接続したとたんに対局が始まって
非拡張モードで常駐させられるプログラムは1機のみということになっちゃいますよね
もし非拡張モードで常駐しようとするプログラムが2つ現れたら延々その2つが
対局し続けることになってしまうと思うのですが、大丈夫でしょうか?
0391デフォルトの名無しさん
NGNGCSA モードは規定ではそーゆーものだから大丈夫かと。
0392デフォルトの名無しさん
NGNGとうとうフル仕様まできちゃいましたか(驚) おつかれさまです。
さーて早速テスト… って wdoor は停電中か orz
0395奈々美
NGNG>>390でのご指摘のような問題点はあるのですが、
>>391, >>393のように、CSAプロトコルの都合上、いかんともしがたいです。
CSAプロトコルで、何かキーワードが送れれば、それでマッチング出来るのですが。
拡張コマンドという概念導入前は、LOGINでのPASSWORDをその用途に使っていました。
復活させます?
>>392
%KACHIの妥当性チェックも入れました。
バグ、仕様漏れがありましたら、教えてください。
あ、任意の局面から始める機能はないです。
0396うさぴょんの育ての親
NGNGCSAプロトコルで繋いだユーザが任意の相手に挑戦できるという意味では、
LOGINでのPASSWORDをゲームIDの一部に使うというのはうまい手かも知れない
と思った。
復活させてもいいのでは。
0397rei
NGNG案です、拡張モードの時は LOGIN name pass x1 でログインだから
非拡張モードのときは パスワードに続けてゲームネームを入れてもらえばいいんじゃないかな?
パスワードにスペースが入ったらだめなら、pass:GameName みたいな感じで
非対応クライアントにとっては単に長いパスワードにすぎないのでそのままいけるかと思うんだけど
パスワードはパスワードとして残しておかないと将来認証が必要になったとき面倒そうですし
0398rei
NGNG先にリサーチしたほうがいいかも(w
0399うさぴょんの育ての親
NGNGYSSと彩の掲示板で書いてたはず。
需要は、とりあえず、一人分はありますね。
0400デフォルトの名無しさん
NGNGうーんうーん、CSA の規約ってその妥当性はおいとくとしてもやっぱり規約
(絶対)ですよね。CSA 互換モードを謳うなら CAS の範疇では余計な解釈なり
拡張なりは挟まずに淡々と実装しておくほうがいい気がするに一票入れときま
す。
まぁそんなに意固地になることもないんでしょうけど。
- CSA モードの明らかにおかしい点があれば規約を変えていく
- その範疇外だと思われるものは拡張モードでカバーしていく
ってな方向が効率がいいのではないかって気がしている酔い酔いの深夜の勢い
カキコでした。
0401デフォルトの名無しさん
NGNG純CSAモードしかもってないクライアントが拡張モードのクライアントと
自在に対局するにはどうすればいいかって話ですよ
0402デフォルトの名無しさん
NGNG予定より遅くなりましてすみません.
0403うさぴょんの育ての親
NGNG…例によって中途覚醒してます。
しまった、うさぴょんでRevision1.29対応してないままバージョンを上げられてしまった(笑)
対応しなくちゃとか思うとまた寝るのが遅くなるじゃないかぁ(笑)
0404まともに動いてない ◆R/rLuLKeEI
NGNGJavaクライアント、全然進まん。
急がなくちゃと思って寝ないでやると胃が痛むじゃないかぁ(実話(笑えない))。さっさと寝ます。
0405rei
NGNGところで Remaining_Time の更新タイミングは今のままで仕様としちゃいますか?
それとも変更されます?>ななみちゃま
0406まともに動いてない ◆R/rLuLKeEI
NGNG0407デフォルトの名無しさん
NGNGhttp://game6.2ch.net/test/read.cgi/bgame/1073993361/
0408デフォルトの名無しさん
NGNGあんな広いと人間はもはやプレイ不可能だな。
じっくり考えずに適当に打つしか。
0409ロイエンタール
NGNG駒画像つかわせてもらっていいですかー?
0410デフォルトの名無しさん
NGNGすごいよね。史上初対局可能な大局将棋ソフト。
今どんどんアップデートされてます。
コンピューター同士の対局も可能。(数分で決着がつくw)
詳しくはここで
大局将棋を指しましょう2《第1局第2譜》
http://game6.2ch.net/test/read.cgi/bgame/1073993361/
0411林
NGNG0412rei
NGNG0413将棋NN ◆C3mb2PReIs
NGNGそうっすね。
クラブ24のアカウントを取れるメールアドレスに対する制限が何時の間にか、
かなり厳しくなってるみたいです。
ttp://www.shogidojo.com/dojo/members.htm
「アドレス変更が容易なアドレス」はダメって言ってもフリーでないメールアドレスは
それしか持ってない人は困りますよね。
0414奈々美
NGNG現在の仮仕様は>>285なのですが、Remaining_Timeの更新タイミングが
1手遅れるのはバグです。手元では直してあります。
ただ、>>289の仕様への変更をどうしようか、というのがありまして、
マイナーバグフィックスでリリースするのもアレだなぁ、という状態です。
0415奈々美
NGNGそのポリシーには賛成です。
ただ、どこからがCSA範疇外かという判断が難しいです。
>>397の、:で区切る案は、どっちつかずという気がするので、
passwordをgameIDに流用する場合は、認証は無視して考えます。
ただ、純粋CSAクライアントが接続してきたら、自動的に対局を挑む
拡張モードのクライアントを用意するとかの手もあるので、
>>396の採用は、どうしようかなぁ、というところです。
ご意見お待ちしています > all
0417rei
NGNG一手おくれバグの件了解しました、
とりあえず時間の表示が行き戻りするだけで他に弊害はないようですので
とくに対策はせずにbulbul最新版リリースしちゃいますね
http://gm.a-ark.net/~shogi/clip/clip.cgi
0418rei
NGNG>ただ、純粋CSAクライアントが接続してきたら、自動的に対局を挑む
>拡張モードのクライアントを用意するとかの手もあるので、
それだとそのクライアントとしか対局できないのでパスワード流用の方向に一票です
オーナーが人間用の拡張モードクライアントで接続して、対局したい相手のゲームIDを確認し
それをパスワードにして純CSAのプログラムを接続するという方法でいけば拡張モードクライアントと
同じような行動がとれてめでたしめでたしとなるような気がします。(穴があったら指摘よろしくです)
0419デフォルトの名無しさん
NGNG"*" を使って先手後手どちらも指せる状態で待たせています.
0420うさぴょんの育ての親
NGNG今晩か、明日の晩にでもwdoorに実験に行くのでよろしくー。
0421まともに動いてない ◆R/rLuLKeEI
NGNG最初、????だったがクラス階層を上がったり下がったりしていたら思い出した。
サーバーからの指し手を内部表現に換えた後の処理を追加して終わり。
明日、サービス出勤が早く片付けば続きが出来るのだが…期待薄
0422うさぴょんの育ての親
NGNG>サーバーからの指し手を内部表現に換えた後の処理を追加して終わり。
おぉ、なんだかもう少しでゴールが見えてきそうじゃないですか。
あ、でも人間の指し手の合法性のチェックとかが残っているのかな?(あれは面倒だ)
とにかく、「まともに」さんのサービス残業/出勤地獄が早く終わりますように。
0423まともに動いてない ◆R/rLuLKeEI
NGNG応援ありがとう。
もう少しでなんですが盤面がショボイ。拘るときりがないんで当面は手を付けないつもり。
>あ、でも人間の指し手の合法性のチェックとかが残っているのかな?(あれは面倒だ)
指し手の合法性のチェックは合法手リストにあるかないかでやっていて、合法手リスト生成がまともに動いてない;
・千日手
・打歩詰め
・持将棋
・最上段の香の不成り
がまだ。
これらは「まともに動いてないプログラム」とクラスを共有したため不具合も共有してしまっている。
0424うさぴょんの育ての親
NGNG千日手が禁手なのは連続王手の場合だけだし、持将棋、打ち歩詰めあたりは頻度が低いので、
最上段の香の不成り以外は、直さなくてもサーバの判定に委ねてしまってもいいような
気もする。例を挙げれば、将棋倶楽部24のクライアントもその程度だし。
0425デフォルトの名無しさん
NGNG0426まともに動いてない ◆R/rLuLKeEI
NGNG700台ノートPCによる将棋プログラム分散協調計算実験
ttp://www.i.u-tokyo.ac.jp/ss/shougi/
0427まともに動いてない ◆R/rLuLKeEI
NGNG0428奈々美
NGNGFYI:
うさぴょんの育ての親さんに>>329-331を作ってもらい
(このURLでは、もうアクセス出来ないと思いますが)
http://gm.a-ark.net/~shogi/clip/img/44.zip
のtest-shogi-serverに取り込んでいます。
44.zipは、.zipといいつつ、実はtar + gzipです。
ちなみに、44.zipのshogi-serverは、revision 1.30で、
>>396, >>418の通り、passwordをgame-nameとするようになっています。
例えば、wdoorではgapがgps-1500-0というgame-nameで待っているので
純粋CSAモードのクライアントは、passwordをgps-1500-0に設定して接続すれば、
対戦できます。
>>417のバグは直したつもりです。
0429うさぴょんの育ての親
NGNG動作の件ですが、今のところ未定義(将来の拡張用)ということで、CSAから回答をもらいました。
というわけで、Rematch_On_Draw:Yesの話も忘れましょう(^^;
他にも当面解釈しないで良いヘッダはいくつかあるので、CSAでガイドラインを制定する
そうです。
0430デフォルトの名無しさん
NGNGフリーの絵ってありますか?
Javaで作るので、できたら公開しますね。
0431デフォルトの名無しさん
NGNGとりあえず 素材 将棋の駒 でぐぐってみた。
ttp://www.geocities.co.jp/Milano-Cat/8164/
良いかどうかは分からないが、結構あるみたいだぞ。
0432デフォルトの名無しさん
NGNGログ読もうや。
0433デフォルトの名無しさん
NGNG2局以上指していて,test/debug/yowai などでない方/プログラムが対象で
毎朝更新される予定です.
沢山の対局をお待ちしております.
0434デフォルトの名無しさん
NGNGうあ〜、弱いのばればれではずかし〜、今度からyowaiつけて集計されないようにしようっと(w
bulbul(windows用人間クライアント)最新版アップしました
(.net framework が必要、入手はwindows update から)
王手放置で惨めに負けることがおおかったので急遽チェックルーチン追加しました
(放置しなかったらかてるとでも?w)
ttp://gm.a-ark.net/~shogi/clip/clip.cgi
0438うさぴょんの育ての親
NGNG*が導入された今、先手/後手の勝ちを集計するんじゃ意味がないような…。
そのプログラムの先手勝ち星/先手負け星/後手勝ち星/後手負け星/DRAW/その他
くらいにしないといけないような気がします。
(…大変そうかな?)
0439433
NGNG折りをみて改良します.
0440うさぴょんの育ての親
NGNGうさぴょんと同じことをやったので、うさぴょんの仲間と認めます(笑)
0441奈々美
NGNGそのような上位レイヤの仕様は、下位のshogi-serverに入れないのが
正解だと思います。直接の機能追加より、必要であれば
上位とのインターフェイスの追加でしょう。
対局の結果がCSA棋譜形式で残るわけですが、これに任意のコメントを
入れられるようにするコマンドとか。
0442デフォルトの名無しさん
NGNGうひゃひゃひゃひゃ、なかまなかま〜(w
そして香車の王手放置がバグっていたのが発覚
またあげときました、王手放置なんかしないもんねという人は
落とさなくても大丈夫です(自己嫌悪)
0443まともに動いてない ◆R/rLuLKeEI
NGNG0444まともに動いてない ◆R/rLuLKeEI
NGNG先手の最初の一手をサーバーに送って両手番のアプリケーションに
+
+7776FU
が返ってくるのを確認した。
一行目の+は読み捨てていいんでしたっけ?
二行目の後、何ミリ秒以内に
#ILL…
などが来なかったら合法手とかいうのはないよな…
相手の手で盤面を更新して考えている最中に遅れて
#WIN
などが来たら…プレイヤスレッドを止めよか…まあいいや後回しにしよっと。
0445デフォルトの名無しさん
NGNG0446うさぴょんの育ての親
NGNG0447rei
NGNG0448まともに動いてない ◆R/rLuLKeEI
NGNGサービス残業のしすぎでありもしない+が見えたのかも…
詳しく書くと、両者AGREEしたとき
先手
START: ...
+
後手
START: ...
となる。先手が手(+7776FU)を送ると例えば
先手
+7776FU,T5
後手
+
+7776FU,T5
が返ってくる。手を送る前の先手の+と手を送った後の後手の+のことなのだが…クライアントの未知のバグかもしれない。
0449うさぴょんの育ての親
NGNGを読んでみてもらうと分かるけど、その+はどこにもサーバから帰ってくる
という記述がない。
根性入れてtelnetでwdoorに繋いで見たけど、やっぱり返って来ないみたいだ。
こんな感じ
前の方は省略:先手側
P+
P-
+
END Position
END Game_Summary
AGREE
START:wdoor+default-1500-0+usa2+usa1+20040809112235
+7776FU
+7776FU,T10
前の方は省略:
P+
P-
+
END Position
END Game_Summary
AGREE
START:wdoor+default-1500-0+usa2+usa1+20040809112235
+7776FU,T10
なお、AGREEと+7776FUは、便宜上かいているけどサーバからのレスポンスではなくて、
クライアントから送った文字列です。
0450まともに動いてない ◆R/rLuLKeEI
NGNG毎度毎度ありがとうございます。
プロトコルには書いてないから変だなーって思ってたんだけど、そうなるとクライアントプログラムのバグなのは間違い無いわけだ。
0451まともに動いてない ◆R/rLuLKeEI
NGNG>ゲームサマリーの中に一発あるやつのことじゃない?
それだ!!
ゲームサマリーの構文解析を手抜きしたツケがあらわれたのだ。
うさぴょんの育ての親さん、reiさんありがとう!突破口が見つかりました!
今日帰れたら試してみます。
0452まともに動いてない ◆R/rLuLKeEI
NGNG私は将棋についてはさっぱりなので、デーモン将棋の指し手をまるまる写しただけですが。
結果:「先手の持ち駒を打つことが出来ない」という情けないバグを見つけてしまいました。
実装を後回しにしてほったらかしにしたまま忘れていたらしい。
0453うさぴょんの育ての親
NGNG完成したらJavaApplet版なんてのも期待しちゃっていいですか(笑)?
あぁ、でも、AppletだとJava1.1だからGUI周りとか面倒そう…。
0454まともに動いてない ◆R/rLuLKeEI
NGNGまだまだ、どんな脱力バグが潜んでいるのやら。
JavaApplet版は期待しちゃっていいです(泣)。
SwingのJAppletクラスで大部分流用と考えてるけど1.1まで戻らんとまずいでしょうか。
無関係ながら雑誌Tarzan 425号の64ページに羽生さんの記事がありますね。コンピュータのコの字もでませんけど。
0455うさぴょんの育ての親
NGNGうーん、IEのデフォルトのJavaRuntimeは1.1のままですよねぇ。
JRE入れろと言ってしまえばそれでOKという話はありますが。
0456wdoor事務所
NGNG対局お待ちしております.
0458wdoor事務所
NGNGほとんど宣伝していないので日本でも知っている人は少ないかもしれません.
自然に広がってゆくと良いのですが.
クライアント着実に完成に近付いているようですね.
0459まともに動いてない ◆R/rLuLKeEI
NGNG>クライアント着実に完成に近付いているようですね.
まあ、ぼちほち亀のようにのそのそとやってます。今宵はまだ会社…なのでおあずけ。
0460うさぴょんの育ての親
NGNGYSSと彩のページにも、私が引き継いだコンピュータ将棋のページにも
掲載されているので、宣伝していなくても十分存在は知られているのでは
ないでしょうか。
後はGPS、うさぴょん、K-Shogi以外に対応クライアントや常駐プログラムが
欲しいところです。そういえば、K-Shogiも*対応したみたいですよ、最新版で。
0461mickey
NGNGログを見つつ、やっとwdoorにクライアントK-Shogiでログインすることができました。
comと対戦できたことに感動です。(人間指しでやってしまいましたが・・・)
将棋の実力、コンピュータ将棋に関する知識ともに素人同然ですが、それでも
昔のフリーソフトの棋力から想像できないくらい強くなっていることに驚いてます。
私はコンピュータ将棋ソフトの一ユーザに過ぎないため、プログラム技術のレベル
アップに貢献できないとは思いますが、時々ココで遊んでみたいと思います。
0462うさぴょんの育ての親
NGNGいえいえ、遊んだ棋譜が残ることだけで(プログラム技術のレベルアップには
貢献できないかもしれませんが)、棋力の向上には寄与してますよ。
GPS将棋もずいぶんやられるパターンが分かってきたみたいなので、来年は
やられるパターンを克服してきて、うさぴょんよりも大分強くなっていそうです。
0463mickey
NGNG返事どうもです。昨日、うさぴょんをDLして初対局してみました。
私にはでは勝てそうにありませんね。0勝2敗です。
それから、棋力向上に寄与するかもしれないというお言葉に甘え、wdoorで
また遊ばせてもらいました。
サーバ経由でソフト同士(うさぴょんとK-Shogi)の対決が可能であること
ことにも感動しました。
0464 ◆R/rLuLKeEI
NGNGアメリカから接続か?と思いきや「うさ」やねんね。
その時私はchu_gps2と自前のクライアントで対局していた。
結果:サーバーからの打つ手を認識しないバグを発見…また来週。
0465まともに動いてない ◆R/rLuLKeEI
NGNGまともにどころか全然動いてない…
0466まともに動いてない ◆R/rLuLKeEI
NGNG・負けたとき%TORYOが発行されない。
・香車の他に桂馬も行き場のない駒を作る手を指せてしまう。
という問題が…。
もうちょっとなんだけどなぁ。
0467デフォルトの名無しさん
NGNG0468まともに動いてない ◆R/rLuLKeEI
NGNGそれがですね、今日%TORYOを直そうと思って試行してましたら
・歩兵も行き場の無い駒を作る手を指せる。
という問題も発覚しまして…結局まだ%TORYOは直ってない(笑)。
0469デフォルトの名無しさん
NGNG質問です。
オセロ・囲碁・将棋などのゲームの思考部分のデバッグって、どうすれば良いのでしょうか?
思考アルゴリズムが正しいかどうかをデバッグしたいのです。
基本部分(駒や石を置く、ルール通りに駒を動かす、石をひっくり返す、石や駒を取る、など)のデバッグは
実際に走らせればすぐに分かるのですが、思考アルゴリズムが間違っている場合のデバッグがどうしても出来ません。
明らかにおかしい動きをする場合(意味もなくオセロで四つ角の斜め隣に置くなど)はデバッグ出来るのですが、
そうでない場合のデバッグが非常に困難です。
どうすればよろしいのでしょうか?
0470デフォルトの名無しさん
NGNGデバッグしたい内容によっていろいろな手法があると思いますが
定石部分や終盤の読みきりなどは答えが決まっていることなので
おそらく中盤の思考についてなのでしょうね?
枝刈りの部分は、とりあえずダミーの評価関数を作ってそちらを呼ばせれば任意の評価値を渡せるので
返ってくるべき答えが想定できるのでなんとかなると思います
そして評価関数そのものはそれ単体でテストするといいのではないでしょうか?
0471うさぴょんの育ての親
NGNGログに吐き出すモードがあります。
さらに、そのフルログをツリー状にして見るツールを自作しています。
思い通りの手を指してくれない場合は、フルログモードでログをとって、
思った通りの手がどれくらいに評価されているのか&どんな手順になっているのか、
実際に指された手がどれくらいの評価値なのか&どんな手順なのか、
をそのツールを使って全部調べて、非常に地道にデバッグしてます。
特に、問題集を解かせてみるなんていう場合には上記の方法で大体思い通りにならない
原因は見つかります。もっとも、直せない場合も多いですが。(直す手間が現実的でない、
それを直したら他の場合に悪影響がある、など。)
具体的にどんな局面でどんなバグがあるから直したいとかを語ってくれると
もう少し実践的なアドバイスが出来るかも知れませんが、とりあえず、>>469を
読んだ感じではこれぐらいです。
フリーソフトでは、K-Shogiにツリー状にして読んだ手全ての評価値を見ることの
出来るようなモードがあったので、ユーザインタフェースの参考にしたり、実際に
どんな感じでデバッグすればいいのかの参考になるかも知れません。
0472デフォルトの名無しさん
NGNGとりあえず、駒に点数をつけて、成は二倍、王は99999点にして
その和を使うみたいな感じでやっているんだけど、
やっぱり駒を取り捲る方法にシフトしちゃうんだよね。
上手い方法はないかなあ。何かヒントだけでもplz
0473デフォルトの名無しさん
NGNG思考がおかしい、というのはどうやって判断してるんですか?
0474うさぴょんの育ての親
NGNG単純だけど、こんな感じ。
・玉の周囲の利きの数を評価する。
・金銀や成り駒は、敵玉に近ければ近いほど高得点にする。
・自玉の回りの金銀も、守りに利いているので近いほど高得点にする。
・敵に迫るのを優先するように、敵に近い方が得点を高くする。
・歩の位置を評価する。
・飛車先の歩を切ったら得点を適当に与える。
まだ細かいことを言うと色々ある気がするけど、とりあえず上記位は実装しないと
うさぴょんにも追いつかない(笑)。
0475デフォルトの名無しさん
NGNGおかしいということが判定できれば苦労はしないわけで
判定できないときにバグってるのか正常に動いてるかをどうやって判断するかという問題でしょう
0476デフォルトの名無しさん
NGNG思考上のバグなら対話的に潰せばいいってことか。
人間でもやるわなぁ。
「お前、その手はなんだ」
「いや、俺はこう考えたんだけど」
「その考えはダメだよ、こう考えてみろ」
「それだと、こっちの局面だとこうなるよ」
「あーダメかぁ」
……ダメじゃんw
0477デフォルトの名無しさん
NGNGそのおかしい一手により、相手が負けたらどうするんだ?
もちろん、もともと指せない場所のチェックは 十分必要だが。
0478デフォルトの名無しさん
NGNGそれがおかしな手になるのか?
先手だったら、一歩 譲って 後手で指してく 作戦かもしれないぞ。
0479デフォルトの名無しさん
NGNG負けるということは、おかしな手を指すから負けるのだ。
0480デフォルトの名無しさん
NGNG「思考ルーチン自体を修正したい」のか、
「思考ルーチンが設計(仕様)通りに実装されてないのを修正したい」のか。
469はどっちなんだ。
0481デフォルトの名無しさん
NGNG思考アルゴリズムがおかしいという表現がおかしいのであって、
最低でも、
1.思考アルゴリズムそのものが間違っている場合。
(デバッグ以前の問題)
2.思考アルゴリズムに基づいて書かれたソースプログラムが間違っている場合。
(デバッグ)
3.思考アルゴリズムの基づいて書かれたソースプログラムが
きちんと実行されているが、自分の想像している結果を得ることが出来ない場合。
(検証)
>>474の各項目の評価点をどの程度のものにするか
例:駒割り(駒に対して点を与えるという考え方)に、どの駒に何点を与えるか。
その結果、意図せずに他の評価を隠してしまうほど影響がある場合は、
調整等が必要。
程度には、分類しないといけないでしょう。
0482481
NGNG右端の歩をつく手が選択される可能性はあります。
でも、「端にある(中央から離れている)」歩という評価も行っていれば、
その手を選択されにくい(または、されやすい)ようにすることもできます。
これは後者が、前者に比べて柔軟(または、複雑)に対応できるということであって
前者にバグがあるとは言えないでしょう。
>>480
内容が、かぶってしまいました。すいません。
0483481
NGNG3.思考アルゴリズムに基づいて書かれたソースプログラムが
きちんと実行されているにも関わらず、
自分の想像している結果を得ることが出来ない場合。
と訂正します。
0484デフォルトの名無しさん
NGNGその3の場合は、思考アルゴリズムそのものが 自分が考えてたものと違うことになる。
0486デフォルトの名無しさん
NGNGyss 7.0の技術解説
ttp://www32.ocn.ne.jp/~yss/book.html
きのあ将棋 解説 評価関数
ttp://www12.ocn.ne.jp/~kinoa/kinoa_kaisetu/hyouka.htm
0487将棋NN ◆C3mb2PReIs
NGNGちょっと哲学的(言葉の定義的?)問題は置いとくとしても
「その局面で望ましい」指し手はどれなのかをプログラマーは判断できないといけませんよね。
やっぱり(序盤や終盤はともかく)中盤の指し手の選択をデバッグするには相応の棋力が
必要なのでしょうか?自分に棋力が無いと「次の一手」問題集を与えて検証する事はできても
どう「考えさせれば良いか?」が分かりませんよね。
将棋プログラムに取っては教えた(トレーニングした)局面ばかりじゃなく、見知らぬ局面で
如何に正しい手を指すかが真価を問われる部分でしょうから。
まあ「強かろうが弱かろうが自分が考えるような手を指せば良い」というのが目標なら
棋力は必ずしも要らないでしょうが。
(これは自分に棋力が無いのを自覚しているのでどうすれば良いのか不安になって
来たためのグチですw)
0488デフォルトの名無しさん
NGNG思考プログラムを強くしようと思ったら棋力は必要だけど、
思考プログラムのデバッグ自体には必要ないよ。
0489デフォルトの名無しさん
NGNG今程度のコンピュータ将棋の強さなら、将棋の強さは関係ないと思う。
文献を調べ・判断する能力
アルゴリズムをうまくプログラムのする能力
だけで十分だと思う。
人によってはかえって、強くないほうがよいかもしれない。
自分が指す将棋をそっくり自分のプログラムにやらそうとして
とんでもなく弱い将棋ソフトを作っている人もいるぐらいだから。
まぁ、そういう人はプログラム能力がないだけかも知れないが・・
でも、プロに勝つには?
0490デフォルトの名無しさん
NGNG>自分が指す将棋をそっくり自分のプログラムにやらそうとして
>とんでもなく弱い将棋ソフトを作っている人もいるぐらいだから。
この人は逆にプログラム能力は無茶苦茶高いんじゃないか?
こういうやり方で強く作ろうと思ったら、
自分も強くないと駄目だよなぁ。
学習させていくやり方なら棋力よりも
>文献を調べ・判断する能力
>アルゴリズムをうまくプログラムのする能力
こっちの能力だけで強いのがつくれるかもしれんな。
0491デフォルトの名無しさん
NGNGこの書籍を読んで勉強だな。古典だが絶版。
神田を歩き回ったが全く入手できなかった1冊。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495うさぴょんの育ての親
NGNG名著なのは認めるけど、さすがにもう古くなったから、工学社の「リバーシのアルゴリズム」でもいいような。
ISBN4-87593-428-9
ttp://www.amazon.co.jp/exec/obidos/ASIN/4875934289/qid%3D1093791944/249-1948706-7678712
0496まともに動いてない ◆R/rLuLKeEI
NGNG誰かは知らんがここに私のトリップで来るのも時間の問題だろう。
0497デフォルトの名無しさん
NGNG時間さえかければ見つけることが出来るからねぇ...
トリップにそこまで固執しなくてもいいんでないかい?
0498まともに動いてない
NGNGはあ、そうなんですか。
いや、異常なほど偏執的だと言われていて、それが本当なら私を恨む人が非常にたくさんいそうなので逆襲されてこの世から消されそう。
板違いやね。精神科に行ったほうがよさげ。
0499デフォルトの名無しさん
NGNGまあ、書き込み内容で偽者かどうかはすぐわかりそうだけど。
0500デフォルトの名無しさん
NGNGCPUがどんどん速くなっているんだから将棋が劇的に強くなっても良いんだけど
ここはアルゴリズムなりの影響が強いからな
0501デフォルトの名無しさん
NGNGCPUがどんどん速くなっているから私を恨む人が非常にたくさんいそう
と読めてしまった。
どういう思考パターンだ>私
0502まともに動いてない ◆/8LpUMqVAk
NGNGデバッグに話を戻すと、再帰物の深いところで起こっているらしい不可解な現象は追跡がかなり困難なことがありますね。
メモリ関係の特にスタック破壊系はデバッガでみてもわけ分からんので大変です。
0503C言語の人◇トリップやめました
NGNG今月のCマガジンに思考ルーチンの概説があります。
娯楽ゲーム向けのですけれど・・・入門編にいかがでしょう?
近況:
開発・・・ストップ
体調・・・不良(;_;)
0504うさぴょんの育ての親
NGNG前スレで話題になっていた、共通フレームワークのようなものが一応出来ました。
機能は、
・任意の局面から開始できる(ただし、再コンパイルが必要(笑))
・任意の局面で、合法な指し手の生成が出来る。
・局面にハッシュコードをつけて、局面表に登録・引き出しが出来る。
・評価関数は、駒得のみ。
・一応αβで全手の先読みをする思考ルーチンの見本付き。
・末端で、取って一番得する駒を取る(水平線効果対策)機能あり。
・局面の表示。ただしコンソール。
・人間の指し手入力。ただし、コンソールから、7776みたいに入力。
駒を成りたいときには、2423*のように最後に*を入力。
駒を打ちたい時には、歩なら0124のように入力。
以下、香車02、桂馬03、銀04、金05、角06、飛車07。
・人間の手番を先手か後手か変えたい時には、再コンパイルの必要あり(笑)。
まぁ、これは改造すればすぐ直るけど。
ない機能は、
・定跡通りに指す。
・定跡を外れての駒組み(評価関数に追加が必要でしょう)。
・指し手の評価と前向き枝刈り。<これはわざとつけてない。
・王手の生成…これは、ちょっと手生成をいじって、王手になっているかどうか
チェックするようにすればできるはず。
・上記に伴って、詰め将棋(笑)。
・詰め将棋がないことに伴って、詰めろをかけたりかかっていることを判定したりする機能。
・通信。TCP/IPのCSAモードくらいならすぐ出来そうですけど。
CHATや何かが出来る拡張モードは対応が大変そう。
ていうようなところなんですが、こんな激弱いフレームワークでも欲しい人いますか?
一応、VC++とBorlandC++(<フリーで入手可能)でコンパイル・実行を
確認しています。おそらくgccでもOKでしょう。
欲しい人がいれば、うさぴょんの将棋プログラムの作り方のページを更新して、
それぞれの段階で実際のプログラムをダウンロードできるようにしようと思うんですが。
0505まともに動いてない ◆/8LpUMqVAk
NGNGお疲れさまです。
予測通り、前スレで話題になっていた、共通フレームワークのようなものの発表が9月になってしまいましたねっと。
これとうさぴょんのページとが一対一対応になったら…挫折する人が激減!!…したらいいな。
近況:本業が猛烈に忙しくてデバッグが進まんです。
0506wdoor事務所
NGNG間際の連絡ですみません
0507うさぴょんの育ての親
NGNGあら。一応usapyon.dip.jpは終日上がってます。(バージョンが1.29くらいのままだけど。)
それでは、週末はusapyon.dip.jpにうさぴょんを常駐させておきますかね。
0508まともに動いてない ◆/8LpUMqVAk
NGNGというのも本業で二重支配を受けていてそれぞれが「こっちが優先。出来てもいないのに帰るな」と…。
土日を潰してもまだ時間が足りない状態が半年くらい続きそう。
自傷癖が出てきた…鬱
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGウィンドウ幅をalpha, alpha + 1にして探索するとのことなんですが、
それをやってもウィンドウ内に入る値は帰ってこないと思うんですが、これは何がしたいんでしょうか。
β≦s≦vや
v≧s≧α
を求めるというのをチラッと見かけたんですが、何の事を言ってるのやらサッパリ。
どなたか伝授していただけないでしょうか・・・。
0511うさぴょんの育ての親
NGNGαβ自体がFailSoftな作りでないとNullWindowSearchには意味がないし。
#FailSoftなどの用語が分からないようであれば、まずそっちから勉強することをお勧めします。
さて、NullWindowでの探索は、普通のαβ探索に比較して、高速に終了します。
まず、これはいいですか?
αβ探索では、評価値sが得られるわけですが、この値sは、実は
α以下ならその手の評価の上限値(実際の値vはs以下)、
β(NullWindowの場合はα+1)以上ならその手の評価の下限値(実際の値vはs以上)
を表しています。
そこで、例えば、
(α、α+1)でNullWindow探索を行った後、帰ってきた値sがα<s<βならば
(s、β)にWindowを設定して再探索を行うことで実際の値vを得ることができます。
また、β<=sならば、その場でβカットを行うことが出来ます。
そういう使い方をするものです。
以上が理解できたら、MTD(f)の論文を読んでみましょう。
0512rei
NGNG完全な探索前の偵察だそうです
まずα、βの初期値が非常に狭いので頻繁に枝刈りが発生し超高速に探索が終了し(偵察なのですばやくないと意味がない)
本来の答えがウインドウ内にない場合、
本来の答え≧返り値≧α となり、少なくともαが取りうる値が返り値以上であることが保証されるということです
αβ探索ではより高いα、より低いβが早く得られるほど枝刈りが多くなり高速化できる為
偵察によって高いα低いβをきめうちできることが大変効果的なわけですね
0513デフォルトの名無しさん
NGNG0514うさぴょんの育ての親
NGNG…偵察なので、アルゴリズムの名前に、Scoutという名前がついていますです。
>>513
まぁ違う側面も説明していることだし、かぶりも良いかと。
0515まともに動いてない ◆/8LpUMqVAk
NGNG0516デフォルトの名無しさん
NGNG0517まともに動いてない ◆/8LpUMqVAk
NGNG0518まともに動いてない ◆/8LpUMqVAk
NGNG0519デフォルトの名無しさん
NGNG丁寧な説明ありがとうございます
ウィンドウ幅を0にしたら何も帰ってこないんじゃないかと誤解してたんですが、
fail-softにすればウィンドウ外の上限下限値sが帰ってきて、
で、そのsを基に極力狭いウィンドウで探索を行うことができて効率があがる、と。
おかげさまで今まで漠然としか理解してなかったMTD(f)やPVSについても理解できました。
0520デフォルトの名無しさん
NGNG将棋でのトランスポジションテーブルの効果なんですが。
単純なαβ探索にトランスポジションテーブル実装したら評価する葉の数は
平均何割くらい減るんでしょうか?一概にいえない場合は、例えば深さ5で
の序盤平均とかでもいいので、知ってる方いたら教えてください。お願いします。
0521うさぴょんの育ての親
NGNG0522デフォルトの名無しさん
NGNG最善手の使い方ですが、単純参照が深さ的にできない場合、
せめて登録されている最善手でカットできるかを調べる方法
のことでいいのでしょうか?あと、この効果というのは、全く
エントリーがない状態からある局面を読ませて35%ということ
か、1局を通してということかどちらでしょうか?質問ばかりで
申し訳ありません。
0523某
NGNG0? んなことはない。
ついでに最善手を記憶させて次回反復時に
読む手として先に持ってくることはKillerMove
やHistoryHeuristicなどの範囲だから
本質的にはTranspositionTableとは別の話。
0524うさぴょんの育ての親
NGNG読み始めるようにした場合、そのような手法を使わない場合と比べた時の値です。
全くエントリーがない状態から、問題局面を与えて、
その局面について考えさせたときの平均値がこれくらいです。
さっきの投稿、何で改行が入らなかったんだろう?これも入ってないといやだな。
0525うさぴょんの育ての親
NGNG手順前後で同じ局面に至る可能性だけだから、ほとんど0と言ってかまわないと思う。
0526うさぴょんの育ての親
NGNGさっき書き忘れたけど、本質的には別の話だという点には同意。
0527うさぴょんの育ての親
NGNGというわけで前言撤回。
>>523さんが正しいようです。
本当に何も工夫のないプログラム(評価関数は駒得のみ、手の生成は端っこから順番)
で調べた場合、TranspositionTableのみでもαβで5手読みのノード数が3798から2224に減りました。
ついでに、ハッシュに最善手を入れた場合は、2210に減りました。
こっちは序盤じゃあまり効果がなさそうです。
0528522
NGNGちなみに、上で書いた最善手は、次回反復時に使うものを想定したわけでなく、
1回の探索中に、登録されるある部分木の最善手を、そのトランスポジションに遭遇
したときに使用する場合です。
登録値の部分木の大きさが、そのときの読む深さ以上の場合は、その
値を使用して、小さい場合は登録されてる最善手でカットができるか
調べてみるというものを想定していました。ですので、トランスポジションテーブルの
話だと思っていたのですが。
0529うさぴょんの育ての親
NGNGハッシュ表を引いて一致したときにも、そのノードは訪れているからカウント
しないといけないんだよな。さっきはカウントしてなかった。
というわけで、効果は、3798ノードを3406ノードに減らすくらいの効果です。
7%くらいかな?
0531うさぴょんの育ての親
NGNG引き算間違えてる。7%じゃなくて10%くらいの効果ですね。
0532522
NGNG実は自分でも駒の損得だけの序盤とうい単純なやつで>>528の方法を使って、
やってみて、1−2割くらいの削減しかできなかったので、こんなものかと
思い、質問してみた次第です。
やはり、反復深化にしないと効果は小さいということでしょうか。
0533うさぴょんの育ての親
NGNG末端のノードを数えていなかったみたいです。
末端のノードも数えたら、28186ノード対15994ノードで、ほとんど半分読みを
省略できているみたいです。
序盤では可能な指し手が少なく、同じ局面が現れやすいから効果が期待できるようです。
しかし、中盤以降、手持ちの駒が打てる様になると、急激に同じ局面が現れにくく
なり、TranspositionTableだけでは、効果がほとんど0になると思います。
(今はちょっと実験する暇がないので数字を出すのは勘弁してもらいますが。)
こういう状況になって、初めて反復深化+最善手の記憶が効果を出して来ます。
最初に、うさぴょんでは35%くらい、と言ったのは、中盤での反復深化+最善手の記憶
により速い段階でのβカットを起こすと言った効果の数字です。
0534某某
NGNG反復進化による効果は専らNodeの探索手のOrderingに
よって上がる探索効率の話だと思う。
例えばTTを使わず、深さ別に単純な配列にKiller手を
数個登録するようなことをやるくらいでも探索効率は
かなり違ってくる。
Chessに比べ将棋でのTTの効果があまり大きくないこ
とはいくつか報告があり、貴殿の10-20%の実測痴は
概ね納得できる線だと思う。
(但し探索中に詰将棋を呼び当然の如く詰め将棋部で
TTを使っているとしたらその効用は別次元の話になる)
もちろんTTのサイズ、何を登録するか、Replacement
Scheme、局面(強制手順がどのくらいあるか)等によっ
ても違ってくる。
>>533
例えばxx角打、yy歩打、zz香打と打つ手が3つ続い
て出発ノードに戻りTTにRecord、それ以降不幸にして
Cutが起こらずzz香打、yy歩打、xx角打のノード先以下
同一局面検出による恩恵からして出てくるんだがそれ
でも0と?
0535うさぴょんの育ての親
NGNG全幅探索しているならとにかく、将棋プログラムの場合、
指し手を前向き枝刈りしているので、おそらく、順序が違うと同じ手が
生成されない可能性が高いと思う。
例にあげてもらった駒打ちなんてのは特に激しく枝刈りされるし。
0536うさぴょんの育ての親
NGNGTTありで1621747ノード、
TTなしで2264331ノードの探索を行った。
少なくとも全幅探索では、TTの効用はある。(まぁそれはそうかなと思うけど。)
でも、指し手の前向き枝刈りを行うとどうかなぁとやっぱり思う。
|v香v桂 ・ ・ ・v金 ・v桂v香
| ・ ・ ・ ・v金 ・v玉v角 ・
| ・ ・ ・v歩v銀v歩 ・v歩 ・
|v歩 ・v飛 ・ ・ ・v歩 ・ ・
| ・v歩v銀 ・ ・ ・ ・ ・v歩
| 歩 ・ ・ 歩 ・ 歩 歩 角 ・
| 香 歩 ・ 銀 ・ 金 ・ 歩 歩
| ・ ・ 飛 ・ ・ ・ 銀 玉 ・
| ・ 桂 ・ ・ ・ 金 ・ 桂 香
0537うさぴょんの育ての親
NGNG末端での静止探索などが複雑なプログラムなので、
今回はノード数は数えられなかった。
なので、時間での比較でご勘弁。
TT+TTに最善手を記憶した場合 28.8s
TTのみ 45.9s
TTなし 50.1s
というわけで、TTのみでも10%程度の効果はあるらしい。
思っていたより効果があることが分かりました。反省。
某某さんの方が正しいようです。
0538うさぴょんの育ての親
NGNG前向き枝刈りありのプログラムで、
TT+最善手記憶ありがTTのみに比べてかなり早いのは、最善手でβカットを
起こせた場合、手生成などが呼ばれないからです。
αβの中身が、
TTの最善手でβカットをチェック
↓
手生成
↓
生成した手を読む
というようになっているので、後半部分を省略できるのが大きいわけですね。
なお、手生成と簡単に書きましたが、実際にはTTからの手のコピーだったりすることも
あります。
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGここでは外野はROMに徹しろ。
0542まともに動いてない ◆/8LpUMqVAk
NGNGはーい。
0543デフォルトの名無しさん
NGNGあんたはinside (w
0545デフォルトの名無しさん
NGNGもしもプログラムの駄目だし(特にデータ構造について)をしてくださる奇特な方がおられましたら、
アップローダを教えてください。
0546デフォルトの名無しさん
NGNG>>3
0547うさぴょんの育ての親
NGNG最弱の将棋プログラムは既に囲碁将棋板の過去スレで発表されています。
(ここですぐにスレが出せるといいのですけど、すみません。)
で、あれより弱いプログラムは作成不可能だと思われます。
なので、残念ながら?あなたのプログラムは最弱ではないか、過去のプログラムの
弱さを超えていないと思われます。
0548545
NGNG最も早く簡単に(コンピュータが)負けるプログラムですね。
そういうことなら、最弱ではないです。
一応、中途半端な強さのプログラムなら作ったのですが・・・。
・駒を出来るだけ多くとる
・自由度(駒の動きやすさ)を上げる
・敵陣に駒をきかせるようにする
・王手を回避する
とりあえず、この4つを実装してみました。
あとは、将棋の格言を実装すれば、少なくとも初心者には勝てる将棋プログラムが
作れると思いますが、どうでしょうか?
0549デフォルトの名無しさん
NGNGまずはあっぷしてさらせ(w
0550548
NGNGファイルが複数になるので、圧縮ツール(LHAとか)をキボン。
0551548
NGNG詰め将棋モードは使わないで下さい。
0552548 ◆g1oZzVyfEE
NGNG釣りの意図がないことを示すために、仮トリップをつけておきます。
0553デフォルトの名無しさん
NGNGXPなら標準でzip圧縮できるんだが
LHAがほしいならベクターか窓の杜にあります
がんばれ〜
0554まともに動いてない ◆/8LpUMqVAk
NGNG身体こわさん程度に頑張れぇ!
私の方はと言うと、2ヵ月ぶりの休暇が出来たので、まずは何が問題だったかを復習してる間に時間切れ。
明日、時間があれば続きをするけど、無ければ多分2ヵ月後に再検討…
0555 ◆g1oZzVyfEE
NGNGttp://gm.a-ark.net/~shogi/clip/img/52.lzh
今のところは非常に弱いですが、これから強くしていく予定です。
コンパイル方法などは、readme.txt を参照願います。
画面イメージは、こんな感じです。
1 2 3 4 5 6 7 8 9
1 ky ke gi ki ou ki gi ke ky
2 __ hi __ __ __ __ __ ka __
3 fu fu fu fu fu fu fu fu fu
4 __ __ __ __ __ __ __ __ __
5 __ __ __ __ __ __ __ __ __
6 __ __ __ __ __ __ __ __ __
7 FU FU FU FU FU FU FU FU FU
8 __ KA __ __ __ __ __ HI __
9 KY KE GI KI OU KI GI KE KY
sen*:
go :
command>
0556デフォルトの名無しさん
NGNGとりあえず、普通の盤とx軸が逆なのは何故?
76歩を指してみたら飛車のコビンが空いてビックリした。
・勝手に駒が動いた
・ないはずの駒(しかも敵の駒)を打てた(go* : fu*-1 とか表示された)
・ちゃんとコマンド入れてるのにやたらSyntax error. が出る
まずは、素早い御指摘に感謝致します。
>とりあえず、普通の盤とx軸が逆なのは何故?
>76歩を指してみたら飛車のコビンが空いてビックリした。
コンピュータで x 軸が左から右の方が楽だから、コンピュータの座標系にしてしまいました。
単に右→左にするのをサボっただけです。
すみません、すぐに直します。
>・勝手に駒が動いた
勝手にというのは、具体的にどのような状況でしょうか?
>・ないはずの駒(しかも敵の駒)を打てた(go* : fu*-1 とか表示された)
敵の駒を打てないようにチェックするのを忘れてしまいました。
>・ちゃんとコマンド入れてるのにやたらSyntax error. が出る
駒を動かせないときは他の文を表示すべきなのに、
エラー(駒を動かせないなど)に対して全て Syntax error. にしてしまいました。
これも直します。
0558デフォルトの名無しさん
NGNGカルネージハートみたいに、二次元枠にブロックを
ならべて、パラメータをいじるようなものできないかな。
ブロック組み合わせてできるから、
24の高段者でプログラム素人が参入してくれて、
飛躍的な発達が期待できると思うんだけど。
0559デフォルトの名無しさん
NGNGVSでコンパイル、shogi.cにWarningが複数。
?を連打しただけで盤面が二度表示、ヘルプファイル
スクロールアウト、駒が勝手に動く。
直します直しますはいいけど、晒すならもう少し
完成度を上げたほうがよいのでは?
0560デフォルトの名無しさん
NGNG完成度の低いものを見たくないならDLすんのを待てばいいだけだからそんな風に言わなくてもいいんじゃない?
突っ込みどころが多いほうがネタとしても面白いじゃん
もしかして、複数の評価関数があって、それぞれに重みを手動でつける方法ですか?
パラメータにしても、評価関数みたいなものがないと難しい気がするのですが・・・
>>559
>VSでコンパイル、shogi.cにWarningが複数。
readme.txt にその旨を書いたのですが・・・
>?を連打しただけで盤面が二度表示、ヘルプファイル
>スクロールアウト、駒が勝手に動く。
盤面が二度表示されるのは、原因を調べてみます。
ヘルプファイルが大きいので、スクロールアウトは御勘弁下さい。
もしGUIバージョンに移植する時は、別窓に開くようにします。
駒が勝手に動くというのは、敵の駒でしょうか?
敵の駒が勝手に動くのは、敵(コンピュータ)が考えて動かしているのですが・・・
>>560
そう言って頂けると嬉しいです。
0562デフォルトの名無しさん
NGNG・LSI-Cじゃあっという間に限界が来るのが目に見えてるからとっとと32ビットコンパイラに移行すべき。
・特にLSI-Cの場合、ファイル末尾に改行は必要。無いと誤動作の原因になる。
・相手の手くらい表示して欲しい。
・Undoで相手が勝手に打つから事実上Undoできない。
#テストすればすぐわかるはず。
・fgets()は改行まで読み込むからprintf()で改行を付け足す必要はない。
・hコマンドで相手の手番に入ってしまい、自分の駒が勝手に指される。
#指摘された瞬間にこの程度のミスに気付けないのは詰めが甘いからか?
0563デフォルトの名無しさん
NGNG要はエラーじゃないコマンドは全て相手が勝手に指すから、
例えば'#'かなんかを連打するとCPU同士の対戦になるのね。
んで、あっさり千日手に陥ると。
0564デフォルトの名無しさん
NGNG0565562
NGNG・sscanf()で文字列をばらすときは長さ制限をかけないとあっさりcoreを吐く羽目になる。
#例えば"abcdefghijklmnopqrstuvwxyz"でも入力すれば覿面。
>>564
確かに。そうすれば少なくとも>562で指摘したような現象は生じないね。
0566デフォルトの名無しさん
NGNGもっと複雑なもの「思考ルー釣んのすべて」を実現できるものです。
カルネージハート知りません?
知っていただけるとイメージがわくと思うんですけど。
カルネージハートではプログラムを素人や子供が組めます。
そして、どのプログラムが優れているか対戦させることができます。
大会まで開かれました。
優秀なあるいはユニークなプログラムが数多く輩出され
プログラム集が何冊も出版されました。
将棋ソフトもそんなふうに敷居が低くなれば、
将棋の高段者やプロが遊びで参加できて
大会のレベルがあがると思います。
0567まともに動いてない ◆/8LpUMqVAk
NGNG>カルネージハート知りません?
後でgoogleで調べてみるけどプログラム板的にお薦めのページがあれば教えてください
知らないのでイメージが全然湧かないんですけど。
将棋ソフトも敷居が低くなるのは賛成。
>>562
>・LSI-Cじゃあっという間に限界が来るのが目に見えてるからとっとと32ビットコンパイラに移行すべき。
すみません、単に無料だという理由だけで使っていました。
そのうち Visual C++ などに移行したいと思っています。
>・特にLSI-Cの場合、ファイル末尾に改行は必要。無いと誤動作の原因になる。
それは(勉強不足で)知りませんでした。以後気をつけます。
>・相手の手くらい表示して欲しい。
すみません、怠慢でした。
>・Undoで相手が勝手に打つから事実上Undoできない。
これも直します。
>#テストすればすぐわかるはず。
すみません、アルゴリズムのことばかり考えていて、コマンドのバグのテストが甘かったです。
>・fgets()は改行まで読み込むからprintf()で改行を付け足す必要はない。
おっしゃるとおりです。
>・hコマンドで相手の手番に入ってしまい、自分の駒が勝手に指される。
すみません、直します。
>#指摘された瞬間にこの程度のミスに気付けないのは詰めが甘いからか?
すみません、詰めが甘かったです。
あ、別に初めてだから大目に見て欲しいというつもりは全くなくて、
むしろ容赦なく厳しく指摘して下さった方が、プログラムも良くなるし、
勉強にもなるので助かります。
>>564
確認してみます。
>>565
sscanf を使ったのは手抜きでした。本当は、
fgetsで読み込んでから strtok で分解すべきでした。
>>566
「カルネージハート」という言葉は知りませんでした。
だいぶ前に、システム開発が子供でも出来るとか出来ないとかを
ニュースか新聞で見たことがあるので、そのことかも知れません。
ググって見ます。
0570デフォルトの名無しさん
NGNGここで雰囲気はわかると思います。
カルネージハートpart2
http://game8.2ch.net/test/read.cgi/famicom/1068353700/
具体的な内容がイメージしにくいと思いますので、
中古ソフト屋でゲームを買ってきて遊んでください。
必ず、今後のプラスになります。
簡単に説明します。
カルネージハートは、プログラムをロボットに組み込んで対戦させるゲームです。
二次元座標の16*16(いくつでもよい)のマスがあります。
マスにブロックをはめ込みます。
プログラムフローは左上からスタートし右下で終了します。
右下に行ったら左上に戻り、またフローします。
ブロックとは、サブプログラムをパッケージ化したものです。
様々な種類があり、フローを繋ぐだけの矢印→↓から
外部状況分析、内部状況判断、条件分岐、アクション、
など多種多様のブロックがあります。
サブプログラムは内部の設定値をGUIで調整できます。
これらのブロックを、上述のマスにはめ込みフローをつくります。
原則として左上から右下へフローします。
基本的には、状況判断→アクション→フィードバック→状況判断→…と進みます。
応用として条件判断と組み合わせて有限ループさせる部分もつくれます。
0571デフォルトの名無しさん
NGNG老婆心ながら。
・フリーのコンパイラがいけないのではなく、gcc/bccのようなフリーの良質なコンパイラに慣れるべき。
そうすれば<<4のような姑息なコーディングを意識することなくコンパイラ任せにできるから。
#LSI-Cじゃ余りにも古く小さすぎ。フリー版ということはメモリ空間も小さいしintも16bitだし。
##できればオブジェクト思考プログラミングに向かった方がいい気もするけど。
・sscanf()を使ってはいけないのではなく、使うのならきちんと使うこと。
#大丈夫、LSI-Cのsscanf()の%3.3s周りの幾つかのバグは私が指摘して潰してもらったからw
まぁ、一番大事な頑張る気力はありそうだからこそ指摘してるわけだけどね。
0572デフォルトの名無しさん
NGNG全国各地の子供から大人まで、将棋初級者からプロまで、
「鉄心」という同一基盤上で最適な評価関数やシステム構造を求めて競いあう
状況がつくれます。これは将棋プログラムの前進に大きく貢献します。
「鉄心」をフリーで作り広く配布すれば、非常に多くの手と頭を以て、
非常に幅広い人々の手によって、永遠に改良と競争が行われます。
これによって続々と成果が上がった評価関数やシステム構造を
将棋プログラムに反映し、高速な環境でさらにチューンを加えたものを
大会で競わせればコンピュータ将棋界そのものの大きな進歩が期待されます。
開発は、開発とは、より多くの手、より幅広い頭によってなされるべきだと考えます。
鉄心はそれを満たすひとつの解です。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG基本的に閉鎖的なシステムだから実現できる面もあると思う。
目的を達成するための手段(ルーチン)や判断材料(パラメータ)が
あらかじめ固定数で決められていて、
用意された以外のことが出来ないんだよね。
あれやこれやをシステム側として柔軟に対応しようとすると、
とてつもなく大きいシステムになってしまうし、
かといって、不十分な対応だとシステムから離れてられてしまう。
システムをメンテしていくことも考えないとダメポ。
{ ブロックを縦や横に数十個並べるより }
{ 普通のプログラムソースのほうが }
{ 見易いし解かり易いと思うんだけど... }
(´-`).oO
0575まともに動いてない ◆/8LpUMqVAk
NGNG自作ブロックを作り出す輩がかつていたそうだけど…
sage
0576デフォルトの名無しさん
NGNG素人や子供の中にも天才はいるんです。
そういうののアイデアをゲームをえさに発掘したいんです。
0577 ◆g1oZzVyfEE
NGNG御指摘のあったバグを修正しました。
>>570
そのスレを後で読んでみます。
>>571
>・フリーのコンパイラがいけないのではなく、gcc/bccのようなフリーの良質なコンパイラに慣れるべき。
学校には gcc があるのですが、ネットワークを通すと全角文字が文字化けしてしまうのと、
パソコンを置いてある部屋は飲食禁止(←些細なことですが・・・)という理由で自宅で作成しています。
Windows対応のフリーの gcc や bcc もあるのでしょうか?
> そうすれば<<4のような姑息なコーディングを意識することなくコンパイラ任せにできるから。
「<<」演算子は邪道ですか?容量節約と高速化のためにビット単位で情報を詰め込んでいるのですが、
それはやめた方がいいのでしょうか?
>#LSI-Cじゃ余りにも古く小さすぎ。フリー版ということはメモリ空間も小さいしintも16bitだし。
あの、lcc の limits.h では、INT_MAX は 2147483647(=2^31-1) となっていますが・・・
>##できればオブジェクト思考プログラミングに向かった方がいい気もするけど。
それも考えています。
>・sscanf()を使ってはいけないのではなく、使うのならきちんと使うこと。
>#大丈夫、LSI-Cのsscanf()の%3.3s周りの幾つかのバグは私が指摘して潰してもらったからw
一応、Ver1.1 ではきちんと使ってみました。
>まぁ、一番大事な頑張る気力はありそうだからこそ指摘してるわけだけどね。
ありがとうございます。
0578デフォルトの名無しさん
NGNGそうでないなら、そんなことはないと思うよ。
0580デフォルトの名無しさん
NGNG↓
ttp://www.borland.co.jp/cppbuilder/freecompiler/
gccもcygwin使えば何とかなると思うけど、無理しないでbcc使っとけ。
0581デフォルトの名無しさん
NGNG飛車とか角とか普通に逃げられるのに
ただ取りされるのが気になる。
0582デフォルトの名無しさん
NGNGIDEが必要と考えているなら
bcc + BCCDeveloper、
mingw(gcc) + DEV-C++ ※英語
などをお勧めしたい。
IDEが必要ないのなら
MSVCToolkit2003 という手もあるでよ。
0583デフォルトの名無しさん
NGNG将棋プログラム以前に一般的なプログラミング
初心者用のスレにまず行ったほうがいいと思う。
0585まともに動いてない ◆/8LpUMqVAk
NGNGもうちょっとテストしてみます。
>・相手の手くらい表示して欲しい。
すみません、私のもしてません。
思考時間の表示とかも実装してからupしようと思います。
恰好良く表示させるのは2の次でとりあえず(+|-)xyXYoo,Tddのようなサーバーから返って来るそのまんまの形式で…
0586デフォルトの名無しさん
NGNG0587まともに動いてない ◆/8LpUMqVAk
NGNGCUIで、スクロールタイプでも動いた駒を反転させてくれれば判り易くはなりますね。
GUIでも表現力が乏しいと時々分からなくなったりしますよ。
私のはコンソールにスクロールタイプのCUIを出しているのでなんとかなっているけどやっぱり格好悪い。
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGその頃にゃ勝てる。
0590デフォルトの名無しさん
NGNG将棋版カルネージハートは面白いかも。
作ろうかな。
ただ、モジュールを作る方法が必要だと思うんだよね。
誰かいいアイディア欲しいね。
関数的な考えでは
変数に値ぶっこむモジュールか
if/elseしてくれるモジュールがあれば終了か?
◆g1oZzVyfEE にはがんばって欲しいね。
とりあえず、Java+Eclipse使えば?
C言語なんてカス言語な上に
環境を整えるのも面倒だし。
Javaなら2つインストールするだけで、
極上の環境が一瞬で出来上がる。
java5の対応もかなり進んでるし。
GUIは一瞬とは言わないけど、三瞬くらいでできるよ。
paintComponentに書きなぐるだけだ。
あとはmouselistner使えばやりたいことは全部できる。(極論)
俺もカル将棋作りつつ、将棋アルゴ作ってみるか。
0591まともに動いてない ◆/8LpUMqVAk
NGNG再帰処理くらいは表現出来ないと苦しそう。
ブロック版FORTH言語もどきをブロック・トランスレータ(仮称)でC言語か何かに変換てなところか…
0592 ◆g1oZzVyfEE
NGNG勉強不足という御指摘がありましたが、これでも一応コンピュータ専門です。
本当はある程度完成度を上げてからうpするべきですけど、
とりあえず皆さんからの御指摘を仰ぎたいという気持ちがありましたので、
あえてうpさせて頂きました。
とりあえず、最初から(コンピュータに)組み込むことなく、コンピュータが自発的に
角道を開けたり、飛車先歩交換をするようにしようと考えています。
つまり、出来るだけ小さいプログラムで最大の強さを目指しています。
羽生レベルとは言わなくても、とりあえず、(天才的に強い子じゃなくて)
普通の将棋好きな小学生に勝てる程度のプログラムを作るのが最初の目標です。
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG厨化してしまうのか良くわからん。
0595デフォルトの名無しさん
NGNG馬鹿な議論もなくなって。
試験・面接が終わったら、lcc でぐいを作ってみます。
それまで◆g1oZzVyfEE を生暖かく見守ってやってください。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGそもそもこの板の、C言語なら俺に聞けスレくらい読んでたら
Cygwinも知らんなんてことは言えんはず。
0599デフォルトの名無しさん
NGNGいいじゃんようだれも発言しないんだから
ツマランネタ書くなっていうんならなんかネタ振ってよ(w
0600まともに動いてない ◆/8LpUMqVAk
NGNG0601うさぴょんの育ての親
NGNGなると実験がとても出来ないですねぇ…。
将棋の場合、要するに、8〜20手くらい先まで読んで最善手だと判断された手で
1手ずつ直線的に16手進めて見て、最初に選んだ10手の中から、そこでの形勢
判断で指し手を選ぶ、ということになるわけでしょうか。
特に序盤では、そのように直線的に深く読めることが「構想力の無さ」をカバー
してくれるような気がしますね。
0602デフォルトの名無しさん
NGNG0603まともに動いてない ◆/8LpUMqVAk
NGNG0604デフォルトの名無しさん
NGNG20 PRINT "!YOU LOST!"
0605デフォルトの名無しさん
NGNG10 PRINT "将棋ゲーム"
25 PRINT "おまえはすでに負けている" ' 2004/10/15
20 PRINT "!YOU LOST!"
0606デフォルトの名無しさん
NGNGLIST
10 PRINT "将棋ゲーム"
20 PRINT "!YOU LOST!"
25 PRINT "おまえはすでに負けている" ' 2004/10/15
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNG>>608
残念ながら、評価関数が必要ないほど究極の先読みは不可能です。
全宇宙の全ての素粒子を使って究極の量子コンピュータを作ったとしても、
それでも完全な先読みは出来ません。
何故ならば、将棋の全ての指し手は 10^160 程度と言われており、
全宇宙の全素粒子の数は 10^90 といわれています。
よって、全ての素粒子が 10^70 回の演算を現実的な時間内で完了させる必要があります。
ちなみに、1年間(うるう年でない年)は 31536000 秒なので、
100年以内に全計算を終わらせるためには、約 3*10^60 ヘルツで動作させる必要があります。
よって、将棋の完全先読みは絶対に不可能なので、至高の評価関数を作る方が
現実的だと思われます。
ちなみに、今は効率を上げるためにデータ構造を変えているところです。
0611デフォルトの名無しさん
NGNG先読みがいらないってのに対比して書いたんだけど。
どっちも不可能でしょ。
どちらも不可能だと思います。
計算量で言えば、先読みしない評価関数を作る方がまだマシだと思ったのですが・・・
もちろん、「至高の」評価関数を作った人は世界にいないですけど。
0613デフォルトの名無しさん
NGNGあれは全探索ではなくて、人間が(ディープブルーに)助言したらしいですよ。
0615デフォルトの名無しさん
NGNG両方必要。
バランスが大切。
究極とか至高は存在しない。
至高の評価関数が存在しないのは将棋に最善手がないから。
しかし、いまは先読み手法はいいところまでいってるが、
評価関数は駄目駄目だから改善するなら評価関数。
定跡データベースと組み合わせた戦型別評価関数、序中終番別評価関数、
先読みと合わせた手の早さ別評価関数、
局面判断に合わせた玉の堅さ別評価関数、
これからまだまだ伸びシロがある。
>しかし、いまは先読み手法はいいところまでいってるが、
>評価関数は駄目駄目だから改善するなら評価関数。
>定跡データベースと組み合わせた戦型別評価関数、序中終番別評価関数、
>先読みと合わせた手の早さ別評価関数、
>局面判断に合わせた玉の堅さ別評価関数、
>これからまだまだ伸びシロがある。
それを聞いてちょっと安心しました。自分で頑張る余地が十分あると知って。
隠すのは卑怯なので白状しますと、最強の将棋プログラムを作るのは、実は◆g1oZzVyfEE の
卒研のテーマでもあります。スレを立てたのは他の方ですが、勝手ながらこのスレに寄生させて頂いております。
あ、もちろん、参考にさせて頂いた部分については、当然のことながら、
引用元のスレ・レス番・コテ・サイトなどをちゃんと書きます。
もし良いプログラムが出来たら、どうか誉めてやって下さい。
悪いプログラムだったらどんな罵声でも浴びる覚悟でいます。
>>598さんのような厳しい御指摘もありましたが、出来るだけバグを排除してプログラムを強くして、
「どう、強いでしょう?」と言えるように完成度を上げてからうpするようにします。
0617デフォルトの名無しさん
NGNGそういうことなら協力しないでもないから適宜投下してみ。
よくなっていく過程を見るのは面白いし、暇があればソース叩いてもいいし。
暖かいお言葉をありがとうございます!!
データ構造を変えたところでまだ人に見せられるようなものじゃないので、
(・∀・)イイ!と思えるプログラムになったらうpします。
一生懸命がんがります!!
0619デフォルトの名無しさん
NGNG究極の評価関数を作ってしまうかもしれない・・・
>あ、もちろん、参考にさせて頂いた部分については、当然のことながら、
>引用元のスレ・レス番・コテ・サイトなどをちゃんと書きます。
誰も著作権なんて主張しないと思うけど。
ここに書かれる事は全部ゴミレベルだと思うぞ。
引用なんてのは説明を省くために使えばいい。
それから
そこそこ強い将棋を作っても研究にならん。
特に評価関数のチューニングだけじゃだめだし。
何か新しいアイディアを提案して、その有効性を示すのが研究だからね。
ついでに、探索に関しては研究は成熟しきって、もうやることはない。
100台並列で探索できたとしても、ほとんど強さに貢献しない。
さて、どんな研究をするんだろう?
0620うさぴょんの育ての親
NGNG探索に関しても別に研究が成熟しきっているということはないと思いますよ。
現に激指が、「読みの深さを局面の実現確率で打ち切る」というアイデアを出したのは
4年ほど前に過ぎません。
「水平線効果を効果的に取り除く一般的な手法」というのも誰もまだ解決していません。
例えば、DeepBlueで行われたSingularExtensionはChessでは成功して、一つの解に
なっているわけですが、それが将棋でもベストであるとはいえない状態です。
100台並列で探索する手法についても、どんな方法で探索すればベストか、
きちんとした研究は将棋ではされていません。
チェスと同じ方法でうまく行く可能性が高い、というだけで。
> 何か新しいアイディアを提案して、その有効性を示すのが研究だからね。
ここには激しく同意。
単に強いプログラムを作るだけだったら全く研究としては意味なしです。
っていうか、うさぴょんレベルの強さですら、1から始めたら、普通、
卒研で作れるようなもんじゃないですよ。
0621デフォルトの名無しさん
NGNGGPWにおいでませ
0622デフォルトの名無しさん
NGNG将棋の世界って遅れてると思うんだよね。
将棋やってる人達はCS(コンピューターサイエンス)とかかじった程度で、
CSでやられてる最新の手法を全然取り込んでない。
>「読みの深さを局面の実現確率で打ち切る」
ってのも、CSやってる人なら普通に思いつくことだろうし。
まあ、それはそのうち論文でも投稿しときます。
SingularExtensionなんてのも、素人芸にしか見えなくて
もうちょっと根拠ありの手法を考えようよって思うし。
根拠ありの手法が必ずしもうまく行くわけではないことはわかるけどね。
まあ、将棋とかチェス独特の手法ってのも必要で、
詰め将棋での、分岐の数を調べるのはなるほどって思ってるけど。
0623デフォルトの名無しさん
NGNG将棋大会も、評価関数はみんな共通でやればいいのに。
今は評価関数のチューニング具合で
中盤のよしあしが決まってると思う。
もちろん、序盤のデータベースも公開。
人間の知識を使ってる部分は全部公開するべきでしょう。
将棋パラメーターチューニングコンテストがしたいなら、
それでもいいんだけどね。
アルゴリズムで競った方が頭をフルに使えて面白いと思うんだけどな
0624デフォルトの名無しさん
NGNGで、肝心の今の将棋に欠けているCSでやられてる最新の手法
を書き忘れてるわけだが。
0625うさぴょんの育ての親
NGNG現在進行形でAlberta大学で博士論文書いている人とかに向かって
「CSとかかじった程度」とは良く書けたもんだ。
どこの大学の教授かな?
0626デフォルトの名無しさん
NGNG自分ができる(できた)気になったんだろ、大目に見てやれよw
0627デフォルトの名無しさん
NGNG論文にするから書けないって。
さすがに修士の学生には負けないよw
大学名とかは関係ない。
実力の問題。
実際のところ東大博士の半分以上は役に立たないし。
>>625
2004年に提出された論文の中で、
君が素晴らしいと思う論文を教えてくれ。
そう簡単には見つからないと思うよ。
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGお詫びにネタ振りしときますんで、それで勘弁してね。
中盤に限った話ね。
「探索をすると本当に強くなるのか?強くなるとすれば、なぜ強くなるのか?」
「10手読みと、20手読みと、30手読みと・・・10000手読みを比較する。
強さはどのように推移するか?」
「Singular Extensionは有効か?なぜ有効か?」
考えてみてね
こっちは純粋な質問
「詰め碁問題が提示された時、その問題が何手詰めかを予想する事ができるか?」
どうなのか?
探索をして解答を見つけてしまえば、予想じゃなくて答えがでちゃうけど
探索しないで予想する事はできるのかね?
まあ、それが分岐の数なのかな・・・
0630うさぴょんの育ての親
NGNG2004年のコンピュータ将棋の論文に限るの?
GPWを待たないと分からないけど、今のところないね。確かに。
まぁ、それだけでかい口を叩いて貰ったので、来年かな?の論文は楽しみにしてみましょう。
0631まともに動いてない ◆/8LpUMqVAk
NGNG0632うさぴょんの育ての親
NGNG形式的にきちんと証明しようとすると面倒な課題だなぁ。
・評価関数の誤差
・探索による評価関数の誤差の吸収
と言うあたりをきちんと定式化すればいいんだろうけど。
将棋の場合、さらに前向き枝刈をしているから、
・前向き枝刈による誤差の蓄積
も絡んでくるのか。面倒だなぁ。
そして、10手…20手…10000手読みの話になると、さっきの話に絡んで、
log読みの深さ と勝率が比例する、と言うような感じの予想になるけど、
第一段階で形式的な証明が出来てないとlogだとは言えないしなぁ。
SingularExtensionが有効な分けは、評価関数の誤差が大きい局面を見つけだして、
その局面に対して深い探索を行うことで評価関数の誤差を抑えることができるから。
Singularな局面は評価関数の誤差が大きいと予想されるわけだけど、これも
証明は難しいね。
ここまでの議論を正しいとして、
将棋の場合、Singularな局面が多すぎるので、評価関数の誤差の大きい局面を
見つける方法として適当でないのでSingularExtensionはあまり有効ではない。
わけですね。
詰め碁問題が何手詰めかは、予想不可能と言うか、そもそも詰め碁の問題は、
詰将棋と違って何手詰めとか余詰とかの定義がないので、探索しても何手詰め
だとは言えないと思うんだけど、どうかな?
0633デフォルトの名無しさん
NGNGそろそろ世代交代だと思うので、楽しみにしててね。
詰め碁じゃなくて、詰め将棋だった・・・
ごめんなさい。
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG質問の2つは両方とも経験則で言われているだけだろ。
それを自分の論文のアイデアで証明できる、と言いたいだけなんじゃないか?
2chなんかで自慢話をする時点でそいつは机上の空論の可能性大だ。
0636デフォルトの名無しさん
NGNG楽しみにしててね。
詰め碁じゃなくて、詰め将棋だった・・・
ネタ振りに関しては、数学的な証明は目指しても無理でしょう。
いろいろ考えてもらう事で、誤った道に踏み込む事を防ぐのが目的なんで。
はたして探索によって誤差は吸収できているのか?
誤差が吸収できるとすれば、めちゃくちゃな評価関数でも
探索する事で強くなるのか?
探索すればするほど強くなるのか?
Singular Extensionに関しては
「評価関数の誤差」がポイントなんだよね。
でも、評価関数の誤差ってわかるのかな?
わかるなら、評価関数修正アルゴリズムができちゃうね。
まあ、本当はできないんだけど、どうしてできないのか?
ってとこがポイントかな。
0637デフォルトの名無しさん
NGNG経験則でなんて言われてるの?
>それを自分の論文のアイデアで証明できる、と言いたいだけなんじゃないか?
経験的にわかってて、それが正しいなら、証明したって
強い将棋できないじゃんw
>2chなんかで自慢話をする時点でそいつは机上の空論の可能性大だ。
可能性推定アルゴリズム?
0638デフォルトの名無しさん
NGNG探索木の深さと強さ(勝率?)が比例する?
まさかまさか。
深さに対してlogで効いてるかもよ。
まあ、俺もわかりません。
めちゃくちゃな評価関数に対して
探索と強さの関係を調べる研究をしてみてはいかが?
0639デフォルトの名無しさん
NGNG0640うさぴょんの育ての親
NGNGめちゃくちゃというのは、そこまでめちゃくちゃでいいのかな?
さすがに、勝ちの局面に対して勝ちの評価値を返すことぐらいは最低でも
評価関数の必要事項だろうから、それだけの評価関数で、
強さ(とりあえず勝率)は読みの深さに対してどうなるか?
は調べて見ると面白いだろうね。
0641デフォルトの名無しさん
NGNGクズもつもれば、ゴミとなる
0642デフォルトの名無しさん
NGNGうさぴょん強すぎまーす。
将棋はもうソフトのほうが強すぎてつまんないね。
モノポリーとかのほうが面白いや。
0643デフォルトの名無しさん
NGNGf(盤面、持ち駒)
を評価関数だと思って
自分の王がとられた -1
相手の王をとった +1
それ以外 0
だとする。
最初の一手を考えよう。
深さ1の探索では、王手されたら逃げる。
偶然、王手したらとる、ができる。
深さnの探索では、n手目以内に王手ができそうだったら突撃
n手目以内に王手されそうだったら逃げる、となる。
評価関数で何か目標を指定するとそこへ接近したり、
退避したりする。
動物でいう視界みたいなもんである事がわかる。
次に、ノイジーな評価関数を考える
自分の王がとられた -1
相手の王をとった +1
それ以外 ランダムに-0.1か+0.1
としよう。
以下略(枝狩りをした場合の考察もどうぞ)
0644まともに動いてない ◆/8LpUMqVAk
NGNG>>643:
これくらいは仮定していいよね。
f(盤面、持ち駒)は
・ノードの展開順序によらず同じ(盤面、持ち駒)に対して常に同じ値を返す。
・ノードに依存する分岐数や詰め将棋の探索で使われる証明数・反証数の概念を含んでいる。
・盤面に手番は含まない。
たとえば
自分の王がとられた -1
相手の王をとった +1
それ以外 局面のハッシュ値を(-1,+1)に変換
などとする。
こんなことをすると終局の1手前の評価値と本当の評価値が無関係になってしまうが、どうせ中盤では端まで行かないから棚上げしておく。
この評価値でMINMAXをす 略
0645CPUが攻めてきてくれない・・・
NGNG振り飛車めがけて特攻するような重み付けしてよ。
このままじゃ一生コンピュータ将棋で遊べないよ。
0646まともに動いてない ◆/8LpUMqVAk
NGNG勝手に読み違えてました。
それ以外 ランダムに±0.1のどちらか
なのね。
すんません。
で、±0.1は本当に何ら意味を持たないノイズであれば0として扱って問題ないはずだが…。
もしそれぞれ勝つかも負けるかもという状態ならそれらを考慮して…証明数・反証数の探索の自然な拡張を目指してる?…んなわけないわな
0647デフォルトの名無しさん
NGNG枝狩りの意味を考えてね。
証明数は今はいらない。
0648うさぴょんの育ての親
NGNG>>632では、(log 読みの深さ) と 勝率(強さ) が比例すると言ったので、
言っていることは深さのlogと何も変わらないんだが…
そう読んで貰えなかったのかな?
0649まともに動いてない ◆/8LpUMqVAk
NGNG>枝狩りの意味を考えてね。
無駄に忙しいので続きは数ヵ月後に。
0650まともに動いてない ◆/8LpUMqVAk
NGNGあまりにも長い期間game waiting状態には出来ないということでしょうか。
wdoor事務所さんへ
現在動作しているサーバーとまとめページのサーバーの仕様がずれて来ているので、
手が空いたときで結構ですから更新して頂けませんか。
0651デフォルトの名無しさん
NGNGごめんごめん、想像で書いちゃった。
じゃあ、logやめて「深さに比例するかもね」ってのに修正。
まあ、どっちでもいいんだけど。
またまたネタ振り
評価関数
自分の王がとられた -1
相手の王をとった +1
自分で劣勢だと思う曲面を5000個適当に列挙したもの -1
自分で優勢だと思う曲面を5000個適当に列挙したもの +1
それ以外 0
2*5000個入力すれば案外強いと思うんだけど、どうだろ?
0652デフォルトの名無しさん
NGNGgps将棋@wdoorですがgps側の問題でこけてたので復活させました.
とりいそぎ
0653まともに動いてない ◆/8LpUMqVAk
NGNG深夜の対応有り難うございます。
0654うさぴょんの育ての親
NGNG書き込みのクオリティが低いので相手にする気がおきなくなりますた。
651も含めて、以後、おそらくスルーします。
0655まともに動いてない ◆/8LpUMqVAk
NGNG私はまともに動いてないプログラムのデバッグに勤しむよ。
0656デフォルトの名無しさん
NGNG相手の有力手をパクるとか震え上がるような向上心見てみたいな。
0657デフォルトの名無しさん
NGNG評価関数のパラメータを自動調整するのは結構一般的だよ。
ただ、どの一手が有力手だったかを適切に判断するのは難しい。
学習させすぎると変な癖が付いて弱くなっちゃうし。
0658デフォルトの名無しさん
NGNG人間もそうなんだよね、へたがうつるとか言われて相手にしてもらえない俺(W
学習のパラメータと評価関数の決定が難しそうですね。
逆に、それさえ出来れば、自動的に強くなるプログラムを作ることは比較的簡単ではないでしょうか。
今、kiki table(駒の利きのテーブル)の実装をやってます。
将棋のコアの部分は出来ました。
中途半端なものをうpすると怒られるので、
ある程度ちゃんとした思考ルーチンが出来てからうpします。
0662デフォルトの名無しさん
NGNGはやくwdoorに繋げるようにするのだ(w
すみません、ネットワークプログラミングに弱いので、しばらく勉強させて下さい。
0664デフォルトの名無しさん
NGNG出遅れたけどちょっとつついてもいいかな
最善手を外す確率が小さくなったら打切なんてどう?
ttp://citeseer.ist.psu.edu/baum97bayesian.html
0665まともに動いてない ◆/8LpUMqVAk
NGNG・王が動かせない(直した)。
・3段目の桂が進まない(直したが未確認)。
今日はもう寝ます。
まともに動いてないプログラムはなかなかまともに動いてくれないな。
0666論外な人 ◆/8LpUMqVAk
NGNGCSとかかじった程度の将棋やってる人達は全然取り込んでないという奇妙な論理を展開されると、
困ってしまうね。
0668デフォルトの名無しさん
NGNGそれでも未だそういう状態ってことでちょっと気になったんだけど。
将棋のプログラム書いている人たちって駒の動きをクラス(或いはそれに類似した構造)にしてないのかな?
確かに駒クラスを用意するやり方は思考ルーチン書く際には冗長で遠回りな感じもすると思うけど、
最初に一つ一つの駒がきちんと実装されていれば動けない場所に転進することもないだろうと思うわけで。
「トリップg1」さんも駒の利き筋を配列で持ってたし、皆さんそんな感じなんですかね。
#うさぴょんのソースくらい読んでみるべきか。
##とと、一応書いておくと、私は掻い摘んでヲチしてるだけなんで将棋は門外漢。
0669rei
NGNG私は根っこがアセンブラ屋なもんでクラスってなに?って感じです(w
クラスにちょっと触れてみた印象は、むっちゃくちゃ冗長なプログラムって感じかな
メンテナンス性はたしかにいいんでしょうけどねえ
極限の高速化を求める場合はだめんなんじゃないのぉ?って感じ
(あくまでも印象ね、さわりしかいじってないから)
アセンブラでも作れると思いますけど、駒の利きを配列化する以上の効率的な方法を御存知でしたら
是非教えてください。
あ、もちろんその時には、(御希望でしたら)special thanks to に貴方のコテを載せます。
あと、アセンブラでもCでも、コアの部分(駒を動かしたりする部分)とインタフェース部分は
分けた方が後々便利だと思います。
0672まともに動いてない ◆/8LpUMqVAk
NGNGそれも考えているけど…まだ収拾がつくかもしれないから
>>668さん
「こびと」さんが書いてくれたりするよね。
それも大抵間違ってて。
将棋のプログラムで駒の動きをクラスにしはじめたのが、今のプログラム。
つまり勉強不足です。
最初から手抜きして一つ一つの駒を適当に実装してたから、そのツケ。
というか本業が大変疲れるのも一因かも(今月また一人鬱病で退職するのがいるらしい)。
そういう私はC言語屋です。
0673デフォルトの名無しさん
NGNGだから、将棋にただ使うだけで論文になる。
だから、ここでは公表しない。
なんで奇妙な論理なんだろう?
>>664
>最善手を外す確率が小さくなったら打切なんてどう?
まあ、明確な意図に基づいてアルゴリズムを設計してる点は評価できる。
p(f(x)=y)が計算できるという仮定はどうかと思うけど
まあ、それもいいや。
あとは、どうやって計算してるかだけど・・・
あの論文読みにくすぎるので要約して欲しいな。
実験結果から読もうとしたら、わけわからん。
0674論外な人 ◆/8LpUMqVAk
NGNGすまんすまん、てきとーに書いてもた。
0675デフォルトの名無しさん
NGNG(ノД`) アーンアーン、出て行ってやる〜
ヽJ(`Д´)しノ 待ち!その服はオカーサンが買うてやったんや!置いてき!
(ノД`) アーンアーン(服脱いで出て行こうとする)
ヽJ(`Д´)しノ 待ち!そのパンツもオカーサンが買うてやったんや!置いてき!
(ノД`) アーンアーン(パンツも脱いで出て行く)
__[警]
( ) ('A`) カーチャーン・・・・
( )Vノ )
| | | |
0676デフォルトの名無しさん
NGNG誤爆(・∀∀・ )
0677デフォルトの名無しさん
NGNG>p(f(x)=y)が計算できるという仮定はどうかと思うけど
うーん、たしかに将棋では難しいかもね。
打切に興味ありそうだったから紹介してみたんだけど。
論文執筆期待してるよ。できればそのアイデアを組み込んだ革新的な将棋プログラムもw
0678rei
NGNGということはクラスを使うと高速化に有効だということですかい?
あおってんじゃなくて素朴な疑問です
私のプログラミングスタイルは外枠とアルゴリズムはVBで開発速度優先で作ってしまって
本気の高速化が必要なところをアセンブラなりでチューニングというかんじですが
まあ、速度が十倍になっても読みの深さがせいぜい一段深くなるくらいだから
最近のPC使ってるとそこまでやる気はあんましおきません
0679670
NGNG煽りじゃないけど、私ゃ高速化に有効なんて一言も書いてないし。
思考部分を(駒の詳細や実装に煩わされずに)シンプルに書ければ
カルネージハートじゃないけど部品の独立性を高められるかな、と。
で、実例を提示しないでは机上の空論に終わってしまうのでせめて
「一度作ってみてから」出直そうかな、と思った次第。
ま、お題目をぶち上げて自分を追い込むのも手なんですが、根が
現物志向なんで物がないと安心できないもんで。
そうそう、実際問題として高速化のためにクラス化したことはありませんが、
クラス化して問題を整理していったら結果的に早くなったことはあります。
#ベースになったプログラムが蛸だったのは内緒。
0680デフォルトの名無しさん
NGNGクラスを使うのはデバッグ・チューニングも含めた開発全体の速度を高めることが第一の目的だとは思うけど、
別に恐れるほど遅くはならないよ。
特にC++だと、コンパイラの部分評価最適化が(templateで)使えることがかなり効く。
GPS将棋の論文
http://gps.tanaka.ecc.u-tokyo.ac.jp/osl/pukiwiki.php?plugin=attach&openfile=osl.pdf&refer=%5B%5B%B4%D8%CF%A2%CF%C0%CA%B8%5D%5D
読んでみると一手進んで戻ってが平均65サイクルだから、まぁ十分だと思うね。
0681wdoor事務所
NGNG>>650
まとめページ更新しました.http://wdoor.c.u-tokyo.ac.jp/shogi/protocol.html
おかしなところが残っていましたらご指摘お願いします.> みなさま
;;; 多少頑張ってみましたが,状態遷移は図がないとやっぱり分かりにくいですね
;;; あと,wiki にすれば良かったかな..
>>663
- RS232Cで指せる様にしてから,K-Shogiをブリッジに使う
- stdin/stdout でやりとりするプログラムにして gps用perl スクリプトをちょっ
と改造してつなぐ
などの抜け道があるようです.(自分では確認してませんが)
動けばCなどでネットワークプログラミングをするより簡単かと.開発頑張って下さい.
0682まともに動いてない ◆/8LpUMqVAk
NGNG私の場合、クラスを使うのはオブジェクト指向の勉強を兼ねて、行く行くは本業の開発効率を高めることが目的です。
だからかまだまだセンスの悪い、バグに発展しそうな部分がたくさん残っていそうです。
トップクラスのソフトが名人を倒す頃になってもなお自分のプログラムをこねくり回している気もしますが、
まあ気長にボチボチと続けるつもりです。
>>681
お久しぶりです。
まとめページ更新感謝です。
鬱病じゃないけどまた一人会社を辞めるみたいで、日曜プログラミングに充てられる時間が更に減りそう(泣)。
とりあえず次世代に期待。
>- RS232Cで指せる様にしてから,K-Shogiをブリッジに使う
RS232Cって、懐かしいですね。
一応、ソケット通信は出来るようになったのですが、ソケット通信には対応していないのでしょうか?
あと、差し支えなければプロトコルも教えて頂けませんか?
>- stdin/stdout でやりとりするプログラムにして gps用perl スクリプトをちょっ
>と改造してつなぐ
UNIXなどで、ソケットをあたかもファイルハンドルのように使うということでしょうか?
>などの抜け道があるようです.(自分では確認してませんが)
>動けばCなどでネットワークプログラミングをするより簡単かと.開発頑張って下さい.
一応動きますが、二歩を禁止したり千日手ルールを組み込んでいなかったり、
まだ欠陥が多いです。
二歩防止の解決方法は分かっている(指導教官から教わった)のですが、
千日手ルールは同一局面を4回繰り返すことなので、始まりからの全ての状態を
保存する必要があって、少々大変です。
解決方法は分かっているのですが、それを実装する気力が低下している状態で、
はっきり言ってメンヘラ状態なので、どうか生暖かく見守ってやって下さい。
0684デフォルトの名無しさん
NGNG>保存する必要があって、少々大変です。
あははw
0687デフォルトの名無しさん
NGNG>保存する必要があって、少々大変です。
俺も、あははw
将棋のルールぐらい知ってから語ってください。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG>将棋のルールぐらい知ってから語ってください。
もっと詳しく。
0690まともに動いてない ◆/8LpUMqVAk
NGNGあっしも知りたい。
・同一局面が4回現れた場合千日手となり、無勝負指し直しとなる。
・(連続王手の千日手の禁止)連続王手での千日手は王手している側が指し手を変更しなければならない。
これじゃいかんの?
0691デフォルトの名無しさん
NGNG0692 ◆g1oZzVyfEE
NGNG昔は、「千日手=同一手順3回」でしたが、それだと永久に終わらない場合が存在するので、
1983年4月1日から「同一局面4回」に変更されました。
きっかけは、1983年3月8日に行われた名人戦挑戦者決定リーグ(現在のA級順位戦)第8戦
米長邦雄−谷川浩司 戦でした。
証拠→ttp://www.webspace-jp.com/~mozu/mozuiro/moromoro/senkou.html
数学的証明は数学板で聞いてみて下さい。
日本将棋連盟→ttp://www.shogi.or.jp/osirase/qa.html
>2003年11月に日本将棋連盟より発行された「将棋ガイドブック」という本にルールが一通り掲載されています。
>お近くの書店で購入されるか、こちらのページでご注文願います。
証拠を2つ挙げましたが、将棋板でも聞いてみて下さい。同じ答えが返ってくるはずです。
当方は将棋の(中途半端な)素人ですが、これくらいのことは知っています。
人を笑う前に、ちゃんと正式なルールを確認してソースを出すくらいのことはして下さい。
はっきり言って、本当のルールも知らずに思い込みだけで安易に人を嘲笑う人って、すごく腹が立ちます。
メンヘルのせいもあって異常な眠気に襲われて、あれから進展なしです。
期待されている方々、本当にすみません。
0693まともに動いてない ◆/8LpUMqVAk
NGNG変更前のルールってこれですか?
将棋で、双方が同じ指し手を繰り返す状態。三度繰り返した場合、無勝負として指し直
しとなるが、王手の連続である場合、攻め方が指し手を変更しなければならない。千遍
手。三省堂『大辞林 第二版』
たしか、同一局面が無限に現れるのに異なる指し手を指し続ける事が出来ることが、ある
対局で示されたと読んだけど。
0695デフォルトの名無しさん
NGNGイライラしたってしょーがないさ。ちゃちな煽りは鼻で笑いつつソースを貼る
くらいの度量がないと(`・ω・´)
ま、あせらずやりましょーや。
# 竜王戦も始まったことだし俺もそろそろたまってる宿題かたずけんとなぁ…orz
煽りだったら別にいいんですけどね。
本当の勘違いだったらプログラムそのものに影響が出ると思ったので、
つい本気で書いてしまいました。
0697デフォルトの名無しさん
NGNG本気なら、軽軽しくメンヘル云々なんて書くな。
0698デフォルトの名無しさん
NGNG0699まともに動いてない ◆/8LpUMqVAk
NGNG>RS232Cって、懐かしいですね。
>略
>あと、差し支えなければプロトコルも教えて頂けませんか?
RS232Cプロトコルも>>3のTCP/IP通信プロトコルのページの下の方にリンクがありますよ。
>UNIXなどで、ソケットをあたかもファイルハンドルのように使うということでしょうか?
否。Perlのpipe, fork, exec関数を使ってサーバー⇔Perlスクリプト⇔自前のプログラムとすることだと思う。
「サーバー⇔Perlスクリプト」間はソケット、「Perlスクリプト⇔自前のプログラム」間はパイプ。
で、後者が出来るようにPerlスクリプトを改造する必要があると思う。
これで如何でしょう?
0700デフォルトの名無しさん
NGNG>一応、ソケット通信は出来るようになったのですが
お,早いですね.そしたらまず>>3の一つ目のリンクのCSA公式プロトコルを実
装すると,GPW杯にも出られるしwdoorにもつなげられるのでお勧めかな.
wdoorにつなげるなら拡張プロトコルの方が楽しいけど最初はちょっと面倒だ
と思うので.
RC232Cは,今までのコンピュータ将棋選手権で使われていた通信方法だったりします.
そのうち>>3のネットワークプロトコルに移行しそうですが.
あと,二歩はともかく千日手は後回しにしても充分対局を楽しめるのではないかと.
0701デフォルトの名無しさん
NGNG>「サーバー⇔Perlスクリプト」間はソケット、「Perlスクリプト⇔自前のプログラム」間はパイプ。
>で、後者が出来るようにPerlスクリプトを改造する必要があると思う。
その意味でした.自前プログラムを起動する時のオプションの与え方くらい改
造すれば動くかなと思いますが未確認です.ただ,>>683 の方はもうソケット
対応されたようなので,自前でやった方が早いかもしれないですね.
0702 ◆g1oZzVyfEE
NGNG>>697
実は、精神的に問題を抱えていることは本当で、通院もしております。
「メンヘル」という言葉がふざけた印象を与えてしまうとは知りませんでした。
すみません、以後気をつけます。
>>699
>RS232Cプロトコルも>>3のTCP/IP通信プロトコルのページの下の方にリンクがありますよ。
ありがとうございます。後で読んでみます。
>否。Perlのpipe, fork, exec関数を使ってサーバー⇔Perlスクリプト⇔自前のプログラムとすることだと思う。
>「サーバー⇔Perlスクリプト」間はソケット、「Perlスクリプト⇔自前のプログラム」間はパイプ。
>で、後者が出来るようにPerlスクリプトを改造する必要があると思う。
>
>これで如何でしょう?
それはいい考えですね。
実は、C言語で Winsock で通信できるプログラムを作ってしまったのですが・・・
ちなみに、HTMLファイルなどのダウンロードくらいなら出来ます。
>>700
実は、卒業研究の関係もあって、「kiki table」(yssのHPを参照)の実装をしているところです。
早く wdoor にも繋げてみたいです。
0703デフォルトの名無しさん
NGNGがんばれ。
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG通信部分をDLL化して共有するといった試みはなされていないのでしょうか
各人で作ってねというのは酷く無駄なようにも見えるのですが
0706デフォルトの名無しさん
NGNGいっそ、思考部分だけをプラグインみたいに導入できるGUIを作れればいいんだけどね。
0707うさぴょんの育ての親
NGNGWindows版では、思考部分だけを導入できるGUIをソース付きで配布してますよ。
都万さんのCSA将棋がそれです。
「うさぴょん」のGUI作ったのは選手権に出て2年目以降だったし、
今でも通信の実装は面倒なので、そのGUIを使ってます。
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGデバッグにはよさそうだね。
0713デフォルトの名無しさん
NGNG金で香を取って飛角の田楽刺し、という局面があるとするじゃないですか
この時、コンピューターは
1.金で香を取った……香得
2.金を取り返された……金香交換の駒損
3.香を打って飛角両取……多分駒得
と一手ずつ深く読んでいくんですよね
候補手を一定数に絞る仕様になっていると、2.の段階で損になる、ということになって
候補から抜け落ち、この手順を選択しない、ということになったりしませんか?
0714うさぴょんの育ての親
NGNGそういう風に作ればそうなりますね。
なので、そういう風にならないように工夫するわけです。
0715デフォルトの名無しさん
NGNGhttp://www.computer-shogi.org/protocol/tcp_ip_server_11.html
0716まともに動いてない ◆/8LpUMqVAk
NGNGURLを削ると改訂前のが出るので比較が楽ですな。
0717 ◆g1oZzVyfEE
NGNGttp://gm.a-ark.net/~shogi/clip/img/54.lzh
0718デフォルトの名無しさん
NGNG#でもお節介焼きは指摘しまくるけどw
詳細は、Upload板の55参照で。
0719デフォルトの名無しさん
NGNG・pコマンド
正しく引き数を二つ取るように修正してみたが、駒を相手の駒として置いてしまう。
勿論二歩の判断もおかしなことになっている。
・nコマンド
成れない。
にも関わらず、香が最奥まで進軍できてしまう。
・コマンドの大文字小文字の判断
腐ってる。大文字でコマンドを入れるとコアを吐く可能性大。
#試す人はくれぐれもご注意を。
其々の指摘をするのはこちらの勝手なので一向に構わないのだが、
最低限動かしてみてから公開して欲しい。
この最後の指摘(最低限動かしてみろ)は二度目なので、次はないだろうなw
0720デフォルトの名無しさん
NGNGの絵を使ってもいいですか?
javaで将棋のフレームワークを作って公開しようと考えています。
プログラム自体は遅いと思いますので、
気軽に将棋のAIを作ってみたい人向けに作ってます。
0721デフォルトの名無しさん
NGNGそれの同梱の readme 貼っとく
・ブツ
将棋駒画像
・画像フォーマット
アルファチャネル付きPNG
・画像サイズ
45pixel×50pixel
・プログラムに同梱、内蔵
OKです。
・再配布
できればやめて。
・駒画像の改造
適当にOK。
・つくったひと
「おまいら最強の将棋プログラムしてみろよ Part3」の884
http://pc5.2ch.net/test/read.cgi/tech/1064984089/
0722デフォルトの名無しさん
NGNGあるいは、ダウンロード用に直接リンク貼っていいですか?
0723デフォルトの名無しさん
NGNG普通はそういう解釈になると思います
直りんはアプローダーのアドレスが変わったときにトホホになるよ(w
0724デフォルトの名無しさん
NGNG#今一番古いのが6番? 後6回書き込まれたらアウト。
0725デフォルトの名無しさん
NGNGうげ、そんなことになってるとは(大汗
とりあえず記事数制限増やしました
0726デフォルトの名無しさん
NGNGあやまれ、1〜5にあやまれ!! (AA略
0727デフォルトの名無しさん
NGNGテキトーなところで、今回の駒画像みたいな汎用性のあるものについては
別の場所に保存してリンクを貼っといてくれれば嬉しい
あぷろだはファイル置き場とは違うからな
0728デフォルトの名無しさん
NGNGといいつつインターネット将棋でいまだ勝ち星ないのでした 残念
0729 ◆g1oZzVyfEE
NGNG将棋プログラムの御専門の先生と共同開発している関係上、
あまり高度なプログラムのうpは差し控えさせていただきます。
これは逃げではありません。来年の9月までに(もし)特許を出願できれば、
その後に(同一トリップで)公開する予定です。
でも、出来るだけバグの少ないプログラムをうpするようにします。
今までバグを指摘してくれた方、感謝と共にお詫びしますm(._.)m
0730デフォルトの名無しさん
NGNGこのスレから盗めるだけ盗んで特許取得でつか
0731デフォルトの名無しさん
NGNG死ねよメンヘル野郎
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGこちらもアイディアも出すに吝かじゃないけど、
貰うだけ貰って1年間出しませんってのは確かに鳥滸がましいねぇ。
特許出願となれば(ここではないとはいえ)公開するのは当然だから、
「公開する予定です」なんて台詞は逃げ口上にしかならないね。
まぁ、恥を掻かない程度にいいものができることを期待していますよ。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG特許だけではなくて、研究の場合も
発表するまでは非公開にするべきなんだけどね。
実験データをコンピューターから引き出されて、
そのデータで先に発表されて、研究おじゃんって話もあるし。
0738デフォルトの名無しさん
NGNG重要な部分を除いたバージョンをアップすると意味かな?
だとしたら、それもお奨めできないな。
間違って、開発版とかアップした時に悲惨だからね。
0739デフォルトの名無しさん
NGNGレベルが低すぎる。その先生に聞きなよ。
あんなレベルの低いプログラムしかかけないのに、特許なんてむりだよ。
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGそれは言えてる。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG何か面白い話題ないですかね?
0746まともに動いてない ◆/8LpUMqVAk
NGNGない。
つまらない話ならちょいと…。
私のまともに動いてないプログラムなんですが、なんとか詰みまで辿り着いたものの%TORYO辺りがやっぱりまともに動いてない。
ヌル ゚になる直接の原因は分かっているのだが、あまりに騒々しい環境なんで調べる気が起こらない。
深夜は静かで善いけれど反動が本業に差し支えてしまう。
皆さんの開発環境は静寂ですか?
0747デフォルトの名無しさん
NGNG>深夜は静かで善いけれど反動が本業に差し支えてしまう。
とりあえずプロ倒して世間に名を売って
会社に将棋開発部門を新設してもらえば無問題。
0748デフォルトの名無しさん
NGNG音楽をかけてしのいでます。
0749まともに動いてない ◆/8LpUMqVAk
NGNG耳の遠くなった父が大音量で観るんのだが、「五月蝿い」と言うと、「何でも自分の思い通りになると思ってたらあかんぞ」って返される。
老いても父だし、楽しみを奪うのもなんかなあと思う。
アンテナ線の引き回しが面倒だけど、テレビの移動を提案してみる。多分、駄目っぽい。
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG高音質なヘッドフォンを買って使ってもらうとか
0752デフォルトの名無しさん
NGNG0753まともに動いてない ◆/8LpUMqVAk
NGNG電波で飛ばす奴ならあるんですけど、私が観たい番組もあって、しかし間があると速攻でチャンネル切り替えられて、
運良く元に戻るかもしれないので結局観てしまう(伏線ばかりで結末の分からない映画、ドラマ、クイズがいっぱい(泣))。
そういう訳で電波で飛ばす奴は使ってない。
0754デフォルトの名無しさん
NGNGつーか、自分を納得させる言い訳?
0755デフォルトの名無しさん
NGNG0756まともに動いてない ◆/8LpUMqVAk
NGNG>結局、自業自得。
>つーか、自分を納得させる言い訳?
多分、言い訳。
将棋にもプログラミングにもほとんど関係ないつまらない話ですんません。
0757デフォルトの名無しさん
NGNG局面にインデックスつけるような手法に興味あるんですが、
チェスとか他のゲームも含めて、読んどけっていうのがあったら情報ください。
0758デフォルトの名無しさん
NGNGハッシュ以外なんかあるの?
0760デフォルトの名無しさん
NGNG0761757
NGNGk-means ですか。その方向考えてませんでした。
局面間の距離をどうするかとか、初期点をどうとるのか、とかはまあ考えるとして、
そもそも k をいくつにとれば、使い物になる類似局面がでてくるのかが謎。
でも実装できちゃえば、(人間による)戦形分類との比較なんかしたりして面白そうです。
0762まともに動いてない ◆/8LpUMqVAk
NGNGkの求め方ならこんなんありますけど…
クラスタ数Kをどうやって決めるか
・事前の知見がない場合には、様々な数学的、統計的基準を用いる。
・ただし、これらによる計算結果を妄信してはいけない。必ずその数Kの妥当性を知見に照らして吟味することが必要。
代表的手法
・群内距離・群間距離法
・情報量基準法
役立ちそうにないっぽい
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG割り当てて全体を64bit程度のKeyにして局面と同時に登録してソートして
やれば高速に検索できそうな希ガス。
王には4bit、香には1bit、とかで。
0765デフォルトの名無しさん
NGNG部分一致の定義による
0766デフォルトの名無しさん
NGNG->部分的な形
・盤面を(厚さ1〜3のリング)で分割してハッシュ化
->通常予想される大駒の利きや王等の位置関係
・盤面を(厚さ1〜2の斜線)で3(中央)×2(反対)個をハッシュ化
->通常予想される大駒の利きや王等の位置関係
・大駒,玉の位置関係でハッシュ化
・持ち駒の有無
・戦形の基本図の有無
0767デフォルトの名無しさん
NGNGコンピュータは強くていいから
0769757
NGNGほぼ同案が"将棋 盤面 ハフマン"でぐぐると出てきますね。
ただ局面をどんなに小さくエンコードしても、検索は最善で O(n) なのが痛い。
(n は全局面数。ヒットした局面数ではなく。)
0770デフォルトの名無しさん
NGNG常に置けるとこが一番多いところに置く、という超単純アルゴリズムに負ける
という漏れにも理解できる単純で強い
オセロの思考アルゴリズムないでつか
0771デフォルトの名無しさん
NGNG意味がわかるようにもういっぺん書き直してくれ(w
0772デフォルトの名無しさん
NGNG棋譜ごとに特徴データを持たせるのはどうかな?
王が88に動いた棋譜には王が88に動いた、というビットを立てて
王だけで81ビット、金銀も入れて先手後手も考えると
500ビット、ぐらい、、、たくさんすぎるかも。
しかも結局棋譜の数だけのリニアサーチだし、、、orz
0773デフォルトの名無しさん
NGNGttp://www.cv.its.hiroshima-cu.ac.jp/~kazutaka/othello/index.html
ttp://fujitake.dip.jp/sealsoft/index.html
0774デフォルトの名無しさん
NGNG相手の置くところが一番少なくなるようにしてみれ
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGそしてこれがけっこういいとこを突いているわけでそれなりに強いわけだ
0777757
NGNGさんくす。有用そうなキー(の組み合わせ)をどう定義するかが問題ですね。
>>772
うんにゃ。基本的にはその線は有望かと思います。
ただ棋譜ごとにデータを持たせるってところが逆かと。
0778デフォルトの名無しさん
NGNG>しかも結局棋譜の数だけのリニアサーチだし、、、
int配列の固定長のハッシュだったら
intをカテゴリで分けるとかして
ソートしておけば対数時間じゃないの?
0779まともに動いてない ◆/8LpUMqVAk
NGNG行き場の無い駒は解決したっぽい。
で、負けたときに"%TORYO"を送って
%TORYO
#RESIGN
#LOSE
が返って来るのを確認した所で今日は終り。
とろとろとやってます。
そのうち出来てひっそりとupするっぽい。
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNGおつかれ。気長にがんがれ。
0782デフォルトの名無しさん
NGNG0783まともに動いてない ◆/8LpUMqVAk
NGNG今は先手後手の二つのスレッドで人側が負けたとき人側のスレッドは正常に終了したのに、
サーバー側のスレッドが正常に終了しない…と書いてたら原因っぽいのが見えてきた。
人側が手番を離さないで終了しているみたいだ(笑)。
0784デフォルトの名無しさん
NGNG途中までしかできていませんが、
公開したらコメント等いただけますか?
0785デフォルトの名無しさん
NGNG0786うさぴょんの育ての親
NGNG公開楽しみにお待ちしております。
ついでに宣伝。
コンピュータ将棋選手権が、来年度の選手権より
「思考ルーチンにライブラリの使用を認める」
ようにルールが変わりました。
来年度の選手権で使用可能なライブラリとして、うさぴょん2になる予定だった
もののフレームワーク部分を登録する予定です。(VC++で動作を確認して
いますが、多分フリーのBorlandCコンパイラでもコンパイルできる…はず)
選手権に参加してみたいけど、スクラッチから全部ビルドは無理だと諦めていた方
でC++使いの方がいれば是非使ってみてくださいまし。
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNGecho "王手!"
0790デフォルトの名無しさん
NGNGprint "却下\n”;
0791デフォルトの名無しさん
NGNGSTDOUT.print("負けました\n");
0792うさぴょんの育ての親
NGNGフレームワーク、「れっさーうさぴょん」こと「れさぴょん」を今日公開しました。
http://homepage1.nifty.com/Ike/lesserpyon/
VC++では、ビルドして対人で将棋がプレイ出来ることを確認しました。
BorlandC++用のMakefileも書いてみたのですが、リンク時に
謎のエラーが出ます(−−;
これについては、もし誰か原因が分かる方がいたらこのスレでレス下さいまし。
0793デフォルトの名無しさん
NGNGBorlandC++は知りませんがたぶん OBJS に Joseki.o が必要かと
0794うさぴょんの育ての親
NGNGBorlandC++で動かないのは何か複雑なわけがありそうです。
.objが足りないのは直しましたが、リンクで、
Fatal: Error detected (IMP302)
Fatal:
なんて出るのって一体何が悪いのかさぱーりわからん。
0795うさぴょんの育ての親
NGNGぐぐってみたら、ソースファイルが大きいとなることがあるとか書いてあった。
しかし、ソースが8Mとかそんなに巨大なサイズじゃないのだけどなぁ。
巨大な配列を宣言しているのがいかんのかなぁ?
0796デフォルトの名無しさん
NGNGgccの-Wall -pedanticでコンパイルしてみることをお勧めしておきます。
0797うさぴょんの育ての親
NGNG#明日にでもやってみよう…。
0798うさぴょんの育ての親
NGNGif (ss=3 && ...) の箇所は明らかにif (ss==3 && ... ) だね。
kyokumen.cppの中で、<<=1とするべき箇所が<<1になっているのも複数箇所見つけた。
結構恥ずかしい間違いだなぁ。
まぁ、あとはVC++とISOで動作が違う部分の指摘なので、こんなもんでしょうか。
0799デフォルトの名無しさん
NGNGkyokumen.cpp:46: warning: too few arguments for format
kyokumen.cpp:510: warning: left-hand operand of comma expression has no effect
kyokumen.cpp:510: warning: value computed is not used
kyokumen.cpp:895: error: `max' undeclared (first use this function)
kyokumen.cpp:2148: error: name lookup of `dir' changed for new ISO `for' scoping
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG「コンピュータ将棋4」の論文読んでもまったくわからん・・・。
プログラムリスト見ながらある程度まで実装できたんだが、このままでは長手数の問題は解けそうにない。
誰かいい論文あったら教えてくれー。
0802うさぴょんの育ての親
NGNG46行はデバッグのためのが中途半端に残っているので削除
510行は、>>798で言及した、<<=1が<<1になっているやつ。
895行は、ヘッダの中のmax関数を有効にしてくれ。
2148行は、for(int i=0;i<xx;i++) {のようにして宣言した変数のスコープが、
ISO規格だとfor文の中のみで有効、VC++ではfor文から抜けても有効、という
問題なので、
int i;
for(i=0;i<xx;i++) {
のように書き換えれば解決。
>>800
情報サンクス。全然わかりませんですた。
>>801
今年、確かGHI問題に対する一般的な解法についての論文がアルバータ大の
岸本さんから出ているので、それを探して見ては?
#探してみつかるかどうかは分からないけど。
ところで、コンピュータ将棋の進歩4の方法は、Ad-Hocな方法だけど、
詰将棋には有効だと思うんだけど、あれ、どこが分からなかった?
実装が遅そうなのは私も思うけど。
0803デフォルトの名無しさん
NGNG乙。
VC6は捨てよう。
0804うさぴょんの育ての親
NGNG0805デフォルトの名無しさん
NGNG0806うさぴょんの育ての親
NGNG0807デフォルトの名無しさん
NGNG/G7オプションとかあるし絶対VC7がお勧めだよ
最近コンピュータ将棋に興味出てきた。
CSAプロトコルしゃべるだけのプログラム作るので、
うさぴょんもCSAプロトコルしゃべるやつ作ってください。
UI作るの大変だから(w
0808うさぴょんの育ての親
NGNGうさぴょんは、CSA将棋と組み合わせればCSAプロトコル喋るので
それで勘弁して下さい(^^;
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG自分でmaxとmin書いてた
0813デフォルトの名無しさん
NGNG#define for if(0); else for
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGhttp://gps.tanaka.ecc.u-tokyo.ac.jp/osl/pukiwiki.php?%5B%5Bosl-for-csa%5D%5D
れさぴょん .h と .cpp の合計がちょうど4000行ですね
負けたと思いました(笑)
0816うさぴょんの育ての親
NGNGでもGCCやBorlandC++のようなISO準拠コンパイラじゃ通らん
というバグ報告が上がっているのでちょっと行数が増えちゃいます(w
惜しかったなぁ(w
0818デフォルトの名無しさん
NGNG圧縮ファイルのサイズおよび展開後のサイズ等も、
表示していただけるとうれしかったりします。
サブセットと書かれてあったので、容量が小さいかと思いきや、
doxygen用のファイルが・・・(^^;
0819うさぴょんの育ての親
NGNGコメントで水増しすれば(笑)なるかも。
0820デフォルトの名無しさん
NGNGわはは、確かに12MB超ってすげぇよな。
0821うさぴょんの育ての親
NGNG見逃してた〜。
PDSでもGHI問題は起きます。
0822デフォルトの名無しさん
NGNGwebにサイズ追加しました
展開するとdoc だけで76MBもありますね
次はパッケージング考えないとなあ
あと補足ですが選手権で使えるかどうかは審査待ちですのでその点御了承下さい
0823th
NGNGhttp://gm.a-ark.net/~shogi/clip/clip.cgi?
実行するクラスは
jsf.gui.Main
です。
コメントよろしくです。
0824th
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGjdkのバージョンは1.5でお願いします。
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831th
NGNGホームページを作ってクラスの解説を少し。
http://www.geocities.jp/jshougi/
ランダムに手を打つプレイヤーを作って、
それらが対戦してるところを眺めるところまでできました。
最新版はホームページの方にアップしました。
れさぴょんにはとてもかなわないので
アンチC++なJavaプログラマー向けフレームワークになりそうな気がしてきた。
0832まともに動いてない ◆/8LpUMqVAk
NGNGあっしは休んでいいのなら年末年始にダウンロードしてみようかと思ってま。
0833うさぴょんの育ての親
NGNGあと、JDKの1.5なんてそんなに新しいの入れてないもので(苦笑)
0834デフォルトの名無しさん
NGNG0835wdoor事務所
NGNGご迷惑をおかけします.
記録によると shogi-server は10/25以来事故もなく約2ヶ月間稼働しているの
ですが,停電で連続運用記録が途切れてしまって残念ですね
0836うさぴょんの育ての親
NGNG「れさぴょん」の本の原稿の締め切りが新年早々にあるので、コメントは
締め切り過ぎてからで。ほんとにスマソ。>thさん
0837wdoor事務所
NGNGお大事にです > うさ親さん
0838デフォルトの名無しさん
NGNG>「れさぴょん」の本の原稿の締め切りが新年早々にあるので
おお素晴らしい。
期待してます。
>締め切り過ぎてからで。ほんとにスマソ。>thさん
つまらないものなので、本当に暇な時にちょこっと見てください。
適当な評価関数を作って、ただの木探索をいれてやってみたんですけど
すごい弱かったorz
0839うさぴょんの育ての親
NGNG0840デフォルトの名無しさん
NGNGまた遊んで下さい.
0841デフォルトの名無しさん
NGNGりょーかーい。
大晦日から元旦にかけてサービス残業してなけりゃ…プログラムいじり倒しま。
thさんのも見たいし。
どーでもいいんだが、この頃原因不明の頭痛やめまいを感じるようになった。疲れてんかな。
0842デフォルトの名無しさん
NGNGとりあえず病院へいってきなはれ
0843th
NGNG現在、決定木で学習できるように改良中です。
0845デフォルトの名無しさん
NGNGそこで世の中でソースが公開されているものを利用する方向で試そうと思いましたが、
openshogilib make失敗原因良く分からず。g++ にparse errorと言われるのでお手上げ。
osl-csa make通った。が説明が少なくこれを使うのは厳しそう。でもtemplateいっぱいで速そう。
れさぴょん まだ触っていない。
とりあえず一通り見てみたいと思うので、他にあればご教授ください。
0846デフォルトの名無しさん
NGNG将棋関係では、公開されているソースは極めて少ないと思います。
さらに、それを「利用する」というのであれば、
そういう目的で公開されている osl、osl-for-csa、れさぴょん、
ぐらいしかないのでは?
0847うさぴょんの育ての親
NGNG他に「利用しない」前提で公開されているのは、
・うさぴょん
・将棋もば
・デーモン将棋
くらいかな?
あと、弱いけど、利用することが可能なのは
・GNU Shogi
くらい?
でも、「CSAの大会に出たい」と思って利用できるのは、
http://www.computer-shogi.org/library/
に乗っているものだけですね。
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGしてるんなら俺も参加したい
0850デフォルトの名無しさん
NGNGunofficial shogi server for computer programs
http://wdoor.c.u-tokyo.ac.jp/shogi/
0851 【大吉】
NGNG0852 【623円】
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGランダムな着手で良ければw
http://www.geocities.jp/jshougi/
0855 【小吉】 【456円】
NGNGお聞きします、
フリーセル(Win付属等)で、カードが自動的に場に出される時の条件は
どうなっているのでしょうか。
ゲーム終盤、ここ動かせば終わるんだろうなぁと言う事は解るのですが、
序盤での挙動がイマイチ解らず、はっきりと式に出来ません。
0856【吉田】
NGNG0857デフォルトの名無しさん
NGNG前後のパターンをとことん調べてみるとか、
あと、フリーセル自動解答プログラムなんてものもあるから
そういうサイトをたどってみると、どっかに書いてるかも。
そのカードを場に出すことによって他のカードの動きを阻害しないことが確定的な場合。
具体的には、例えば場に2が3枚(仮にハート以外)出ているときにハートのAが出たら場に積まれるが、
既に出ているスートの3(例えばスペード)が出ても場には出さない。
何故ならば、タブローでスペードの3にハートの2を重ねる可能性があるから。
詳細は自分で観察して見れば境界条件がわかると思う。
0859!omikuji !dama
NGNGその場合、初期状態で、H2の下にS3が載っていれば、勝手にS3を出した
後にH2を出しますよね・・・場のカードだけじゃなく、列も監視しないといけ
ないんでしょうか・・・
>>857
かなり探し回ったつもりですが、見つかりませんですた。
0860857
NGNGSS撮りながらやってみたのですが、
ホームセル D2,S2,C2,H0(なし)
フリーセル H7
列1 H3-D3-H1-DQ…
列2 省略
列3 省略
列4 省略
列5 なし
列6 S4-D5-C6-D7…H5
列7 C3-H4-S5-D6…
列8 H2-S3-D4-C5…C4
の状態から、H3をフリーセルに移すと、
ホームセル D4,S5,C3,H4
フリーセル H7
列1 DQ…
列2 省略
列3 省略
列4 省略
列5 なし
列6 D5-C6-D7…H5
列7 D6…
列8 C5…C4
になりました。
1ゲームで数回はチャンスがあるので、数を集めてみてはどうでしょうか?
0861デフォルトの名無しさん
NGNGGoogleも知らんのか?
つっても、フリーセルあらしのサイトにはたいした情報はないが。
0862855
NGNGそのケースから考察すると、D56が出ないのは、D5に乗せるかも知れない
C4がまだ出ていないからで、C4が出せる位置にあれば、C456 D567
を出せるが、ホームのH4から、H5を乗せる可能性のあるC6は出ない、
D6もC5が乗る可能性はあるが、先にC5が出されて、D6もお払い箱。
C45 D56が出されて、D6 S5 C5 H4 になるのかな、等と想像しても、
何だか全く違う結果になるんですよね・・・orz
>>861
場に出されるカードの規則について触れてるサイトがです。
0863デフォルトの名無しさん
NGNG↓コンピュータの思考ルーチン
コンピュータが適当に一手指す
while(1){
printf("降参しませんか?(Y/N)->");
if(入力がYなら){
break;
}
}
printf("あなたの負けです");
0864まともに動いてない ◆/8LpUMqVAk
NGNG次の休みに1.5をインストールしてみようっと。
$ javac -source 1.4 jsf/Point.java
jsf/Point.java:18: jsf.Point の clone() は java.lang.Object の clone() をオーバーライドできません。互換性のない戻り値の型を使おうとしました。検出値 : jsf.Point
期待値 : java.lang.Object
public Point clone(){
^
エラー 1 個
0866デフォルトの名無しさん
NGNG歩香角飛の不成を選択する理由ってのは
打ち歩詰めの回避のため、だけですか?
とりあえず駒動かせるところまでは完成したつもりだったんですが
本業が一段落したんで半年振りにソース開いて読んでたら死にたくなってきた・・
0867うさぴょんの育ての親
NGNG同じく棋力は14級のものです。
はい、歩角飛の不成りは、打ち歩詰めの回避以外には特に得する局面はありませんので、
打ち歩詰めの回避のためだけ、と言って構わないと思います。
香車の場合は、3段目では成らないことが有力な場合がありますので、2段目での
不成りが打ち歩詰めの回避のためだけの指し手になります。
0868デフォルトの名無しさん
NGNG詰将棋ならこんなパターンもありますよ
http://www.ne.jp/asahi/tetsu/toybox/kato/kato011.htm
0869うさぴょんの育ての親
NGNGあぁ、なるほど、詰め方だけでなくて受け方の方の関係で打ち歩詰めが関係する
ケースもあるわけですね。納得。
まぁ打ち歩詰め回避の不成り以上に実戦には現れにくそうな手筋ですが(笑)。
ところで、将棋プログラムでは、詰将棋ルーチン以外では歩角飛車、2段目の香の
不成りは、無視している=そんな手はそもそも生成しないものも多いですよ。
0870866
NGNGありがとうございます
いずれにせよ実戦での出現確率はとても低いということですよね
手の生成を詰みを探してるときとそうでないときでわけるのも
めんどうなので、とりあえずこのまま(不成の手を生成していない)
進めてみます
少し生きる希望がわいてきました
0871デフォルトの名無しさん
NGNG実は打ち歩詰回避、誘致以外にも不成りが有効な場合も(理論上は)ありえます。
不利な局面を千日手で引き分けに持ち込みたい場合で、
成ってしまうと連続王手の千日手で反則になってしまうが、
不成りだと途中の手が王手にならず通常の千日手にできるというものです。
理論上ありえるというだけで実際に手順を作ってみろと言われると私には不可能ですが。
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGね! ほりえもん
0876デフォルトの名無しさん
NGNGマルチコアCPUへの対応って普通にやってるの?
0877うさぴょんの育ての親
NGNGYSS、KCC、激指、うさぴょんはやってる。
それを普通と言うかどうかは知らない。
…考えて見たらうさぴょんのマルチCPU化なんてもう5年も前からやってるなぁ。
0878デフォルトの名無しさん
05/01/19 20:55:04これが 最強だ!! て まだ 指してません
拙者 24で 初段ですから 勝てるわけなし 残念!!
0879デフォルトの名無しさん
05/01/19 21:39:04キチガイにしか見えない・・・ドクター中松を仰いでるのかね?
0880デフォルトの名無しさん
05/01/20 03:46:45HSPで作ってるのに、感動した。
0881デフォルトの名無しさん
05/01/23 19:24:07プしておきます。主な変更点は
* csashogi.el: GAME の `*' に対応 (Thanks to kaneko さん)
* kifuview.el: 現在の盤面を CSA 形式の棋譜フォーマットでセーブする関
数 (kifuview-save-csa-logfile()) を追加 (Thanks to Hayashi さん)
* csashogi.el: MONITOR 機能に正式対応
* csashogi.el: サーバからのメッセージが分割されて渡された場合でも正
しく処理できるように
* csashogi.el: LOGOUT で heartbeat を止めていなかったのを修正
* csashogi.el: 盤の向きをトグルできるように (`s' キーにバインド)
* shogi.el: background が明るい時の
shogi-{player,opponet}-side-koma-selected-face の色変更
* csashogi.el, kifuview.el: 対局のトレース機能をちゃんと実装
* 駒の文字を手前側は「王」,相手側は「玉」に固定 (Suggested by
* kaneko さん)
* csashogi.el: SHOW の出力で駒のシンボルは漢字で表示するように変更
(Suggested by kaneko さん)
といったところです。パッチを送っていただいてた御二方、長らく放置プレイ
になって申し訳ありませんでした。
いつもながらテストが充分でないので変なところがあったらごめんなさい。
http://tokyo.cool.ne.jp/progn/shogi-0.12.tgz
0882デフォルトの名無しさん
05/02/03 12:32:030883デフォルトの名無しさん
05/02/03 19:14:23http://www.nhk.or.jp/zero/
0884奈々美
05/02/04 23:43:310885駒得少年
05/02/05 10:15:02ゆっくりですが始めました
0886デフォルトの名無しさん
05/02/05 17:09:16将棋の1局面を表現するには最低何バイト必要になりますか?
0887デフォルトの名無しさん
05/02/05 17:40:120888デフォルトの名無しさん
05/02/05 17:41:18詳しく!
よろしくおねがいしつ
0889デフォルトの名無しさん
05/02/05 17:45:01#2chで何言ってんだって? 至極ご尤も。
0890デフォルトの名無しさん
05/02/05 17:54:58なし 歩 香 桂 銀 金 角 飛 玉 と 成香 成桂 成銀 馬 龍 で15種類(0〜F)
4bit x 9 x 9 = 324bit
さらに先手後手識別用に 1bit 使って 5bit。
5bit x 9 x 9 = 405bit
40〜50バイトは必要(「駒なし」の部分が若干圧縮可能)
0891デフォルトの名無しさん
05/02/05 17:59:53「駒なし」と「歩」が多い
0892デフォルトの名無しさん
05/02/05 18:05:06既出
>>764 >>769
0893デフォルトの名無しさん
05/02/05 18:09:28ttp://www.geocities.co.jp/CollegeLife-Cafe/8331/shogi/shogi2.html
0894886
05/02/05 18:23:410895デフォルトの名無しさん
05/02/05 18:46:14>>893 にあがってるから多分もう見てると思うけど、こっちの方から見た方がいいよ。
http://www.geocities.co.jp/CollegeLife-Cafe/8331/shogi/
0896デフォルトの名無しさん
05/02/05 19:01:51www.nhk.or.jp/zero/
人工知能で名人を超えろ(2/5 放送予定) 土曜日19:00-19:44
人工知能の研究の中で、将棋やチェス、囲碁などの「ゲームプログラム」は
人間の論理的思考を分析する分野。チェスではすでにコンピューターが人間
をしのぎ、さらに複雑な将棋でも10年以内には名人を倒すソフトが生まれる
といわれるなど、近年めざましい進歩を遂げている。
0897デフォルトの名無しさん
05/02/05 19:21:060898デフォルトの名無しさん
05/02/05 19:46:550899デフォルトの名無しさん
05/02/05 21:07:14すでに知られていないですか。
柿木将棋で登録してバイナリエディタで変更点を探してみようかと思っています。
0900899
05/02/05 22:54:560901デフォルトの名無しさん
05/02/05 23:00:19頑張れば解読できるかもしれないけど
0902899
05/02/05 23:27:37記録手数はふつうに一ずつ増えてます。
多分解析されないような暗号ではないとは思うのですが。
容量を減らす工夫くらいだと思います。しかしスキルがなく判りません。
0903デフォルトの名無しさん
05/02/05 23:44:000904デフォルトの名無しさん
05/02/06 00:57:03どういう構造にするのが適切ですかね?
0905デフォルトの名無しさん
05/02/06 08:32:03ttp://www.geocities.co.jp/CollegeLife-Cafe/8331/shogi/
>>764 >>769 >>890
0906デフォルトの名無しさん
05/02/06 08:41:56またそれか。
それだと持ち駒の保持が記録されてないよ。
持ち駒を入れると(81+20+20)×5 = 605ビット
必要になる。
位置、持ち駒を記録するのは7ビット、敵味方、成駒を記録するのに2ビット
40×9= 360ビット
後半の方を圧縮したほうが効率よくないか?
0907デフォルトの名無しさん
05/02/06 09:15:59>持ち駒を入れると(81+20+20)×5 = 605ビット
>必要になる。
持ち駒の場合は3ビットで表現できるから81×5 + 20×3 = 465ビットだな。
0908まともに動いてない ◆/8LpUMqVAk
05/02/08 03:11:160909デフォルトの名無しさん
05/02/08 03:50:540910まともに動いてない ◆/8LpUMqVAk
05/02/08 04:10:11眠れないので持ち駒含めて281ビットの訳をば。
・持ち駒は後で
・駒は盤上の有無ビットを加えて6ビットとする。
81*6=486
・有無ビットが無の時、残り5ビットに意味はないので有無テーブルと駒情報に分ける。
81+81*5=486
・有無テーブルで有が出てくる順に駒情報を詰める(無は不要なので削除)。
81+40*5=281(41*5が不要)
・持ち駒と盤上の駒の総数は同じなので有無テーブルの有の数の駒情報の後の空いた部分に持ち駒情報を間借りさせる。
で、どうでっしゃろ?
0911デフォルトの名無しさん
05/02/08 04:13:3681*6=486
いきなりおかしいw
0912まともに動いてない ◆/8LpUMqVAk
05/02/08 04:19:40すんません。やっぱり私は駄目なんだー!
0913デフォルトの名無しさん
05/02/08 04:31:46・盤上の駒の有無は81ビットで表現できる。
・駒の種類は15種類なので敵味方識別を入れても5ビット
・駒のある場所順に駒の種類を持てばいいから40駒*5ビット
∴81+40*5→281ビット
と考えれば医院で内科医?
0914まともに動いてない ◆/8LpUMqVAk
05/02/08 04:40:57現世に絶望、来世に期待。
0915デフォルトの名無しさん
05/02/08 05:41:07それいい。
81ビットのところは連続する0、1でまだ圧縮できそうだし
5ビットのところは歩が多いことでハフマン符号化できそうだし。
0916デフォルトの名無しさん
05/02/08 07:40:17自分より強いアルゴリズムって作れる物なの?
0917デフォルトの名無しさん
05/02/08 09:10:050918デフォルトの名無しさん
05/02/08 09:43:130919913
05/02/08 10:26:32いや、>910あればこその>913だから。
つーか、既出じゃないの?
>>915
なるほど、横スキャンなら初期位置では必ず27ビットの0が連続するわけだしね。
あ、でも、縦スキャンの方が駒の順序が入れ替わりにくいから局面間圧縮が効くのかなw
#どっちみち、展開に時間掛かりそうですが…
0920デフォルトの名無しさん
05/02/08 11:27:26111111111010000010111111111
000000000000000000000000000
111111111010000010111111111
初めの配置だとこうなりますが実戦譜から十分多くのパターンを
調べておいてパターンが多く現れるものに短いビットを与える
辞書を作っておくといいと思います。
0921まともに動いてない ◆/8LpUMqVAk
05/02/08 12:18:23>つーか、既出じゃないの?
既出です。281ビットは十数年前のコンピュータ将棋の本に出てきます。
>#どっちみち、展開に時間掛かりそうですが…
展開はそんなに重要ですか。
2百数十ビットの一意な鍵番号が得られたなら
((鍵,評価)(手1,鍵1)(手2,鍵2)…(手m,鍵m))
で順方向のデータができますが、鍵の探索はO(n),O(log n),O(1)?
平日休日問わず社内泊サービス残業してたら死にたくなりませんか?
0922デフォルトの名無しさん
05/02/08 13:10:57なれば局面検索が早く出来そうですが。
しかし、局所局面の検索が不便になります。
実用的には圧縮はしないほうがいいですかね。
0923913=919
05/02/08 15:22:09単に展開が面倒だと思っただけですし。
社内泊こそしないものの、休日はずっと仕事してます。
そろそろ死にたくというより、死ねます。
0924デフォルトの名無しさん
05/02/08 15:45:46おねがいします。
0925デフォルトの名無しさん
05/02/08 15:48:01本人に聞け
0926デフォルトの名無しさん
05/02/08 16:00:43どなたか柿木の定跡ファイルフォーマットを解析してもらえないでしょうか。
粘ったんですが出来なかったです。
0927まともに動いてない ◆/8LpUMqVAk
05/02/08 19:19:03>粘ったんですが出来なかったです。
まともに動いてないプログラムをたくさん作るのが得意な私でよければ、どこまで粘って何が分かって何が分からなかったか経過を教えてほしい。
0928デフォルトの名無しさん
05/02/08 19:58:37↓これくらいしか判らないです。
・判っていること
アドレス100〜に手数がカウントされている
・一手指したときに変化するアドレスの例について。
アドレス 初手26歩 初手36歩 初手16歩
00550〜 31 32 33
02000〜 A8BA 9684 A2B0
アドレス 初手58王 初手58金右 初手58金左
00550〜 31 32 33
02000〜 88 82 F6
0929まともに動いてない ◆/8LpUMqVAk
05/02/09 03:43:46それはどちらの形式ですか?
柿木将棋III・柿木将棋IV用の定跡ファイル(*.KJK)
柿木将棋V/VI/VII用の定跡ファイル(*.KJ2)
0930まともに動いてない ◆/8LpUMqVAk
05/02/09 05:02:46KJSK1.00]V7.10C:\Program Files\KShogi7\定跡\persimmon.kj2
# od -a persimmon.kj2 | head
0000000 K J S K nul nul nul nul 1 . 0 0 nul nul nul nul
0000020 ] o stx nul nul nul nul nul soh nul nul nul V 7 . 1
0000040 0 nul nul nul C : \ P r o g r a m sp F
0000060 i l e s \ K S h o g i 7 \ dc2 h dle
0000100 U \ p e r s i m m o n . k j 2 nul
0x100にあるのは跡の2バイト目
0931928ではないが
05/02/09 05:39:24先頭の512バイトはヘッダー(無意味?)
以後、局面が増える度に100バイトずつ増えて行く
という話でしょう。
後段は私にも意味不明だが、100バイトごとの中での変化について言いたいんじゃないかな。
0932まともに動いてない ◆/8LpUMqVAk
05/02/09 06:29:32頻出文字列でアスキーダンプを検索するとf?MbxYWTsubC1VL}がよく出てきます。
# strings persimmon.kj2 | sort | uniq -c | sort -nr | head -1
11621 C1VL
# od -a persimmon.kj2 | grep "C 1 V L" | more
3200バイトの周期で現われる。
意味ありげだけど何だか分からんです。
0933デフォルトの名無しさん
05/02/09 07:17:50初手76歩好手を76歩悪手に変えたときの変化について。
(初めの値、更新後の値)
adr = 0000001F (31, 30)
adr = 00000024 (43, 44)
adr = 00000035 (4B, 6B)
adr = 00000036 (53, 73)
adr = 0000003C (5C, 64)
adr = 0000003D (92, 5C)
adr = 0000003E (E8, 92)
adr = 0000003F (90, E8)
adr = 00000040 (D5, 90)
adr = 00000041 (5C, D5)
adr = 00000042 (70, 5C)
adr = 00000043 (65, 70)
adr = 00000044 (72, 65)
adr = 00000045 (73, 72)
adr = 00000046 (69, 73)
adr = 00000047 (6D, 69)
adr = 00000049 (6F, 6D)
adr = 0000004A (6E, 6F)
adr = 0000004B (2E, 6E)
adr = 0000004C (6B, 31)
adr = 0000004D (6A, 2E)
adr = 0000004E (32, 6B)
adr = 0000004F (00, 6A)
adr = 00000050 (00, 32)
adr = 00000223 (61, 60)
0934デフォルトの名無しさん
05/02/09 07:22:13(初めの値、更新後の値)
adr = 00000010 (5D, 5E)
adr = 0000001F (31, 30)
adr = 00000024 (43, 44)
adr = 00000035 (4B, 6B)
adr = 00000036 (53, 73)
adr = 0000003C (5C, 64)
adr = 0000003D (92, 5C)
adr = 0000003E (E8, 92)
adr = 0000003F (90, E8)
adr = 00000040 (D5, 90)
adr = 00000041 (5C, D5)
adr = 00000042 (70, 5C)
adr = 00000043 (65, 70)
adr = 00000044 (72, 65)
adr = 00000045 (73, 72)
adr = 00000046 (69, 73)
adr = 00000047 (6D, 69)
adr = 00000049 (6F, 6D)
adr = 0000004A (6E, 6F)
adr = 0000004B (2E, 6E)
adr = 0000004C (6B, 31)
adr = 0000004D (6A, 2E)
adr = 0000004E (32, 6B)
adr = 0000004F (00, 6A)
adr = 00000050 (00, 32)
adr = 00000208 (77, 4C)
adr = 00000209 (F4, CE)
adr = 00000230 (45, 18)
adr = 00000231 (D2, 3D)
adr = 00000232 (46, 44)
0935デフォルトの名無しさん
05/02/09 07:37:10フォーマットを教えてもらっていることは間違いないのだが。
フォーマットがわかれば激遅の定跡登録を速く出来るんだけど。
0936まともに動いてない ◆/8LpUMqVAk
05/02/09 07:53:290937デフォルトの名無しさん
05/02/09 11:21:52がんばって手作業でいれてるんじゃね?<新潟支部
0938デフォルトの名無しさん
05/02/09 12:14:15>新潟支部開発の平手定跡ファイルは80000局以上の実戦譜をもとに編成したデータベースより250万手におよぶ平手定跡ファイルとして作り上げられております。
>実際に将棋ソフトで使用するためには,それぞれの将棋ソフト用に,又ファイルサイズ等と再編成をしなくてはなりません。
新潟支部専用データベースフォーマット → 柿木、銀製、ファミリ−将棋
と変換しているはず。各定跡ファイルのフォーマットは判っている。
0939デフォルトの名無しさん
05/02/09 18:45:180940まともに動いてない ◆/8LpUMqVAk
05/02/09 19:24:080941931
05/02/10 03:43:28*ヘッダー:512バイト
16:バージョン? KBOK(KJSK) nul nul nul nul 1.00 nul nul nul nul 等
4:登録手数+1(0なら0)
8:00 00 00 00 01 00 00 00
以降の484:ファイル名〜00
経験的には登録手数があっていればヘッダーを入れ換えても支障なく使えるので、
無効チェック等はしてるとしてもデータとしては殆ど無意味な筈。
KBOKとKJSKの違いは謎。柿木のバージョンにより(?)KJSKには1.00や3.00等もある模様。
*以後、1局面毎に100バイト単位の暗号化されたデータ。
2*16:指し手=(移動元座標) (移動先座標)
4*16:手の情報=(次の局面のデータ番号)*3バイト (手の評価)
4:() (局面の形勢) () ()
0942931
05/02/10 03:48:30様々な初手1手だけを登録したファイルを比較すると、
最初の100バイトは、先頭の2バイトを除き一致し(稀に例外あり)、
次の100バイトは完全に一致する!
ここから、これらのファイルの2番目(最後)の100バイトには局面の情報は含まれておらず、
何も登録されていない「2番目のデータの初期値」であるものと推測する。
*取り得る方針(自分で実行する予定はなし)
1.16通りの初手だけを登録したファイルを作る。
これによって、2〜17番目までの初期データが得られる。
2.1のそれぞれの分岐に様々な2手目を登録したファイルを作る(対局設定を自由ルールにするのが吉)。
手の好悪や、初手の局面での形勢等も、充分に登録しておく。
これによって、16局面分の登録後データと、次の256個分の初期データが得られる。
3.1と2のファイルの比較により、情報の表現法を推理する。
4.バイナリエディットで3の推理を検証できれば、初めの推測も正しかった事になる。
5.1と2で得られた初期データの法則が解明できれば幸せになれる。(まともに氏は、この初期データを調べるべき)
「3200バイトごとの繰り返し」みたいになってれば楽だけど、おそらくそう甘くはないだろうね。
6.暗号が解けなくても、柿木自身に解いてもらえる可能性もあるかも。
柿木プロセスのアドレス空間を調べてみて、復号化された情報が見付かったりしたら少し幸せになれる。
(以後、続かない)
0943まともに動いてない ◆/8LpUMqVAk
05/02/10 04:39:19とはいえいろんなデータおくれなどと厚かましいことを言えるはずもなく、手を出したのが無謀だったと今更ながら後悔。
931さん他のヒントを頼りにまたまた職場でこっそり調べてみようかと思う次第。解雇されるかもなー(笑)。
0944デフォルトの名無しさん
05/02/10 15:03:02就職フェアで待ってますから〜(ぉぃ
0945デフォルトの名無しさん
05/02/10 16:22:29コンピュータ将棋の論文はどこで手に入りますか。
0946デフォルトの名無しさん
05/02/10 16:33:030947うさぴょんの育ての親
05/02/10 19:29:07コンピュータ将棋の進歩、2、3、4でも買ってみて下さい。
あるいは、2月末まで待って、工学社の「将棋のアルゴリズム」でも買って下さい。
(本のタイトルは仮題だけどね)
>>946
私も情報処理学会入ってないし。
0948うさぴょんの育ての親
05/02/10 20:17:17あぁ、肝心なHPを忘れてた。
http://www32.ocn.ne.jp/~yss/book.html
の評価関数くらいは読んでるよね?
0949デフォルトの名無しさん
05/02/10 20:33:420950デフォルトの名無しさん
05/02/11 04:09:270951デフォルトの名無しさん
05/02/11 12:30:270952デフォルトの名無しさん
05/02/11 13:56:00膨大すぎて扱う事が不可能なほどのデーターが必要だな。
又は少ないデータに収める人間の知能並みの学習能力が必要。
将棋じゃむりっぽ。
0953デフォルトの名無しさん
05/02/11 17:50:490954デフォルトの名無しさん
05/02/12 23:54:540955デフォルトの名無しさん
05/02/16 17:29:20藻前、頻繁に指される手を調べればヘイズ法になるのかと子1時間(ry
0956デフォルトの名無しさん
05/02/16 17:35:01C/C++は純粋に速度のためだけに使われてるの?
0957デフォルトの名無しさん
05/02/16 17:40:190958デフォルトの名無しさん
05/02/17 00:14:190959デフォルトの名無しさん
05/02/22 17:43:530960デフォルトの名無しさん
05/02/22 17:50:18大学図書館で数理科学コピーしてきたよー
ハッシュと詰将棋のところ。
ハッシュについてだけど局面を一度圧縮してから
の方がいいとおもうんだけど。もしくはそのデータを
そのままアドレスに使うとか。今圧縮アルゴリズムを考え中。
あと全ての処理についてだけどループとビット演算だけで
済ませられないかな。
移動できるマス、駒の利きについては分岐なしで求められたけど。
0961デフォルトの名無しさん
05/02/22 18:15:48高いだろうからそれを高頻度順に並べるというのを考えたけど。
あとは空白が多くなることに注目して圧縮してみるというのもありそうだ。
プロの棋譜3万3千から統計を取ったところ、
情報価値が高いだろう升目は
(3,3) 変化する割合0.259544
(7,7) 変化する割合0.247682
(6,8) 変化する割合0.207760
(4,2) 変化する割合0.198430
(4,6) 変化する割合0.184319
(6,4) 変化する割合0.183549 で
〜〜
低い升目はこんな感じ。
(1,2) 変化する割合0.030271
(9,8) 変化する割合0.027014
(9,1) 変化する割合0.026362
(1,9) 変化する割合0.027567
(9,2) 変化する割合0.024516
(1,8) 変化する割合0.025566
0962デフォルトの名無しさん
05/02/22 18:29:58数理科学では1秒で100万手調べて×一局に1万秒使う=100億局面となっているのだが。
みんな100億もの配列を用意しているの?
int型(32ビット)配列を2^32個を用意してひとつひとつのデータを8ビットで記録すれば
120億局面保存できるのだが。
0963デフォルトの名無しさん
05/02/22 19:11:46変わってくと思ってる。皆さんは、相手がどんな人間やどんな手を未来に
指そうが、1局面の最両手は1つだと思っていますか?
0964まともに動いてない ◆/8LpUMqVAk
05/02/22 19:12:04それで出来るだけ大きく取ればいいはず。
0965デフォルトの名無しさん
05/02/22 19:13:34おもっています
0966まともに動いてない ◆/8LpUMqVAk
05/02/22 19:22:10私は、相手がどんな手を未来に
指そうが、1局面の最良手は複数だと思っています。
局面の点数付けで同点を導く二つの筋以外は全て評価が低いことがありそうなので…
0967デフォルトの名無しさん
05/02/22 20:12:52では平手の最初の最良手は1つですか?
実際には複数あると言われています。
0968デフォルトの名無しさん
05/02/22 20:20:25論理的に考えて、先手必勝のパターンが必ず存在することになり、
それが見つかった時点で将棋は終わりを迎えることになる。
う〜〜〜ん、やっぱり有りえないと思う。
0969(´・ω・`)わからんがな
05/02/22 20:23:24>>955さんやないが、ゲームの木がでかすぎて誰にも(´・ω・`)わからんがな。
0970まともに動いてない ◆/8LpUMqVAk
05/02/22 20:31:42>>955は>>965の間違いでは?
最良とはいえそれが引き分けでそれ以外が負けということはありませんか。
0971デフォルトの名無しさん
05/02/22 20:38:530972デフォルトの名無しさん
05/02/22 20:41:09>最良とはいえそれが引き分けでそれ以外が負けということはありませんか。
平手から考えて必ず最良が1手であるなら、先手必勝でしょう。(証明は出来ないけど。
0973デフォルトの名無しさん
05/02/22 20:46:350975デフォルトの名無しさん
05/02/22 20:59:11最良の負けというのもある
最良≠勝ち
0976デフォルトの名無しさん
05/02/22 21:03:040977デフォルトの名無しさん
05/02/22 21:04:140978デフォルトの名無しさん
05/02/22 21:11:39それは最悪の負け
0979デフォルトの名無しさん
05/02/22 21:16:48逃げ回って最長手数で負けるのとどちらを最良の負けと定義するべきだろうか
0980デフォルトの名無しさん
05/02/22 21:23:21一手目指さずに投了とどっちが最悪の負け?
0981デフォルトの名無しさん
05/02/22 21:27:030982デフォルトの名無しさん
05/02/22 21:32:24全くの気のせいなんだろうな。
0983デフォルトの名無しさん
05/02/22 21:36:26誰か次スレよろ。
0984デフォルトの名無しさん
05/02/22 21:50:45引っ掛けってやつだよね
完全に最後まで読み切れない人間相手なら
負けると分かってて逃げ回るより
騙しのテクニックの方が有効だと思うよ
0985デフォルトの名無しさん
05/02/23 10:28:09df-pn、pnサーチ、pn+TT、pn+Mobility、pn+TT+Mobility、pn二乗
を教えてくだされ。
数理科学のdf-pn読んでも詳しいところがよくわからないのですが。
0986デフォルトの名無しさん
05/02/23 11:01:51http://scholar.google.com/scholar?num=100&hl=en&inlang=ja&lr=&ie=Shift_JIS&oe=Shift_JIS&newwindow=1&safe=off&q=TSUME+SHOGI
http://citeseer.ist.psu.edu/cs?cs=1&q=shogi&co=Citations&cm=50&cf=Any&ao=Citations&am=50&af=Any
http://citeseer.ist.psu.edu/cs?cs=1&q=df-pn&co=Citations&cm=50&cf=Any&ao=Citations&am=50&af=Any
http://citeseer.ist.psu.edu/cs?cs=1&q=Pn+Search&submit=Documents&co=Citations&cm=50&cf=Any&ao=Citations&am=50&af=Any
0987デフォルトの名無しさん
05/02/23 11:55:31煽りだぜ。俺はなんの知識もないからアドバイスできないぜ!
0988デフォルトの名無しさん
05/02/23 12:40:460989デフォルトの名無しさん
05/02/23 13:39:07これはどうなんですか?
0990デフォルトの名無しさん
05/02/23 19:27:550991デフォルトの名無しさん
05/02/23 23:47:43http://www.santafe.edu/~moore/QianThesis.pdf
http://citeseer.ist.psu.edu/plaat96research.html
http://www.dridgway.com/Go/Local/
http://www.cs.ualberta.ca/~kishi/publication.html
http://www.cs.vu.nl/~aske/Papers/aij-final.pdf
http://fragrieu.free.fr/SearchingForSolutions.pdf ←ブラクラではないです
0992デフォルトの名無しさん
05/02/24 00:46:420993デフォルトの名無しさん
05/02/24 00:47:410994デフォルトの名無しさん
05/02/24 00:48:180995デフォルトの名無しさん
05/02/24 00:48:530996デフォルトの名無しさん
05/02/24 00:49:320997デフォルトの名無しさん
05/02/24 00:50:090998デフォルトの名無しさん
05/02/24 00:50:470999デフォルトの名無しさん
05/02/24 00:51:401000デフォルトの名無しさん
05/02/24 00:52:28http://pc5.2ch.net/test/read.cgi/tech/1065535118/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。