象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。
以下の文章は注意書きです。
名前はかならず記入してください。ハンドルネームでも構いません。
またパスワードを入力することをお勧めします。
その場合他人による *なりすまし* と区別出来るかもしれません。
さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。
コメントスパム防止のため記事の内容を機械的にモデレート
(スパムである確率を計算)
する処理を通します。
どのような投稿であれ、たまたま計算誤差によりスパムとみなされ
秘密の場所
に収納される可能性があります。
その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。
-
245
shu
2005/05/19 01:02
id: 3BVR6NRi4pQ
prob: 0.0%
-
-
PyZume-0.0.1 を公開します。ピュア Python な詰将棋プログラムです。
http://owa.as.wakwak.ne.jp/zope/shogi/Docs/pyshogi
とりあえず PyZume.py がフロントエンドでツリー探索を実行します。
PyZume.py をいじれば、他の図面も試すことは可能ですが、ロジックは不完全です。
まだ、ドキュメントも、まともなインタフェースもありません。
解答ロジックは中途半端ですが、デバッグし易いように GUI を最初に追加しようと考えてます。
問題を解くには、すばやい局面の保存と復元処理が必須なので、もう少し考えないといけません。
それが、うまく出来た時点で PyZume-1.0 として正式リリースするつもりです。
ただ、しばらくは作業する時間がありません、orz;;
-
244
shu
2005/05/16 22:41
id: 3BVR6NRi4pQ
prob: 0.1%
-
-
>>241
詰将棋ツリー探索を python で書いたら 800 行くらい。
流鏑馬一番(七手詰)は運よく 0.4 秒で解けました。
一般的にはツリー探索だけじゃ難しい (合い駒とか、ループもある) ので、実用には遠いです。
当面の目標は「詰むや詰まざるや」百番x2 すべてを、だいたい一秒/図面、以内で解けること。
http://owa.as.wakwak.ne.jp/zope/shogi/Puzzles/Musou
コードは python のリストを多用してます。C/C++ と比べて 10 倍くらい遅いらしい、
http://www.unixuser.org/~euske/doc/python/python-lisp-j.html...
と云うことで python での目標は 10 秒に設定します。完成は 2〜3 年先になる見込。
羽生でさえ、若いころ将棋無双と図巧解くのに、数年かかったと云う話しだし。
-
243
shu
2005/05/13 01:12
id: 3BVR6NRi4pQ
prob: 50.0%
-
-
∧_∧
∧_∧ (´<_`) Python って C/C++ のプロトタイプ
(´_ゝ`) / ⌒i 言語ってだけじゃないのよね > 兄貴
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ PyZume /.| .|____
\/____/ (u ⊃
-
242
shu
2005/05/06 22:41
id: 3BVR6NRi4pQ
prob: 0.6%
-
-
Python チャレンジ
テーマ: 詰将棋を解くプログラムを作る
インタフェース: シェルコマンド形式
リターンコード: 0: 詰む場合, 1:詰まない場合
例えば図 ( http://owa.as.wakwak.ne.jp/zope/shogi/Puzzles/Yabusame/S0_00... ) を例にすれば、
入力は文字列。"2P44,K32,S34,S22,P23,L11,P13,L*3,N*4,S*2,G*3,B,R*2,1+B53,P54,+P41,G"
出力は正解手順。"33G,2122,3153,3122,3141,3121,32S"
解が二つ以上ある場合、そのうち最低一つを返すこと
level-1: 入力図面で、不詰めや先日手は無いものとして良い。
level-2: 単玉の場合の完全解を求めること。
level-3: 双玉でも解けること。
other-1: GUI を追加。
-
241
shu
2005/05/05 22:44
id: 3BVR6NRi4pQ
prob: 0.0%
-
-
>>240 掘り出して見てました
ごめんなさい、まったく手つかずです。多分無理です。私と C/C++ では。
昔コンピュータって何ができるのか考えたことがあります。
1. 現実の作業を、シミュレーションして置き換えることができる。
2. 空想でしかない世界を構築して、実験することができる。
その後、解かったことは
3. 考えるための、補助ツールとして使える。
C/C++ 言語は、調査分析→設計→実装→運用 と云う用途には向いてるけど、(最初の段階で)解かって無いことを解くのは、まったく不向きです。今日、試しに、将棋クラスのコンストラクタを書いて、ずーっと眺めていたら、「あぁこの段階から構築するの
は、とても無理だな」と。元々そういう言語じゃないし。それに調査分析、設計、なんてする時間ありませんから。
python で二つの NEW クラスをこしらえてみました。駒 (Piece) と 盤 (Board) です。(ZShogi
とはまったく別に)。
Python 使うと、考える事と、実装作業のギャップを、あまり感じません。手を動かすことは、考えることに継ります。小人が夢想だけしたって何も生まれません。毎日わずかの時間でも作れば、進んで行くと思います。
と云うわけで、フルスクラッチから開始。Φ
-
240
shu
2005/02/13 23:20
id: 3BVR6NRi4pQ
prob: 0.1%
-
-
去年作った詰将棋プログラム掘り出して見てました。ロジックで合い駒系が抜けてるだけなので、捨てるの惜しい。とりあえずこれを動かそうかと。まずはソースを整理整頓しないといけない。じゃないと例え一時間余裕ができたとしても、ロジックを思い出してるだ
けで終わってしまうから。
ソフトウェア工学考えるだけじゃなく理論も考えないといけません。将棋の中盤戦って読みの選択が重要だと思いますが、棋士の直観に依存します。とすると過去の経験の蓄積が重いですね、そんなあなたにこんな理論があります。
http://hawaii.aist-nara.ac.jp/~shige-o/cgi-bin/wiki/wiki.cgi...
弱いソフト作るには良さそうな理論です。たとえば駒の損得「二枚替えなら歩ともせよ」の類の判断などには使えそうです。もし計算コストが少なくて済むのなら、もっといろいろ使えるかもしれません。
http://www.amazon.co.jp/exec/obidos/ASIN/4571200668/ref=ase_...
http://www.oreilly.co.jp/books/4873112168/
-
239
shu
2005/01/26 22:16
id: 3BVR6NRi4pQ
prob: 0.0%
-
-
>>238 遅いので、待ちきれず
すいません、家を出たのが遅かったので。去年はラストパーティとか出席できなくてすいませんでした。先日は運よく元気な貞爺に会えました。まあそれが目的だったので、他の無礼は許して頂戴。
>>なかなか手がつけれない
今現業で仕様を煮詰めてる段階なので、ちと苦しいです。アイディアは持ってるので、時期を待つしかありません。
-
238
PON
2005/01/26 14:08
id: gCW6ghh5gPQ
prob: 0.2%
-
-
>第15回世界コンピュータ将棋選手権
この前(土)は会えませんでしたね^^;
修ちゃんが遅いので、待ちきれず。後で2時頃行ったら烏山に行った後でした。
※ロジックが進まないとViewやControlだけでは結局だめでしょうね。
それがわかっていながら、なかなか手がつけれない気持ちわかります。
-
237
shu
2005/01/25 00:22
id: 3BVR6NRi4pQ
prob: 0.1%
-
-
将棋で Wiki サイト立ち上げる場合のインデクスは棋譜じゃなくて盤面のステータスの方が良さそうです。棋譜だと無限ですが、盤面であれば駒の数 (40) x その位置と状態 (81 + α) で済みます。URL として納まる長さです。まあ無
限に盤面を作り続けることは無いので、適当な桁でハッシュして短くする手もあります。
と云うわけで将棋 Wiki も面白いし可能かなと思った至第です。とてもスパースな空間の
Wiki ができるけど、Blog など入力系と組み合わせれば意味あるものはできそうな気がします。こう云うことをすぐ実験できるのが Zope の取柄です。
-
236
shu
2005/01/16 00:23
id: 3BVR6NRi4pQ
prob: 0.9%
-
-
2015年に羽生に勝つには四勝すれば良いわけです。三敗まではしても良いのです。何も将棋を完全に解く必要はありません。と云うかすべての手を考慮した完全な解答など無い気がします。あくまで近似を求めるのが本筋のような気が。
とするとモデリングになりますが、まずは流行のMVCモデルなどいかがでしょう(少し違うと思う;;)。
M: 将棋局面のシミュレーション。条件を入力し解を返す。(左脳的)
V:局面の様相を判断する。「こっちの水は甘いぞ」とか。(右脳的)
C:戦略を組みたて、実際の手を決める。(意識レベル)
とりあえずM機能(詰将棋などはまさにこれ)を作ることになりそうですが、リソースを意識した面白いモデルが目の前に浮かんできます。あくまで思考ゲームですけど。
|