curso-r/chess
overview
{chess}
は、niklas fiekasによって作成されたamazinglibraryであるr aroundpython-chessの独断的なラッパーです。 これにより、ユーザーはchessbooksに見られるようなゲームツリーを作成して探索するだけでなく、PGNファイルを読み書きすることができます。CRANから{chess}
のリリースされたバージョンをインストールします。
install.packages("chess")
またはGitHubから開発バージョンをインストールします。
# install.packages("remotes")remotes::install_github("curso-r/chess")
これは自動的にpython-chessを{reticulate}
環境にインストールしますが、convenientfunctionで明示的に行うこともできます。
chess::install_chess()
example
既存のゲームを読むには、単にread_game()
forward()
back()
variations()
variation()
{chess}
vignette("games")
game()
move()
関数は、移動だけでなく、thegameのツリーを枝追加します。 文字列は単純な移動に変換されますが、list()
はPGNの括弧として正確に動作し、最後の移動のバリエーションが作成されます。ここでは、Scholar’smateを再作成する方法とそれを回避する方法を見ることができます。
# Scholar's mate and some defensesscholars_mate <- game() %>% move("e4") %>% move("e5", list("e6"), list("d5")) %>% move("Bc4") %>% move("Nc6", list("Nf6")) %>% move("Qh5") %>% move("Nf6", list("g6", "Qf3", "Nf6")) %>% move("Qxf7")# Last mainline movescholars_mate#> <4. Qxf7#>#> r . b q k b . r#> p p p p . Q p p#> . . n . . n . .#> . . . . p . . .#> . . B . P . . .#> . . . . . . . .#> P P P P . P P P#> R N B . K . N R
move()
vignette("chess")
を参照してください。p>
{chess}
また、特定の時点でゲーム全体とボードの両方を見る多くの方法を備えています。p>
# Print with unicode (doesn't look good on GitHub)print(scholars_mate, unicode = TRUE)#> <4. Qxf7#>#> ♜ . ♝ ♛ ♚ ♝ . ♜#> ♟ ♟ ♟ ♟ . ♕ ♟ ♟#> . . ♞ . . ♞ . .#> . . . . ♟ . . .#> . . ♗ . ♙ . . .#> . . . . . . . .#> ♙ ♙ ♙ ♙ . ♙ ♙ ♙#> ♖ ♘ ♗ . ♔ . ♘ ♖# Export the FEN of the boardfen(scholars_mate)#> "r1bqkb1r/pppp1Qpp/2n2n2/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4"# See the PGN after some movestr(back(scholars_mate, 3))#> 2... Nc6 3. Qh5 Nf6 ( 3... g6 4. Qf3 Nf6 ) 4. Qxf7## Export the PGN after some movepgn(back(scholars_mate, 3))#> "2... Nc6 3. Qh5 Nf6 ( 3... g6 4. Qf3 Nf6 ) 4. Qxf7#"# Plot current boardplot(scholars_mate)
モチベーション
python-chessは、{chess}
{rchess}
)は、”move generation、move validation”(強力なクラスとオブジェクト指向の構文)を幅広く扱いますが、{chess}
は、Pgnをツリーとして作成して探索することに焦点を当てています。
APIの範囲を絞り込むことで、ソフトウェアをポイントアンドクリックすることなく、共有可能なgameanalysesをすばやく作成したり、他の人のゲームを簡単に探索したりしたい人には、パッケージがより直感的になると信じています。p>
{chess}
の最初の使用は、私がBobby Fischerの私の60memorableゲームを勉強するのを助けてくれました。 いくつかの非常に困難な解析の後、私は本全体をPGNに変換してアップロードすることができましたが、インターフェイスが不器用すぎるように感じました…
ロードマップ
- NAGs
- ヘッダー
- FENからゲームを開始
- より良いプロット
- より多くのステータス関数
- 他のOSs
- 単体テスト
- 単体テスト
- 高度な使用法
- スタイラー
- cran
- stockfish api
- 静的ボード(パズル)
- 光沢がありますか?
行動規範
{chess}
プロジェクトはContributorCodeでリリースされていることに注意してくださいofConduct.By このプロジェクトに貢献するには、その条件を遵守することに同意します。P>
ライセンス
{chess}
はGPL3(またはそれ以降のバージョン)の下でライセンスされています。 OutLICENSEをチェックしてください。完全なテキストのためのmd。