
はい、将棋のルール千日手ですね。これ同じ手順が4回で千日手だと思っていたんですが、同じ局面4回で千日手なんですね。そして連続王手の千日手の場合王手をかけた側が負け。引き分けちゃうんかーい!というわけでプログラム書いたのですが・・・。
▲ 7六歩
▽ 3二金
▲ 5五角
▽ 4二王
▲ 4六歩
▽ 5一金
▲ 6六歩
▽ 5四歩
▲ 7三角成
▽ 同桂
▲ 1八香
▽ 3四歩
▲ 6八飛
▽ 8五桂
▲ 8六歩
▽ 9七桂成
▲ 同香
▽ 4四角
▲ 4五歩
▽ 3五角
▲ 4四歩
▽ 5七角成
▲ 4三歩成
▽ 同王
▲ 3八飛
▽ 4七馬
▲ 2八飛
▽ 9四歩
▲ 3八銀
▽ 5六馬
▲ 7七桂
▽ 4二金
▲ 6五歩
▽ 3三金
▲ 7五歩
▽ 4二王
▲ 7四歩
▽ 6七馬
▲ 7三歩成
▽ 7七馬
▲ 6八銀
▽ 同馬
▲ 同王
▽ 9二飛
▲ 8三と
▽ 6二飛
▲ 7三と
▽ 6一飛
▲ 8五歩
▽ 2二金
▲ 8四歩
▽ 6四歩
▲ 同歩
▽ 同飛
▲ 5八王
▽ 8四飛
▲ 6二と
▽ 8八飛成
▲ 5七王
▽ 6二銀
▲ 9六香
▽ 8九龍
▲ 5八王
▽ 8八龍
▲ 5七王
▽ 8九龍
▲ 5八王
▽ 8八龍
▲ 5七王
▽ 8九龍
▲ 5八王
▽ 8八龍
▲ 5七王
▽ 8九龍
▲ 5八王
▽ 8八龍
▲ 5七王
▽千日手
▽ 8九龍
これ千日手の判定の前の8八龍の方が連続王手で負けなのか5七王が引き分けなのか、数え方というか正しい判定、俺自身が人間でも下せません。どっちに軍配が下るの?
引き分けだと思ってたから、これで終わりだぜーと思っていたけど、連続王手が負けなら王手側の千日手が自殺になるからそれは千日手が最善手とも言えないわけで。
つまり駒得のみの評価関数では千日手で自殺するコンピュータが出来てしまう件。
電竜戦の時には「いろは」に歩を打ったところで投了されて、打ち歩詰めでは無いのかという質問が出ていましたが、アレは投了なので詰みではなく、しかし打ち歩詰めも「してしまう」プログラムなのでブービー賞狙いだった「いろは」さんは将棋ベーシック改を打ち歩詰めで負けにしようとそうなる棋譜を必死で考えられたのだとか。
しかも唯一勝った「きふわらべ」戦はコードミスで角道の左後ろが欠けているところにちょうど「龍」を置いて何故取らない将棋ベーシックゥゥゥ!と思ったら勝負じゃなくて棋譜でデバッグしてくれてるやん!という案件であり、みなさん優しいし暇人。
でもまだ通信部出来ていないので、自宅で参戦でも将棋所起動していちにち張り付いて何局も指すのが辛いです。連続自動対局までまだプログラムが漕ぎ着けず。
ただまあ、自己対局これにて終了なので、通信以外のことひとつづつ潰してコツコツ組めばまた出られる日もあるかも。実務でも電子カルテで九州の病院と通信して、本当に九州の病院と通信でつながっているのか、関連会社さんがネットでイタズラしているのか疑心暗鬼になり、ソフトハウスのお客様にいちど実地検分させていただきたいと申し入れると、通信でそれが分からないのはソフトの不良として任期終了となったなど。
そんな時代もあったねといつか笑える日が来るわ。だから今日はくよくよしないで今日の風に吹かれましょう。まわるまわるよ時代は回る。
その問題、多分ベテランエンジニアさんなら既出みたいなんですけどね。
でも絶対に千日手のルールも後から出来ていると思うわけだし、ゲームプログラム書いてからルール変わるのにも対応は組み直さないと出来ないわけで。そう、マイナカード以前は手続きが自動になるとお役所の仕事が無くなるからと手続きや法律が良く変わったらしいですね。自動になって行政サービスを拡充してくださいって話は最近で。
んで俺も将棋が自動対局になって、同じ将棋をデバッグしながら今日だけでも7回くらい見たわ。角道の後ろを開けないのとか、駒利き評価の不具合なんだよな。けど格の逃げ道あった方が良いってのも、手数で五手くらい読んだら自動でそうなるかもしれず、あんま無駄なことしないで自己対局を長手数の深読みでやったほうが良い結果出るかもだけど、その前に千日手だけはつぶしておかないと長く読んだ結果が千日手にハマってループしていたら自動に任せて長考ってのにも一抹の不安が残るんだよな。4回で終わるってことは9手読みまで深度を上げたければ8手で千日手になるケースは回避しないといけないわけで、まあ7手読みまでしか機能しない気はする。それでも三手読みでも三手対三手で千日手になっているわけだけれど。
まあプログラム組んだ達成感みたいなのはあれど、千日手で詰まることに関しては何だか不完全燃焼な感じしかしておらず、やる前はプログラム組んでコンピュータに考えさせてみよう!とかなり遠回りでもそれが近道かもと思って始めたことだけど、いつからか「このポンコツ!こう指せ!」みたく思う時があって、開発しながら将棋には少し慣れたと思います。けど自分より良い手を見つけてくれることもあり、そん時は嬉しくなります。
ぶっちゃけると、もっと大きなシステムを夢見てプログラムは大改造中なのですが、着手してからだんだんモチベが低くなって、辛うじて騙し騙し動くところで止めてあります。まさかこんなに若さを失ってしまうとは思わなかったぜ。
プログラムの洋書とか読むと謝辞がいっぱい書いてあって、日本の大学でもそれに倣って本でも出すときゃ周囲の人への感謝を文字にして残すことが慣習ぽいんですけど、専門卒で逆恨みかもだけど、大した事も習えないまま社会に放り出されて辛い目に遭った恨み言や泣き言にまみれていたのが、それでも将棋ソフト界隈の皆様には感謝しか無く。
まあ、本心から自然に感謝の念が沸くほどのカタルシスが俺にまだ訪れていない関心事がまだまだたくさんあるんです。アレもコレも横好きでやってますから。
いや千日手のルールもググって上に出てきたの読んだだけなので、専門家として(専門家なの?)裏取りとか、正しいジャッジとか、それも大事よね。いい加減で御免なさい。対局として将棋盤に審判をさせて千日手ってので今できているのが千日手になっているけど、回避となると思考部に考え中の手が千日手か判定させなければならず、せっかく高速化した思考部にまたロジックを追加するのが躊躇われるというのが今千日手で放っているひとつの理由と言い訳です。
そこで辞めないで続きが見たいという声もいただいておりますが、ちょっと休みます。お昼のタンドリーチキンカレーがスーパーで580円で安くて美味しかったです。