こんにちは。コメントで要望があったので用意した対局棋譜を読み込む機能をユーザ向けに開放します。
■この機能でできること
・ローカルにある対局棋譜ファイルを読み込み、対局相手との対戦成績や盤面ごとのレート推移を可視化する。(上図の青丸部分)
ちなみに、自分の打った棋譜を入れることを想定しているので、ゼブラの棋譜データベースのようにwthor(生オセロの上位の大会の他人同士の対局履歴)などを入れる用途には適していません。
■できないこと
①オセクエやplayOKなどからの棋譜の取得(自分で頑張ってください、もしくは手打ちw)スクレイピングでサーバに過度の負荷をかけるのはやめましょう。自分は1試合ごとに7秒のウェイトを入れてます。スクレイピングの方法を自分に聞いても答えません。
②取得した棋譜の独自形式への変換(自分で頑張ってください)
※①②とも多分プログラミングができないと厳しいです
■必要環境
・独自形式で記述され、黒番白番で分けられた.ggfファイル(後述)
・うえのんEDAXバージョン0.75以降(2023/11/10に配布されたものです)
■読み込み方法
・そもそもプログラミングができる人向けでしかないのである程度端折って説明します。
①設定ファイル config.iniの編集。
配布版のうえのんEDAXには以下の行があると思います。
以下、ggfのタグの解説です。
■必須タグ
PB: 黒番のプレーヤ名
PW: 白番のプレーヤ名
RE: 試合結果(黒視点で何石勝ちか)
B: 黒が着手した棋譜("F5"のような形式にだけ対応)
W: 白が着手した棋譜
■任意タグ(できればあった方がいい)
RB: 黒番の「レーティングと段位を表す6桁の数字」
RW: 白番の「レーティングと段位を表す6桁の数字」
DT: 時間(例:2020/04/28 20:46:45.JST、.JSTはなくてよい)
レーティングがないと、レーティング推移グラフが表示されません。
時間がないと、レーティング推移グラフの対局順グラフが時間ソートされません(ファイルに書いてある順にソートされますが)
※レーティングと段位を表す6桁の数字
上4桁がレーティングで下2桁が段位コード。
段位コード:0=不明、40=10級、41=9級、・・・、49=1級、50=初段、51=二段、・・・、59=十段
例:
212554⇒R2125(五段)
216155⇒R2161(六段)
231900⇒R2319(段位不明)
※段位とレーティングが大きく整合しないプレーヤーはレーティングの計算から省かれます。
R1890(六段)⇒省かれる、R2112(1級)⇒省かれる
省いてほしくない場合は、段位を不明にしてください。
R9999(段位不明)⇒省かれない
※明らかにオセクエの段位体系を想定しているので、それ以外の環境のレーティングを入れたい場合は段位不明にするといいです。
■任意タグ(なくてもいい)
そもそも読み込んでないので変な制御文字とかがなければ何でもいいです。
GM: ゲーム名。othelloとか。
PC: なんだっけこれ・・・
BO: 初期盤面です。普通のオセロなら[8 -------- -------- -------- ---O*--- ---*O--- -------- -------- -------- *]ですがアプリから読んでません。中身を一生懸命いじっても初期局面が平行配置になったりしません。
■この機能でできること
・ローカルにある対局棋譜ファイルを読み込み、対局相手との対戦成績や盤面ごとのレート推移を可視化する。(上図の青丸部分)
ちなみに、自分の打った棋譜を入れることを想定しているので、ゼブラの棋譜データベースのようにwthor(生オセロの上位の大会の他人同士の対局履歴)などを入れる用途には適していません。
■できないこと
①オセクエやplayOKなどからの棋譜の取得(自分で頑張ってください、もしくは手打ちw)スクレイピングでサーバに過度の負荷をかけるのはやめましょう。自分は1試合ごとに7秒のウェイトを入れてます。スクレイピングの方法を自分に聞いても答えません。
②取得した棋譜の独自形式への変換(自分で頑張ってください)
※①②とも多分プログラミングができないと厳しいです
■必要環境
・独自形式で記述され、黒番白番で分けられた.ggfファイル(後述)
・うえのんEDAXバージョン0.75以降(2023/11/10に配布されたものです)
■読み込み方法
・そもそもプログラミングができる人向けでしかないのである程度端折って説明します。
①設定ファイル config.iniの編集。
配布版のうえのんEDAXには以下の行があると思います。
それを、以下のように書き換えます。black= disabledwhite= disabled
black= C:\data\オセロ\scraping\result\black.ggfwhite= C:\data\オセロ\scraping\result\white.ggf
値は各自、ggfファイルを置いた位置に書き換えてください。
②うえのんEDAXを立ち上げると自動で読み込まれます
※非同期で読み込むので、1万件程度なら読み込んでも起動が遅くなったりはしません。
■ggfファイルの記述方法
ここからが難しい(というかめんどくさい)です。
まず、オセロの棋譜の形式としてggfは一般に知られている形式で、例えばここ(外部qiita)を参考にしてください。
うえのんEDAXに読み込めるものは、以下のような形式のggfファイルです。自分が黒番のものをblackのほうに、白番のものをwhiteに指定したパスに格納して下さい。②うえのんEDAXを立ち上げると自動で読み込まれます
※非同期で読み込むので、1万件程度なら読み込んでも起動が遅くなったりはしません。
■ggfファイルの記述方法
ここからが難しい(というかめんどくさい)です。
まず、オセロの棋譜の形式としてggfは一般に知られている形式で、例えばここ(外部qiita)を参考にしてください。
(;DT[2021/02/23 18:27:58.JST]PB[myself]PW[playerA]RE[-24]RB[217454]RW[216155]B[F5]W[D6]B[C5]W[F4]B[E3]W[C6]B[D3]W[F6]B[E6]W[D7]B[G4]W[C4]B[G5]W[C3]B[F7]W[D2]B[C1]W[F2]B[E2]W[F3]B[F1]W[H3]B[E7]W[G6]B[C2]W[G3]B[H6]W[H5]B[B3]W[B4]B[G7]W[E8]B[F8]W[D8]B[H7]W[A3]B[H4]W[H8]B[G8]W[H2]B[B5]W[A4]B[A6]W[A5]B[A2]W[B2]B[A1]W[E1]B[G1]W[B1]B[D1]W[G2]B[B6]W[H1]B[C7]W[C8]B[B7]W[A8]B[B8]W[A7];)※複数試合ある場合は、改行はあってもなくてもいいので同じファイルに記入する。
以下、ggfのタグの解説です。
■必須タグ
PB: 黒番のプレーヤ名
PW: 白番のプレーヤ名
RE: 試合結果(黒視点で何石勝ちか)
B: 黒が着手した棋譜("F5"のような形式にだけ対応)
W: 白が着手した棋譜
■任意タグ(できればあった方がいい)
RB: 黒番の「レーティングと段位を表す6桁の数字」
RW: 白番の「レーティングと段位を表す6桁の数字」
DT: 時間(例:2020/04/28 20:46:45.JST、.JSTはなくてよい)
レーティングがないと、レーティング推移グラフが表示されません。
時間がないと、レーティング推移グラフの対局順グラフが時間ソートされません(ファイルに書いてある順にソートされますが)
※レーティングと段位を表す6桁の数字
上4桁がレーティングで下2桁が段位コード。
段位コード:0=不明、40=10級、41=9級、・・・、49=1級、50=初段、51=二段、・・・、59=十段
例:
212554⇒R2125(五段)
216155⇒R2161(六段)
231900⇒R2319(段位不明)
※段位とレーティングが大きく整合しないプレーヤーはレーティングの計算から省かれます。
R1890(六段)⇒省かれる、R2112(1級)⇒省かれる
省いてほしくない場合は、段位を不明にしてください。
R9999(段位不明)⇒省かれない
※明らかにオセクエの段位体系を想定しているので、それ以外の環境のレーティングを入れたい場合は段位不明にするといいです。
■任意タグ(なくてもいい)
そもそも読み込んでないので変な制御文字とかがなければ何でもいいです。
GM: ゲーム名。othelloとか。
PC: なんだっけこれ・・・
BO: 初期盤面です。普通のオセロなら[8 -------- -------- -------- ---O*--- ---*O--- -------- -------- -------- *]ですがアプリから読んでません。中身を一生懸命いじっても初期局面が平行配置になったりしません。
コメント