Articles

curso-r / șah

stare CRANacoperire test Codecovr construi stareaciclul de viață: maturing

overview

{chess} este un înveliș dogmatic pentru r aroundpython-șah, o bibliotecă uimitoare creată de Niklas fiekas. Permite utilizatorilor să citească și să scriepgn fișiere, precum și să creeze și să exploreze copaci de joc, cum ar fi cei văzuți în cărțile de șah.

instalare

Instalați versiunea lansată a {chess} de la CRAN:

install.packages("chess")

sau instalați versiunea de dezvoltare de la GitHub cu:

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

Acest lucru ar trebui să instaleze automat Python-șah la {reticulate}mediu, dar puteți, de asemenea, face în mod explicit cu un convenientfunction:

chess::install_chess()

exemplu

pentru a citi un joc existent, pur și simplu utilizați read_game(). Pentru a-l explora, puteți folosi forward()back(), precum și variations()variation() pentru a vedea toate variantele listate pentru următoarea mișcare și alegeți una dintre ele.

multe alte jocuri sunt incluse în pachet, astfel încât să vă puteți ridica șifuncționând imediat ce instalați {chess}! Vezivignette("games") pentru mai multe informații.

de asemenea, puteți crea propriul joc cugame() și adăugați variații toit:move() funcția adaugă mișcări, precum și ramuri arborele jocului. Șirurile sunt convertite în mișcări simple, în timp celist()se comportă ca paranteze în PGN, creând o variație a ultimei mișcări.Aici puteți vedea cum să recreați un coleg de școală și câteva modalități de a-l evita:

# 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

rețineți că există multe modalități de a structura intrarea în move(). A se vedeavignette("chess") pentru mai multe informații.

{chess} oferă, de asemenea, multe moduri de a vedea atât jocul în ansamblu, cât și tabla la un moment dat.

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

motivație

python-șah a servit ca sursă de inspirație (și coloana vertebrală) pentru{chess}.În timp ce versiunea originală (și{rchess} pentru care contează) broadlyhandles „generation move, move validation” (cu clase puternice andobject-oriented sintaxa), {chess} se concentrează pe a face mai ușor de createand explora PGN-uri ca copaci.

prin restrângerea domeniului de aplicare al API, cred că pachetul devinemai intuitiv pentru persoanele care doresc doar să creeze rapid analize de joc partajabile sau să exploreze cu ușurință jocurile altor persoane, fără a fi nevoie să apelezela punct și faceți clic pe software.

{chess}prima utilizare m-a ajutat să studiez jocurile mele 60memorabile ale lui Bobby Fischer. După unele foarte dificilparsing,am fost capabil de a converti întreaga carte la PGN și încărcați-l tolichess, dar eu încă mai simtit ca theinterface a fost prea stângace…

foaie de parcurs

  • NAGs
  • anteturi
  • începe jocul de la FEN
  • mai bine complot
  • mai multe funcții de stare
  • alte oss
  • teste unitare
  • utilizare avansată
  • Styler
  • Cran
  • API Stockfish
  • placi statice (puzzle-uri)
  • strălucitor?

codul de conduită

vă rugăm să rețineți că{chess} proiectul este lansat cu un cod de contribuție ofConduct.By contribuind la acest proiect, sunteți de acord să respectați termenii acestuia.

Licență

{chess} este licențiat sub GPL 3 (sau orice versiune ulterioară la youroption). Verificați outLICENSE.mdpentru textul integral.