将棋所のようなものを作っているんだぜ☆ (♪車輪の再発明~ よっほー☆)
今 引っかかっているのは、次のようなことなんだぜ☆
① 駒を動かしてから 棋譜を書くのか
② 書かれた棋譜を読んで 駒を動かすのか
……(a)
マウスで触ると ① なのだが、
コンピューターは ② なんだぜ☆
わたしは最初、② だけ作ればよいもんだと、思っていたんだぜ☆
しかし マウスを使って駒を動かすんだから ① も要るじゃないか☆
①→② と順番にやると、 「駒を動かして、棋譜書いて、駒が動く」 となるな☆
2回動いちゃいけないんだぜ☆
思っているより、思っていないことが出てくるんだぜ☆
“駒を取る” というのも “思っていないこと” の1つなんだぜ☆
困るのは、棋譜をさかのぼるときなんだぜ☆ いわゆる “待った” だな☆
マウスで駒を動かしてみて、駒とぶつかれば その駒を取る☆ というのは
目で見て分かるな☆
では、待った を 10回ぐらいして盤面を戻してみることを考えてくれ☆
棋譜には、取った駒が何だったかは書いていない☆
「▲5五銀」という書き方でも「5f5e」という書き方でも、
何か駒を取っているかもしれないし、取っていないかもしれない☆
1度、最初の駒配置に戻って 棋譜を進めてみないと、
そこにどんな駒が置いてあったのか、分からないんだぜ☆
解決方法としては、
① 待った をするたびに、最初の局面から1手ずつ棋譜通りに指して
1手前の駒配置を再現する
② 1手進めるたびに、棋譜のすみっこに こっそり、取った駒もメモっておく
の2通りがあるな☆
そこで、思いつきで ② にしようと思ったんだが、
どのタイミングで 棋譜のすみっこ に書くか、
これも
“思っていないこと” があるんだぜ☆
マウスで駒を動かす場合
駒の移動先の、駒をクリックしたときに 「あっ、駒取った」 と分かるな☆
そのあとで棋譜に書き込めばいい☆
コンピューターの自動棋譜並べの場合
棋譜を読んで駒を動かした後に 「あっ、駒取った」 と分かって、
棋譜の隅っこに 「取った駒は と金」 と書き込む必要が出てくるんだぜ☆
いままでは、
コンピューターの自動棋譜並べの場合は「棋譜に書き込む」とか無かったのに☆
すると、前掲の a式 は、次のように修正が必要だぜ☆
① 駒を動かしてから 棋譜を書くのか
② 書かれた棋譜を読んで 駒を動かす☆ 駒を取ったら、棋譜に書き込む
……(a´)
[0回]
http://grayscale.dou-jin.com/Entry/27/【将棋】駒を動かしてから棋譜を書くのか、棋譜を読んで駒を動かすのか☆