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.
Contents
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())
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")
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}
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
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}
Supported Game Start Functions
Contained in ppdf
Some games supported in ppdf
Alquerque Games
| game | methods | comment |
|---|---|---|
| Alquerque | alquerque_alquerque() | |
| Bagh-chal | alquerque_baghchal() |
Checkers Games
| 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
| 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
| 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() |
Morris Games
| 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
| 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
| game | methods | comment |
|---|---|---|
| Ming Mang | reversi_ming_mang() | |
| Reversi | reversi_reversi() |
Stackpack Games
| 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.
| game | methods | comment |
|---|---|---|
| Martian Chess | icehouse_martian_chess() |