Game starting arrangement functions

The package ppdf contains functions that generate the starting piece arrangements for several piecepack games. These functions return data frames that can be used directly with piecepackr::pmap_piece() or ppcli::cat_piece() to generate piecepack game diagrams or they can be used with ppn‘s Portable Piecepack Notation parser read_ppn() to initially setup the game pieces.

Directly generating starting diagrams

The game start functions all return a data frame that can be used directly with piecepackr::pmap_piece() or ppcli::cat_piece():

library("ppcli")
library("ppdf")
cat_piece(piecepack_fide_chess())
Unicode text diagram for Chess
download.file("https://trevorldavis.com/piecepackr/share/demo_cfgs.RData")
cfgs <- new.env()
load("demo_cfgs.RData", envir=cfgs)
pmap_piece(piecepack_fide_chess(), cfg=cfgs$chess5_borders, op_scale=0.5,
           trans=op_transform, default.units="in")
3D diagram for Chess

Use with Portable Piecepack Notation

The game start functions can also be used with Portable Piecepack Notation to initially set the game pieces via the metadata field GameType:

GameType: Four Field Kono

1. b1:b3 1... d3:b3 2. c1:c3 2... a3:c3 3. c2-c1 3... b4:b2 4. a1-b1 4... b3:b1
5. d1:b1 5... c3-c2 6. a2-a3 6... b2:d2 7. a3-b3 7... c4-c3 8. c1-d1 8... d4-d3
9. b1-b2 9... d2:b2 10. b3-a3 10... b2-b1 {Player 1's loss is assured with the
 separation of their two remaining pieces and they should resign in a real game}
11. a3-a2 11... b1-c1 12. d1-d2 12... c1-d1 13. a2-a3 13... a4-b4
14. a3-a4 14... b4-c4 15. a4-b4 15... c4-d4 16. b4-a4 16... d4:d2 {Player 2 wins}
Four Field Kono example

It is also possible to pass in arguments to the game start function by passing a “mapping” to the GameType field:

---
GameType:
  Name: Fujisan
  Coins: "44452n24n3aa/a25335325ann"
...
1. a1-b1 2. n2-k2 3. b1-e1 4. e1-j1 5. j1-j2 6. j2-l2 7. k2-m2
8. m2-m1 9. l2-l1 10. n1-k1 11. m1-i1 12. i1-d1 13. d1-d2 14. l1-i1
15. i1-i2 16. k1-k2 17. k2-e2 18. i2-c2 19. a2-f2 20. e2-h2 21. h2-g2
22. c2-h2 23. h2-h1 24. d2-h2 25. f2-b2 26. b2-b1 27. b1-g1
Animation of a Fuji-san game

In particular for supported games playable with either a piecepack or another game system (like a checkers board) one can inform PPN of the alternative game system to use via a System argument to the GameType field:

---
GameType:
  Name: Four Field Kono
  System: Checkers
...
1. b1:b3 1... d3:b3 2. c1:c3 2... a3:c3 3. c2-c1 3... b4:b2 4. a1-b1 4... b3:b1
5. d1:b1 5... c3-c2 6. a2-a3 6... b2:d2 7. a3-b3 7... c4-c3 8. c1-d1 8... d4-d3
9. b1-b2 9... d2:b2 10. b3-a3 10... b2-b1 {Player 1's loss is assured with the
 separation of their two remaining pieces and they should resign in a real game}
11. a3-a2 11... b1-c1 12. d1-d2 12... c1-d1 13. a2-a3 13... a4-b4
14. a3-a4 14... b4-c4 15. a4-b4 15... c4-d4 16. b4-a4 16... d4:d2 {Player 2 wins}
Four Field Kono example using checkers and a board instead of a piecepack

Supported Game Start Functions

Contained in ppdf

Some games supported in ppdf

Some games supported in ppdf

Alquerque Games

Setups for alquerque sets
game methods comment
Alquerque alquerque_alquerque()  
Bagh-chal alquerque_baghchal()  

Checkers Games

Setups for checkers/draughts sets
game methods comment
(American) Checkers AKA (English) Draughts checker_american_checkers() aka checker_english_checkers() aka checker_checkers()  
American Pool Checkers checker_american_pool_checkers()  
Bashni AKA Column Checkers checker_bashni() aka checker_column_checkers()  
Brazilian Checkers AKA Brazilian Draughts checker_brazilian_checkers()  
Breakthrough checker_breakthrough()  
Canadian Checkers AKA Canadian Draughts checker_canadian_checkers()  
Corner Checkers AKA Corner Draughts checker_corner_checkers()  
Crossings checker_crossings()  
Czech Checkers AKA Czech Draughts checker_czech_checkers()  
Dameo checker_dameo()  
Dao piecepack_dao()  
Dodgem checker_dodgem()  
Focus checker_focus()  
Four Field Kono checker_four_field_kono()  
Frisian Checkers AKA Frisian Draughts checker_frisian_checkers()  
Gothic Checkers AKA Gothic Draughts checker_gothic_checkers()  
Grasshopper checker_grasshopper()  
International Checkers AKA International Draughts checker_international_checkers()  
Italian Checkers AKA Italian Draughts checker_italian_checkers()  
Jamaican Checkers AKA Jamaican Draughts checker_jamaican_checkers()  
Jul-Gonu checker_julgonu()  
Kangaroo checker_kangaroo()  
Lasca checker_lasca()  
Lines of Action checker_lines_of_action()  
Malaysian Checkers AKA Singaporean Checkers checker_malaysian_checkers() aka checker_singaporean_checkers()  
One Way Checkers AKA One Way Draughts checker_one_way_checkers()  
Portuguese Checkers AKA Portuguese Draughts checker_portuguese_checkers()  
Russian Checkers AKA Russian Draughts checker_russian_checkers()  
Spanish Checkers AKA Spanish Draughts checker_spanish_checkers()  
Thai Checkers AKA Thai Draughts AKA Mak-hot AKA Makhos checker_thai_checkers()  
Turkish Checkers AKA Turkish Draughts AKA Dama checker_turkish_checkers()  
Unified Pool Checkers checker_unified_pool_checkers()  
Zimbabwean Pool Checkers checker_zimbabwean_pool_checkers()  

Chess Games

Setups for chess sets
game methods comment
Fischer Random Chess AKA Chess960 chess_fischer_random_chess() aka chess_chess960()  
Horde Chess chess_horde_chess()  
(International) Chess chess_international_chess() aka chess_chess()  
Monochrome Chess chess_monochrome_chess()  
Racing Kings chess_racing_kings()  

Domino Games

Setups for sets of dominoes
game methods comment
Bee Donimoes domino_bee_donimoes()  
Concentration domino_concentration()  
Domino Finder domino_finder()  
(Domino) Fuji-san domino_fujisan()  
(Domino) Patience domino_patience()  
Domino Runners domino_runners()  
Dominoes Freecell domino_freecell()  
Luzon domino_luzon()  
The Jubilee domino_the_jubilee()  
The Sultan domino_the_sultan()  

Go Games

Setups for go sets
game methods comment
Go go_go()  
Gomoku go_gomoku()  

Morris Games

Setups for morris sets
game methods comment
Five Men’s Morris morris_five_mens_morris()  
Nine Men’s Morris morris_nine_mens_morris()  
Seven Men’s Morris morris_seven_mens_morris()  
Six Men’s Morris morris_six_mens_morris()  
Ten Men’s Morris aka Lasker Morris morris_ten_mens_morris() aka morris_lasker_morris()  
Three Men’s Morris morris_three_mens_morris()  
Twelve Men’s Morris morris_twelve_mens_morris()  

Piecepack Games

Setups for piecepack sets
game methods comment
12345ive! piecepack_12345ive()  
Achi piecepack_achi()  
Alice Chess piecepack_alice_chess()  
Alien City piecepack_alien_city()  
Alquerque AKA Qirkat piecepack_alquerque()  
(American) Checkers AKA (English) Draughts piecepack_american_checkers(), piecepack_english_checkers(), piecepack_checkers()  
American Pool Checkers piecepack_american_pool_checkers()  
Awithlaknannai Mosona piecepack_awithlaknannai_mosona()  
Backgammon piecepack_backgammon()  
Bagh-chal piecepack_baghchal()  
Bashni AKA Column Checkers piecepack_bashni() aka piecepack_column_checkers()  
Black Pawn Trucking piecepack_black_pawn_trucking()  
Brain Burn piecepack_brain_burn()  
Brandubh AKA Brandub piecepack_brandubh()  
Brazilian Checkers AKA Brazilian Draughts piecepack_brazilian_checkers()  
Breakthrough piecepack_breakthrough()  
Burbuja piecepack_burbuja()  
Cardinal’s Guards piecepack_cardinals_guards()  
Cell Management piecepack_cell_management()  
Change Change piecepack_change_change()  
Chariots piecepack_chariots()  
Chaturaji piecepack_chaturaji()  
Chinese Checkers AKA (Piecepack) Halma piecepack_chinese_checkers() aka piecepack_halma()  
Climbing Man piecepack_climbing_man()  
Coin Collectors piecepack_coin_collectors()  
Corner Checkers AKA Corner Draughts piecepack_corner_checkers()  
Cribbage piecepack_cribbage() aka piecepack_cribbage_board()  
Crocodile Hop piecepack_crocodile_hop()  
Crossings piecepack_crossings()  
Czech Checkers AKA Czech Draughts piecepack_czech_checkers()  
Dao piecepack_dao()  
Dara piecepack_dara()  
Desfases piecepack_desfases()  
Dodgem piecepack_dodgem()  
Dominoids piecepack_dominoids()  
Easy Slider piecepack_easy_slider()  
Evade piecepack_evade()  
Everest piecepack_everest()  
Fischer Random Chess AKA Chess960 piecepack_fischer_random_chess() aka piecepack_chess960()  
Four Blind Mice piecepack_four_blind_mice()  
Four Field Kono piecepack_four_field_kono()  
Four Seasons Chess piecepack_four_seasons_chess()  
Froggy Bottom piecepack_froggy_bottom()  
Fuji-san piecepack_fujisan()  
Galaxy Express piecepack_galaxy_express()  
Gothic Checkers AKA Gothic Draughts piecepack_gothic_checkers()  
Grasshopper piecepack_grasshopper()  
Ice Floe piecepack_ice_floe()  
Iceberg piecepack_iceberg()  
(International) Chess piecepack_international_chess() aka piecepack_chess()  
Italian Checkers AKA Italian Draughts piecepack_italian_checkers()  
Jamaican Checkers AKA Jamaican Draughts piecepack_jamaican_checkers()  
Japan piecepack_japan()  
Jul-Gonu piecepack_julgonu()  
Kangaroo piecepack_kangaroo()  
King’s Valley piecepack_kings_valley()  
Lab Rats piecepack_lab_rats()  
Landlocked piecepack_landlocked()  
Leapfrog piecepack_leapfrog()  
Ley Lines piecepack_ley_lines()  
Lines of Action piecepack_lines_of_action()  
Ludo piecepack_ludo()  
Lukawan piecepack_lukawan()  
Mathrix piecepack_mathrix()  
Minishogi piecepack_minishogi()  
Nine Men’s Morris piecepack_nine_mens_morris()  
One Man Thrag! piecepack_one_man_thrag()  
One Way Checkers AKA One Way Draughts piecepack_one_way_checkers()  
Pass the Food piecepack_pass_the_food()  
Pawns Crossing piecepack_pawns_crossing()  
Piece Gaps piecepack_piece_gaps()  
Piece Packing Pirates piecepack_piece_packing_pirates()  
(Piecepack) Klondike piecepack_klondike()  
Piecepackman piecepack_piecepackman() Currently only supports the “Roundabout” variant
Plans of Action piecepack_plans_of_action()  
Portuguese Checkers AKA Portuguese Draughts piecepack_portuguese_checkers()  
Quatri piecepack_quatri()  
Racing Kings piecepack_racing_kings()  
Relativity piecepack_relativity()  
Russian Checkers AKA Russian Draughts piecepack_russian_checkers()  
Salta piecepack_salta()  
San Andreas piecepack_san_andreas()  
Sarcophagus piecepack_sarcophagus()  
Seega piecepack_seega()  
Ship It! piecepack_ship_it()  
Shogi AKA Japanese Chess piecepack_shogi() aka piecepack_japanese_chess()  
Shopping Mall piecepack_shopping_mall()  
Skyscrapers piecepack_skyscrapers()  
Slides of Action piecepack_slides_of_action()  
Spanish Checkers AKA Spanish Draughts piecepack_spanish_checkers()  
Speedy Towers piecepack_speedy_towers() Currently only supports the two players variant
Steppin’ Stones piecepack_steppin_stones()  
Tablan piecepack_tablan()  
Tablut piecepack_tablut()  
Tariffs piecepack_tariffs()  
Thai Checkers AKA Thai Draughts AKA Mak-hot AKA Makhos piecepack_thai_checkers()  
The “In” Crowd piecepack_the_in_crowd()  
The Magic Bag piecepack_the_magic_bag()  
The Penguin Game piecepack_the_penguin_game()  
Three Musketeers piecepack_three_musketeers()  
Tic-tac-toe piecepack_tic_tac_toe()  
Tornado vs. Trailer Park piecepack_tornado_vs_trailer_park()  
Tower of Babel AKA (Piecepack) Accordion piecepack_tower_of_babel() aka piecepack_accordion()  
Tracers piecepack_tracers()  
Triactor piecepack_triactor()  
Tula piecepack_tula() Also supports Tim Schutz’s variants 1–4
Turkish Checkers AKA Turkish Draughts AKA Dama piecepack_turkish_checkers()  
Twelve Men’s Morris piecepack_twelve_mens_morris()  
Ultima AKA Baroque Chess piecepack_ultima() aka piecepack_baroque_chess()  
Unified Pool Checkers piecepack_unified_pool_checkers()  
Wormholes piecepack_wormholes()  
Xiangqi AKA Chinese Chess piecepack_xiangqi() aka piecepack_chinese_chess()  
Yoté piecepack_yote()  
Zimbabwean Pool Checkers piecepack_zimbabwean_pool_checkers()  

Reversi Games

Setups for reversi sets
game methods comment
Ming Mang reversi_ming_mang()  
Reversi reversi_reversi()  

Stackpack Games

Setups for stackpack sets
game methods comment
Alice Chess stackpack_alice_chess()  
Chaturaji stackpack_chaturaji()  
Fischer Random Chess AKA Chess960 stackpack_fischer_random_chess() aka stackpack_chess960()  
Four Seasons Chess stackpack_four_seasons_chess()  
Horde Chess stackpack_horde_chess()  
(International) Chess stackpack_international_chess() aka stackpack_chess()  
Salta stackpack_salta()  
Shogi aka Japanese Chess stackpack_shogi() aka stackpack_japanese_chess()  
Ultima aka Baroque Chess stackpack_ultima() aka stackpack_baroque_chess()  
Xiangqi AKA Chinese Chess stackpack_xiangqi() aka stackpack_chinese_chess()  

Contained in piecenikr

Please note some Looney Pyramids / piecepack hybrids like Alien City are contained in the ppdf package.

Setups for the Looney Pyramid game system
game methods comment
Martian Chess icehouse_martian_chess()  

Comments


There are no comments yet.

Add a Comment

You can use Markdown or restructuredText to format your comment.

links

social