curso-r / Shakki
overview
{chess}
on Niklas fiekasin luoma R aroundpython-shakin huikea kääre. Sen avulla käyttäjät voivat lukea ja kirjoittaa GGN-tiedostoja sekä luoda ja tutkia pelipuita, kuten chessbookissa nähtyjä.
asennus
Asenna {chess}
cranista:
install.packages("chess")
tai asenna kehitysversio Githubista:
# install.packages("remotes")remotes::install_github("curso-r/chess")
tämän pitäisi asentaa Python-Shakki automaattisesti {reticulate}
ympäristö, mutta voit tehdä sen myös eksplisiittisesti kätevällä toiminnolla:
chess::install_chess()
esimerkki
Jos haluat lukea olemassa olevan pelin, käytä vain read_game()
. Sen tutkimiseen voi käyttää forward()
back()
, sekä variations()
variation()
Katso kaikki seuraavassa siirrossa luetellut muunnelmat ja valitse niistä yksi.
monet muut pelit sisältyvät pakettiin, joten voit nousta andrunningiin heti kun asennat {chess}
! Katso vignette("games")
formore information.
voit myös luoda oman pelisi game()
ja lisätä muunnelmia peliin: move()
funktio lisää liikkeitä sekä haarautuu pelin puun. Merkkijonot muunnetaan yksinkertaisiksi siirroiksi, kun taas list()
s käyttäytyy sulkeena PGN: ssä, jolloin syntyy variaatio viimeisestä siirrosta.Tästä näet, miten tutkijan olemus voidaan luoda uudelleen ja miten sitä voidaan hyödyntää:
# 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
huomaa, että on monia tapoja jäsentää tulomove()
. Katso lisätietojavignette("chess")
.
{chess}
sisältää myös monia tapoja nähdä sekä peli kokonaisuutena että pelilauta tiettynä ajankohtana.
# 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)
Motivaatio
python-Shakki toimi inspiraationa (ja selkärankana) {chess}
.Vaikka alkuperäinen versio (ja{rchess}
itse asiassa) käsittelee laajemmin ”move generation, move validation” (tehokkailla luokilla ja object-oriented syntaksilla), {chess}
keskittyy helpottamaan PGN: ien luomista ja tutkimista puina.
rajaamalla API: n soveltamisalaa, uskon paketin muuttuvan intuitiivisemmaksi ihmisille, jotka haluavat vain luoda nopeasti jaettavia gameanalyseja tai tutkia helposti muiden pelejä ilman, että heidän tarvitsee resortoida point and click-ohjelmistoa.
{chess}
’s first use was helping me study Bobby Fischer’ s My 60memorable Games. Joidenkin hyvin vaikeuksien jälkeen sain muutettua koko kirjan PGN: ksi ja ladattua sen tolichessiksi,mutta silti koin, että interface oli liian kömpelö…
tiekartta
- NAGs
- parempi piirtäminen
- styler
- cran
- Stockfish API
- staattiset laudat (palapelit)
- kiiltävä?
Aloituspeli FENISTÄ
lisää tilafunktioita muut OSs yksikkötestit li> advanced usage
Code of Conduct
huomaa, että {chess}
projekti on julkaistu Contributorcodella ofConduct.By osallistumalla tähän projektiin sitoudut noudattamaan sen ehtoja.
lisenssi
{chess}
on lisensoitu GPL 3: n (tai minkä tahansa myöhemmän version youroption) nojalla. Check outLICENSE.mdfor koko teksti.