将棋や麻雀の話

将棋ソフト開発ひそやかに進めております

格闘ゲームの祭典EVO2024の様子をSNSで観戦しながら自宅のエアコンの効いた部屋で缶ビールなど飲んでいたわけですが、まあ餓狼スペシャルとかカプエス2を趣味の範囲で楽しみながらもどうしてその道に行かなかったかと自問すると、言い訳みたいだ…

将棋ベーシック改に簡単な棋譜保存を実装した!

将棋用のユーティリティとして今まで何故無かったという棋譜保存。 とりあえず狭い画面にリストボックスで棋譜を三行ずつ表示していたので、リストボックスをダブルクリックするとクリップボードに全部書き出すというプログラムを組んだ。 Private Sub ListB…

今朝の将棋は人間側の勝利!やっぱ勝つのは嬉しい!

将棋ソフトが強くなるのは作者からすると嬉しい事なのですが、強くなった瞬間は嬉しくても対局して自分がソフトに負けつづけると複雑な心境てか悲しい気持ちになります。やっぱり勝つ方が面白い! 今日の対局の流れは相掛かりになるかと思いきや6四飛から定…

評価値と期待評価値の関係を折れ線グラフにしてみたぞ!

まあ今日の午後はサボってぼーっとしていただけなのですが、午前には駒利き評価の空きマス評価を実装ONにして勝てなくて面白くないからもう指さない。ぷんっ! しかし何かの仕事はしたい。というわけでSNSから流れてきた機械学習界隈では学習成果をグラ…

今日も朝から将棋研究!(駒利き評価たぶん完成)

ずっとソースコードの中にblank_effect_valueての用意して中身は未実装だったんだ。つまり将棋ベーシック改の電竜戦参加バージョンでは「自分の駒に利いているか」と「敵の駒に利いているか」を評価してたんだ。それに対して空きマスにも効くものは利いてい…

将棋ベーシック改の評価関数に手を加え俺が詰まされた

電竜戦に対する俺のコミットメントは駒利き評価であったが、その後駒位置評価を加えてどうにも行かなかった銀や角に玉は駒が効いているより逃げ道があった方が強いという部分を空いている升に利いていることを評価するようにすると上手く行った。 これで再び…

将棋を指さない人にとっては三手詰の詰将棋も難しいと聞く

拙作、将棋ベーシック改は駒得を基本とした評価関数でアルファベータ探索を行うプログラムであるが、探索の深さが将棋局面三手先つまり三手読みとしているが、三手読むとはどういうことかというと最大約600の全指し手に対し応手600手さらに600手と…

ひとまず実験成功!

SNSで先に触れたのですが。 とりあえず将棋の一局を多変量解析にかけるためにコンマ区切りでエクセルにしてみたが何して良いか分からず困ってます。盤面を表式化しても読めないので、評価値の変量くらいしか読めるデータが無い(俺が) pic.twitter.com/T…

今日の将棋研究は合法手最大値を600に変更

SNSのタイムラインにコナミのファミコンソフト「がんばれゴエモンからくり道中」の映像が流れており、そういや俺子供の頃にこのゲーム親に買ってもらったけど、中学受験でファミコンを取り上げられ、無事に受かった中学か高校の頃にスーファミソフトの中…

将棋ソフトの進捗は定跡への評価値カラム追加

探索の速さためにプログラムをシェイプアップするのではなく、研究目的で指し手が決まったら評価値、bestの期待評価値(探索終了局面の評価値)、その手を求めるのに読んだ探索深度の3つを列挙するようにして1局指しました。 我ながらなかなか良い将棋が指…

将棋開発今日の進捗定跡ファイルに通し番号IDを割り振り

局面ごとの定跡に別のパラメータを振ってDB(データベースの事でドラゴンボールじゃないよ)のように扱う第一歩として通し番号IDを頭に付けてみた。 しかしまあ、プログラムの構造上定跡は連想記憶、マップ、辞書などの呼び方あるキーに対して値があるハ…

期待評価値というものを考えてみた

将棋コンやるからにはひとネタ欲しいと前々から思っているのですが。 まあNNUEなんも分からん!というところで、駒得、三駒関係、探索、評価とかは分かるわけですよ。んでそれを基礎にした考え方でもコンピュータのスペックを上げて、ソフト的にもCやア…

コンソールアプリで将棋所のUSIプロトコルとの通信成功!

将棋ベーシック改での電竜戦出場は0回戦を主催のカツ丼さんにメールして、自宅でアプリを操作して将棋所への手入力で通信して参加させてください!とお願いして、承諾してもらったのですが、他の参加者はほぼすべて自動で動き続けるプログラムをサーバーコ…

確率麻雀からの脱却

久しぶりに、麻雀の事を考えていた。 はじめは河を見た打ち筋の研究をもっと掘り下げようとしたが、そもそも何故コンピュータ麻雀くらいしか普段打たないのにそこまで掘り下げようとするのかという点から考え直す。 正しく考えられるようになる前に高校くら…

開発中の将棋ベーシックに作者が詰まされた件

タイトルの通り、将棋ベーシック改に作者の俺が先手で負けました。 育てた甲斐がありました。作者冥利に尽きます。 将棋ベーシックを「改」と題する前、一手読みの将棋ソフトを作って入門者向けのアプリとして販売しようとしていたんです。スライム級に弱く…

どこまで本当なんだろうね将棋の本って

コンピュータ将棋の開発者ではありながら、下手の横好き将棋は二の次で生きてきました。人生で読んだ将棋の本は二冊ですが、小学校の時に読んだ入門書はクタクタで大人になって何となく手に取った雑誌将棋世界をペラペラとめくって読んでいました。 将棋の先…

開発中の将棋ベーシック改に定跡を搭載!

将棋ベーシック改の開発を数カ月ぶりに進めてみました。進んだ!奇跡! 先日の電竜戦4期は不参加で「水匠」の応援に回っていました。 第1期には参戦したのですが、負けのいくつかが切れ負けなので、5分将棋とか10分将棋には耐えられないと思っていたの…

将棋ベーシック改の仕様書を書くか迷っているから

書き始めるか。 先のブログ記事で将棋ソフトをIF~ELSEの塊であると考える人は多いと書いた。では、そうでないなら何なのかの前に、IF~ELSEで書いてみたことがあるかというと、これは考える段階で将棋には無数の手があるのでIFの列挙が事実上…

プロ棋士の謎に迫りたかった

コンピュータに将棋を指させるというと、 RUN 2726(2六歩) IF 8384 THEN 2625 IF 3334 THEN 7776 みたいなプログラムをイメージしている人は結構いる。コンピュータ将棋の中にはそんなものもあるのかもしれないから、…

駒利き評価で考える「銀は玉の腹に打て」

将棋ベーシック改のビットボードによる飛車角の利き計算を1ヶ月見積もり、結果何も進まないで月初には遊戯王DSで遊んでいるということを正直に打ち明けたわけですが、それでも俺は将棋開発専門だと思っていたら色々個人開発してこのブログも書いているとい…

香車の利きのBitBoard化に成功して昨晩は遊戯王DSNT

「壁にぶち当たった」とか「ひと月見積もった」などと言って、自分を追い込んで実装を始めると昨日1日でほぼ完成したという。だいたい、長く見積もられていると納期のギリギリまでエンジンがかからないタイプだったのが20代のこと。 反対に30代は先々に…

将棋ベーシック改のリファクタリングは大きな壁にぶつかる

ビットボードを実装した目的は単なる探索部の高速化だけではなく、駒利き評価や駒位置評価という独自の評価をより簡潔に出来ないかということも併せてのことであって。 それが「先に気付けよ」と思わなくも無いが、歩と桂銀金王までは実装済みで今は試験中で…

今日のお昼ご飯は「牛めし」だよ!

いつも360円のシャケ弁かアジフライのり弁を取る時につい横にあって目を奪われる「牛めし」を買ってきたよ!いつだったか、大晦日かお正月にいちど食ったことがあって旨いのは分かってるけど贅沢しすぎじゃねぇかと思ってたんだけどいつの間にか記憶に刷…

将棋ベーシック改の駒利きをBitBoardで計算

とりあえず歩だけ実装してみて、体感的な差はほぼ感じられず。速いかな?くらい。 まあそれでも全駒やれば確実に速くなるだろうし、その他のやりたい追加機能への基礎モジュールとして利きがBitBoardで1発取り出来るのが便利なのは間違いない。 ただまあ、…

メモリの有効活用を考えることとした

俺は将棋ソフト開発者以前にファミコン愛好家なので、メモリの小さいプログラムが良いプログラムであるというような考え方がどこかにあった。 だから将棋の指し手を考えるときにやねうら王から「そんなもん800^depthくらいメモリを確保したら出来るんやから…

将棋ベーシック改の詰みと投了を実装

なんで今までしてこなかったろうと思うような基礎的な機能を実装しました。 研究と称して考える旨味のある部分だけをやりたいと贅沢にワガママにやって来たのが、不意に基礎的な事の積み重ねの上にしか大きな木は育たないみたいな当たり前のことを思うように…

将棋ベーシック改リリース後に不成を実装

いつかは手を付けなきゃと思っていた不成を実装した。 リリース後に返事を待たずして次のコーディングに移るという。まあやる気出てる時にまとめてやるのがいいさね。 んで、最初はちょっとバグったけどそれを取って実験すると、前々から桂馬がはねて居玉の…

将棋ベーシック改の高速化まあまあ進行

まずは指し手生成とか合法手生成と呼ばれる探索部の根幹部分で指し手データであるMoveDataを空きでnewしてから代入していたのをSub New(a,b,c,d)と引数付きのコンストラクタを作ることでメモリの高速化を実現。コンストラクタはデフォルト、指し手付き、持ち…

久しぶりの将棋ベーシック改さらに改

色々と新しいアルゴリズムを考えたものの空想段階なので実装中に頓挫することもありえるわけで、とりあえず現状のソースを読み直して「ここはアカンやろ」というところをいくつか手直し。デバッグで三局やって人間勝ち2の機械勝ち1で今日は2-1でした。…

ゲームの究極の論理は勝率51%で100回勝ち越すこと

ゲームをしない人ほど究極を語る(といって敢えてタイトルに「究極」を付けた) 将棋は突き詰めるとどうなるか、オセロとはどんなゲームか、格闘ゲームは何が面白いか、勝負の「決め手」は何か、などなど。ゲームをたくさん遊んで来たとして語りたいのだが、…


🄫1999-2023 id:karmen