将棋対戦用プロトコルの主だった所
CSA通信プロトコル
http://www.computer-shogi.org/protocol/
CSA標準棋譜ファイル形式
http://www.computer-shogi.org/protocol/record_v22.html
CSAサーバ プロトコル ver.1.1.2
http://www.computer-shogi.org/protocol/tcp_ip_server_112.html
USIプロトコル(将棋所)
http://www.geocities.jp/shogidokoro/usi.html
http://www.glaurungchess.com/shogi/usi.html
MiniShogiフォーマット
http://minerva.cs.uec.ac.jp/~uec55/?page_id=122
象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
投稿フォーム:
どうぶつ将棋
http://www.joshi-shogi.com/1day/2009/04/rules.html
面白そうだ
- ひよこは相手の陣地 (一段目) に入るとニワトリにパワーアップします
- ライオンを捕まえるか相手の一段目に自分のライオンが入ったら勝ち
- どうぶつしょうぎには反則はありません...だって^^
|R|K|B|
|.|P|.|
|.|P|.|
|B|K|R|
R:キリン, K:ライオン, B:象, P:ひよこ, G:ニワトリ
そろそろかな
外堀は充実して来てるけど、僕はねぼけてる。
まあそんなもんで。
ボナンザがオープンソース化されたらしいのでリンクだけ
http://www.geocities.jp/bonanza_shogi/
保木さんありがとう。
チェスのナイトの動きを覚える-スクロールチェス
http://d.hatena.ne.jp/readingknowledge/20081024/1224852050
http://www.kotoriyama.com/ScrollChess/
こういうことしたいんだよね。
でもうちのPCではみられない。
最近は JavaScript:off, Java:off, Flash:off, カップヌードル:off だから。
JavaScript三日目
フルスクラッチから作ってみた。知らないことばかり。
ZShogiのクライアントとしても使えることは解った。
FirefoxアドオンもJavaScriptで作るものらしい。
http://www.itmedia.co.jp/bizid/articles/0802/29/news033.html
http://developer.mozilla.org/en/docs/Building_an_Extension
http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/
JavaScript二日目
LL言語として、使えるし面白い^^
ZShogiのクライアント側GUIとしても有望だと思う。
ネットで公開されてる棋譜表示スクリプトを初めて眺めて見たけれど、
その将棋配信サーバが落ちるのも、今ならなんとなく解る;;
JavaScriptで将棋盤を表示してみた
駒を移動してもチラつきがなく良好^^
でもそれだけでは少ししかメリットが無いよね。
画面表示そのままでgetかpostメソッド使いたい。
要するに最新棋譜だけをgetし効率良く盤面を再表示したいのだけど、
Ajaxとかのノウハウを取り込めば可能なのかな?
# JavaScriptは今まで食わず嫌いだったので、これから修行しないといけません;;
流鏑馬十番まで解けた
処理時間は0.1秒前後(0.5M〜2M局面/秒)
持ち駒を考慮した場合の盤面ハッシュのコンフリクトは非常にまれ。
盤面の圧縮 >462 は無意味なので捨てた。
局面空間のメモリ管理は単純な方法で済みそう。
しかし無双一番は依然手強い。未実装なものは、
1) 局面空間メモリ管理
2) 探索における同一盤面ノードの処理
3) 低級な指し手の優先順位(成り優先とか)
4) 無駄な合駒の処理
持ち駒情報を追加
局面の重複判定の精度は向上したので、流鏑馬二番は解けた。
5,615行
流鏑馬二番が解けない
これは持ち駒情報を持っていないため。
(久しぶりに試してます;;)
20〜24ビットに丸めたハッシュキーのコンフリクトは探索局面の 0.1% くらいなのに対し、
同一盤面(局面の持ち駒を考慮しない)のヒットは探索局面の半分くらいに発生する。
持ち駒はハッシュキーに含める方法もあるけど、
同一盤面であることの情報も欲しいので、キーには入れず値の方に持つことにする。
持ち駒は32ビットで十分表現できる。(現実には玉Kは不要)
?.....P...L...N...S...G..B..R..K
00000000000000000000000000000000
引き算が必要になる場合は、引かれる方の各先頭ビットを立てれば良いだろう。
01000001000100010001000100100100
参考サイト:
http://ameblo.jp/professionalhearts/entry-10003663090.html
http://www.emit.jp/prog/prog_b.html