Articles

kurzor / šachy

CRAN stavCodecov test pokrytíR vybudovat statusživotního Cyklu: zrání

Přehled

{chess} je umíněný obal pro R aroundpython-šachy, amazinglibrary vytvořil Niklas Fiekas. Itallows uživatelům číst a writePGN soubory stejně jako vytvářet a zkoumat herní stromy, jako jsou ty, které jsou vidět v chessbooks.

Instalace

Nainstalovat vydanou verzi {chess} od BRUSINKO:

install.packages("chess")

Nebo nainstalovat vývojovou verzi z GitHub:

# install.packages("remotes")remotes::install_github("curso-r/chess")

Toto by se automaticky nainstalovat python-šachy, aby {reticulate}prostředí, ale můžete také výslovně to s convenientfunction:

chess::install_chess()

Příklad:

číst existující hry, jednoduše použijte read_game(). Prozkoumat je můžete použít forward()back() i variations()variation() chcete-li zobrazit všechny změny uvedené na další krok, a vybrat jednu z nich.

mnoho dalších her je součástí balíčku, takže můžete vstát a spustit, jakmile nainstalujete {chess}! Viz vignette("games") více informací.

můžete si také vytvořit vlastní hru s game() a přidat varianty toit: funkce move() přidává pohyby a větve stromu hry. Řetězce jsou převedeny na jednoduché pohyby, zatímco list()s behaveexactly jako závorky v PGN, vytváří variace na poslední tah.Zde můžete vidět, jak se znovu Učenec’smate a některé způsoby, aby se ho:

# 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

Všimněte si, že existuje mnoho způsobů, jak strukturovat vstup do move(). Vizvignette("chess") pro více informací.

{chess} také nabízí mnoho způsobů, jak vidět jak hru jako celek, tak desku v určitém okamžiku.

# 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)

Motivace

python-šachy sloužil jako inspirace (a páteř) pro {chess}.Zatímco původní verze (a{rchess} na to přijde) broadlyhandles „posunout generace, přesunout validace“ (s výkonnými tříd andobject orientované syntaxi), {chess} zaměřuje se na to, aby to snadno vytvářet a prozkoumat PGNs jako stromy.

Tím, že zužuje rozsah API, věřím, že balíček becomesmore intuitivní lidé, kteří jen chtějí rychle vytvořit shareable gameanalyses nebo jednoduše prozkoumat hry jiných lidí, aniž by museli uchylujína bod a klepněte na software.

{chess}první použití mi pomohlo studovat mé 60Memorable hry Bobbyho Fischera. Po nějaké velmi difficultparsing,byl jsem schopen převést celou knihu PGN a nahrát ji tolichess, ale pořád jsem se cítil jako theinterface byl příliš neohrabaný…

cestovní mapy

  • +
  • Záhlaví
  • Začít hru od FEN
  • Lepší vykreslování
  • Více stav funkce
  • Ostatní OSs
  • Unit testy
  • Pokročilé použití
  • Styler
  • CRAN
  • Stockfish API
  • Statická desky (puzzle)
  • Lesklý?

Kodex Chování

vezměte Prosím na vědomí, že {chess} projekt je propuštěn s ContributorCode ofConduct.By přispět na tento projekt, souhlasíte, že budete dodržovat její podmínky.

Licence

{chess} je licencována pod GPL 3 (nebo jakoukoli novější verzí na youroption). Podívejte se na licenci.mdfor celý text.