Articles

curso-r / sakk

CRAN statusCodecov teszt lefedettségR build statuséletciklus: érlelés

áttekintés

{chess} egy nagyképű wrapper r aroundpython-Chess, egy amazinglibrary által létrehozott Niklas fiekas. Lehetővé teszi a felhasználók számára, hogy olvassák és írjákgn fájlokat, valamint olyan játékfákat hozzanak létre és fedezzenek fel, mint amilyeneket a sakkkönyvekben látnak.

telepítés

telepítse a {chess} a Cran-ból:

install.packages("chess")

vagy telepítse a fejlesztési verziót a GitHub-ból:

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

ennek automatikusan telepítenie kell a python-Chess alkalmazást a {reticulate} környezetbe, de kifejezetten megteheti egy kényelmes funkcióval is:

chess::install_chess()

példa

egy meglévő játék elolvasásához egyszerűen használja a read_game(). A felfedezéséhez használhatja a forward()back(), valamint a variations()variation() tosee összes variáció szerepel a következő lépés, és válasszon egyet közülük.

sok más játékot is tartalmaz a csomag, így fel tudsz kelni ésfutni, amint telepíted{chess}! Lásd vignette("games") további információk.

saját játékot is létrehozhatsz a game()segítségével, és variációkat adhatsz hozzá: a move() funkció mozgatásokat és ágakat ad a játék fájához. A karakterláncok egyszerű mozdulatokká alakulnak, míg a list()s pontosan zárójelként viselkedik a PGN-ben, létrehozva az utolsó lépés variációját.Itt láthatod, hogyan hozhatsz létre egy Scholar ‘ Mate-ot, és hogyan kerülheted el:

# 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

vegye figyelembe, hogy a bemenetet sokféleképpen lehet strukturálni move(). Lásdvignette("chess") további információkért.

{chess} számos módon láthatja mind a játék egészét, mind a táblát egy adott időpontban.

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

motiváció

python-sakk szolgált inspirációként (és gerincként) a {chess} számára.Míg az eredeti verzió (és a{rchess} ami azt illeti) széles körben kezeli a “move generation, move validation” (erőteljes osztályokkal ésobject-orientált szintaxissal), a {chess} arra összpontosít, hogy megkönnyítse a PGN-ek mint fák létrehozását és felfedezését.

az API hatókörének szűkítésével úgy gondolom, hogy a csomag intuitívabbá válik azok számára, akik csak gyorsan szeretnének megosztható játékelemzéseket készíteni, vagy egyszerűen felfedezni mások játékait anélkül, hogy igénybe kellene venniükpontozni és kattintani a szoftverre.

{chess} első használata Bobby Fischer My 60memorable játékainak tanulmányozásában segített. Miután néhány nagyon nehézparsing,tudtam konvertálni az egész könyvet PGN és töltse fel tolichess, de még mindig úgy éreztem, theinterface volt túl ügyetlen…

Útiterv

  • NAGs
  • fejlécek
  • Start játék FEN
  • jobb ábrázolása
  • több állapot funkciók
  • Egyéb OSs
  • egység tesztek
  • peciális használat

  • Styler
  • Cran
  • Stockfish API
  • statikus táblák (rejtvények)
  • fényes?

Magatartási Kódex

kérjük, vegye figyelembe, hogy a {chess} projekt megjelent egy ContributorCode ofConduct.By hozzájárul ehhez a projekthez, Ön vállalja, hogy betartja annak feltételeit.

licenc

{chess} licenc a GPL 3 (vagy a youroption bármely későbbi verziója) alatt van. Ellenőrizze az engedélyezést.MDA teljes szöveghez.