見出し画像

将棋ウォーズの棋譜をShogiGUIで解析する為のコピペ

将棋ウォーズの棋譜をコピーしてShogiGUIに貼り付けるだけでしょ?

実は以前まではそれで行けていたんですが,いつからかできなくなってるんですよね...
そこで今日はどうやってShogiGUIで解析していくか徒然なるままに書きたいと思います.


【原因】将棋ウォーズの棋譜コピペでいけなくなった理由

はじめは,将棋ウォーズ側で解析できなくしたのかなぁって思ったんですがどうやらそういう訳でもないようです..
(そういう意図があるかもしれませんが)

実はとてもシンプルに,☗や☖に符号が変わっておりこれが環境依存だからだそうです.
一般的には▲や△を使っているみたいです.
(専門家じゃない,ただの将棋エンジョイ勢なので詳しいことは専門家に聞いてくり!

Warsより棋譜.こうなってますね

じゃあ,上のように☗や☖を▲や△に置換すれば行けるのでは????

・・
・・・
・・・・

置換して貼り付けたら..

・・・・・・行けます!
行けちゃいましたね..
もうこんなん置換しておけばいいじゃないですか!

【解決策1】メモ帳で置換が簡単!・・・だけど,メンドイ

上記のように置換するだけでOKです!
なのでメモ帳を開いて置換していきましょう.

将棋ウォーズから棋譜見て[Ctrl]+[A]で選択した後[Ctrl]+[C]でコピー!
[win]+[R] で開いて"notepad"と入力後[Enter]!
[Ctrl]+[V]で貼り付けた後,[Ctrl]+[H]で置換ウインドウ!
置換したい文字入力して[すべて置換]押下!
このように置換できるので,もう片方もやりましょう!

ただ,これだけなんです.
これだけなんですが.
これって面倒じゃないですか?
Programingに詳しい方は,後述でもっと便利にしちゃいましょう!!

【解決策2】Pythonでスクリプト作っちゃう

Pythonでスクリプトをちゃちゃっと作ってしまいましょう!
Pythonの環境構築などは,調べれば先人の方達が詳しぃ~く述べてくれていますので,ここではスクリプトのみを記載しておきます!

import pyperclip as cb

# 置換対象の環境依存文字と置換後の文字の辞書
replacements = {
    "☖": "△",
    "☗": "▲",
}

def replace_env_chars(text):
  """
  環境依存文字を置換する関数

  Args:
    text: 置換対象の文字列

  Returns:
    置換後の文字列
  """
  for char, replacement in replacements.items():
    text = text.replace(char, replacement)
  return text

if __name__ == "__main__":
  # クリップボードの内容を取得
  text = cb.paste()

  # 環境依存文字を置換
  replaced_text = replace_env_chars(text)

  # 置換後の文字列をクリップボードにコピー
  cb.copy(replaced_text)

くっそ雑に紹介して申し訳ないですが,自分も専門家じゃないので
厳密な事は述べられません..申し訳ない.
pyperclipというモジュールがwindowsのクリップボードを操作できます.
なので,pipコマンド使ってモジュールインストールしてからimportしてください!

pip install pyperclip

(ファイル名はpyperclip.pyとは絶対にしないでくださいね.エラーなっちゃいますんで)
置換したい辞書作って,置換する関数作って,あとはメインを記載するだけ.
ね?簡単でしょ?
これをDesktopに置いておき,コピー&スクリプト実行&ペースト
するだけで,ShogiGUIで解析できます!
メモ帳よりは便利ですよね???ね???

最後に

雑く紹介して申し訳ございませんが,原因分かれば対処もできますね.
この記事が少しでも悩んでいる人の助けになれば幸いです.

この記事が気に入ったらサポートをしてみませんか?