質問:
PGNファイルからチェス盤をレンダリングする
wintermeyer
2020-03-15 10:53:42 UTC
view on stackexchange narkive permalink

2Dチェス盤の画像をレンダリングし、最後の移動後にLinuxコンソール上の特定のPGNファイルからPNGまたはJPEGとして保存したいと思います。どうすればよいですか?

PGNファイルがあり、ボードのスクリーンショットを取得したいのですが。

簡単な作業のようですが、解決策が見つかりません。 Linuxコンソールでスクリプト化できるものです。

PS 「単純なタスク」という言葉は、ここの一部の読者にとっては煩わしいようです。ネイティブスピーカーではないので、このニュアンスを理解するのに苦労していますが、決して誰かの足を踏み入れたくはありません。 Linuxコンソールのバックグラウンドから来ているので、これはコンソールで簡単に実行できるはずだと感じています。しかし、それを行うためのツールが見つかりませんでした。

「レンダリング」の意味はよくわかりませんが、ファイルを読んでゲームのscid またはxboard を表示するだけの場合は、適切なファイルをインストールすると、それが実行されます。
質問を更新しました。
おそらく最も簡単なのは、お気に入りのpgnリーダーでpgnを開いて、スクリーンショットを取得することです-https://itsfoss.com/take-screenshot-linux/これらすべてを1つのステップで実行するための専用ツールがないことを知っています。する人のための答え
PGNはゲーム全体を保存するためのものですが、最後の移動後にゲームの画像を保存しますか?または与えられた動きで?それ以外の場合、おそらく使用したいのはFENです。これは、ゲームではなく特定の位置を記述するための標準的な表記法です。
こんにちは。あなたの編集が表示されます。はい、それは簡単ですが、PGNをFENに解析するにはPythonパッケージのようなものが必要です。 PGN自体はゲームであるため、UNIXツールでPGNを画像に変換することはできません。
これは[ソフトウェアの推奨事項] * https://softwarerecs.stackexchange.com/)への質問のように聞こえます
三 答え:
Ellie
2020-03-15 21:37:31 UTC
view on stackexchange narkive permalink

python-chess SVGレンダリング機能を使用できます。これにより、python-chessを使用してロードされたボード位置のSVG形式の視覚化を作成できます。

FENからSVG

たとえば、 FEN入力として(Pythonスクリプトを boardtosvg.py として保存するとします)

python3とpython-chessライブラリバージョン 0.30.1 codeを使用します>

  import chessimport chess.svgimport sysarguments = sys.argvfen = str(arguments [1])board = chess.Board(fen)boardsvg = chess.svg.board(board = board)f = open( "BoardVisualisedFromFEN.SVG"、 "w")f.write(boardsvg)f.close() 
  • 例、FEN: 'rnbqkbnr / pppppppp / 8/8 / 4P3 / 8 / PPPP1PPP / RNBQKBNR b KQkq e3 0 1'

  • ターミナルからスクリプトを実行するコマンド:

    python boardtosvg.py'rnbqkbnr / pppppppp / 8/8 / 4P3 / 8 / PPPP1PPP / RNBQKBNR b KQkq e3 0 1 '

保存されたファイル(SVGを開くことができない場合は、少なくともchromeなどのブラウザーを使用してファイルを表示できます)

enter image description here

からの位置PGNからSVGへ

同様に、入力がPGNファイルの場合、ゲームの最後の位置のSVGをインスタンスで保存する方法は次のとおりです(これを拡張して、任意の移動で位置を保存できます) ):

  import chessimport chess.svgimport chess.pgnimport sysarguments = sys.argvpgnfilename = str(arguments [1])#pgn file:with open(pgnfilename)as f:game = chessを読み取ります。 pgn.read_game(f)#ゲームの最後に移動し、そこからchess.Board()を作成します:game = game.end()board = game.board()boardsvg = chess.svg.board(board = board )f = open( "BoardVisualisedFromPGN.SVG"、 "w")f.write(boardsvg)f.close() 

保存されたファイル:

enter image description here

あとは、そのように作成されたSVGファイルをPNGに変換するだけです。これは、Pythonでも実行できます。以下のリンクの解決策を参照してください。

SmallChess
2020-03-15 20:57:32 UTC
view on stackexchange narkive permalink

はい、もちろん可能です。私はそれを専門的にたくさんやりました。ただし、PGNチェスゲームを取得して画像に変換するだけのツールはありません。それほど難しいことではありませんが、プログラミングを行う必要があります。

これは、チェスで機械学習データセットを生成する方法に関するリンクです。コードを再利用できるはずです。問題に関連する部分を強調しました。

https://github.com/Elucidation/tensorflow_chessbotに例があります:

enter image description here

一般的な手順:

  • Pythonpython-chessを使用してPGNファイルを解析します。非常に簡単です。信頼してください。
  • 解析されたFENを使用してください。上記のワークフローに従ってください。
Jorge Acuna
2020-03-15 14:11:14 UTC
view on stackexchange narkive permalink

誰かがあなたに無料でコードを提供するためにそれを「単純なタスク」と呼ぶことは非常に礼儀正しいimoだとは思いません。

その上、確かに実行可能ですが、そうではありません簡単な作業。グラフィック表現を処理するクラスと、「変換」を実行する別のクラスを実装する必要があります。また、考慮すべき要素がかなりあります。あなたがそれを始めさえする知識を持っていないならば、あなたはあなたのためにそれをするために誰かを雇うべきです。 Afaik、このフォーラムは、実際に作業を行っていて、プロジェクトの特定の部分で立ち往生しているコーダーを支援するためのものです。誰もが無料の実装を求めるためのコードウィッシュな噴水ではありません。

私はこれを誰かにコードを書くように頼むとは読んでいません-OPがインストール/ダウンロードできる何かがすでに存在する場合はもっと。 Linuxの世界では、何十億ものファイル形式コンバーターが無料で利用できます。すでに利用できるものがあるかどうかを尋ねるのは不合理ではありません。
@Jorge Acuna、私はLinuxを使用していませんが、これはWindowsでは簡単です。無料のビューアを含む任意のChessBase製品を使用して、PGNファイルを開き、位置に移動して、[ホーム]タブに移動し、[位置をコピー]をクリックするだけです。コードは必要ありません。あなたの投稿も回答ではないので、コメントにのみ入れるべきでした。
まあ、それは簡単な作業です。 2時間くらいでやった。ここで説明する問題は、チェスプログラミングの基本のようなものです。
ええと、ゼロからそれをすること、あなたが2時間でそれをすることができるならば、あなたは少なくとも有能に雇用されなければなりません。すでにシステムを導入している場合は、実装がかなり高速な機能になる可能性があります。私の記憶では、元の投稿は「Linuxコンソールで機能を拡張または作成するためのツールやプラグイン」について言及していませんでした。ただし、これが当てはまり、Linuxでは、これらのプラグインまたはスクリプトを実行して、無料で渡すことができます。私が何かを言ったことを忘れてください。 Linuxはすべての土地で無料です。スマートチェスによると、この簡単にコーディングできるツールを求めているとのことですが、


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 4.0ライセンスに感謝します。
Loading...