Package 'ppdf'

Title: Board game setups
Description: Generate 'tibble' data frames indicating how to set up over a hundred board games playable with public domain game systems. Data format can be used by 'piecepackr' to generate graphics with the 'grid', 'ggplot2', 'rayrender', 'rayvertex', and 'rgl' graphics systems and by 'ppcli' to generate plaintext graphics with 'cli'.
Authors: Trevor L. Davis [aut, cre]
Maintainer: Trevor L. Davis <[email protected]>
License: MIT + file LICENSE
Version: 0.1.0-5
Built: 2024-11-04 05:50:22 UTC
Source: https://github.com/piecepackr/ppdf

Help Index


Checkers boards

Description

checkers_board() returns a square checkers board of desired size and type.

chess_board() returns a square checkered board of desired size and type.

Usage

checkers_board(
  nrows = 8L,
  ncols = nrows,
  x0 = 1,
  y0 = 1,
  ...,
  piece_side = "board_face",
  suit = 3L,
  angle = 0,
  cell_width = 1L
)

chess_board(
  nrows = 8L,
  ncols = nrows,
  x0 = 1,
  y0 = 1,
  ...,
  piece_side = "board_face",
  suit = 3L,
  angle = 0,
  cell_width = NULL
)

Arguments

nrows

Number of rows in game board

ncols

Number of columns in game board

x0

X coordinate for the center of the first cell

y0

Y coordinate for the center of the first cell

...

Ignored

piece_side

If "board_face" a checkered board (as in American Checkers). If "board_back" a lined board (as in Turkish Checkers).

suit

Suit value (color) of board. 2L is "black" and 3L is "green".

angle

Angle of board in degrees. Italian Checkers rotates its board 90 degrees compared to other checkers variants.

cell_width

Width of board cell. piecepackr::game_systems() supports 1 or 2. If NULL then don't set it yet.


Setups for other games playable with a checkers set

Description

tibble data frames of setups for 7 other games playable with a checkers set. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

checkers_breakthrough(cell_width = 1)

checkers_crossings(cell_width = 1)

checkers_focus(cell_width = 1)

checkers_four_field_kono(cell_width = 1)

checkers_grasshopper(cell_width = 1)

checkers_julgonu(cell_width = 1)

checkers_lines_of_action(cell_width = 1)

Arguments

cell_width

Width of board cell. Most renderers support 1 or 2.

Details

Here are links for more information about the various games:

Game URL
Breakthrough https://en.wikipedia.org/wiki/Breakthrough_(board_game)
Crossings https://en.wikipedia.org/wiki/Crossings_(game)
Focus https://en.wikipedia.org/wiki/Focus_(board_game)
Four Field Kono https://en.wikipedia.org/wiki/Four_Field_Kono
Grasshopper http://www.cyningstan.com/game/71/grasshopper
Jul-Gonu https://en.wikipedia.org/wiki/Jul-Gonu
Lines of Action https://en.wikipedia.org/wiki/Lines_of_Action

Setups for checkers variants

Description

tibble data frames of setups for 16 checkers variants. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

checkers_american_checkers(cell_width = 1)

checkers_american_pool_checkers(cell_width = 1)

checkers_brazilian_checkers(cell_width = 1)

checkers_canadian_checkers(cell_width = 1)

checkers_checkers(cell_width = 1)

checkers_czech_checkers(cell_width = 1)

checkers_dameo(cell_width = 1)

checkers_english_checkers(cell_width = 1)

checkers_frisian_checkers(cell_width = 1)

checkers_gothic_checkers(cell_width = 1)

checkers_international_checkers(cell_width = 1)

checkers_italian_checkers(cell_width = 1)

checkers_jamaican_checkers(cell_width = 1)

checkers_portuguese_checkers(cell_width = 1)

checkers_russian_checkers(cell_width = 1)

checkers_spanish_checkers(cell_width = 1)

checkers_thai_checkers(cell_width = 1)

checkers_turkish_checkers(cell_width = 1)

Arguments

cell_width

Width of board cell. Most renderers support 1 or 2.

Details

Here are links for more information about the various games:

Game URL
(American) Checkers AKA (English) Draughts https://en.wikipedia.org/wiki/Draughts
American Pool Checkers https://draughts.github.io/american-pool-checkers.html
Brazilian Checkers AKA Brazilian Draughts https://en.wikipedia.org/wiki/Brazilian_draughts
Canadian Checkers AKA Canadian Draughts https://en.wikipedia.org/wiki/Canadian_checkers
Czech Checkers AKA Czech Draughts https://en.wikipedia.org/wiki/Czech_draughts
Dameo https://en.wikipedia.org/wiki/Dameo
Frisian Checkers AKA Frisian Draughts https://en.wikipedia.org/wiki/Frisian_draughts
Gothic Checkers AKA Gothic Draughts http://mlwi.magix.net/bg/gothiccheckersvariants.htm
International Checkers AKA International Draughts https://en.wikipedia.org/wiki/International_draughts
Italian Checkers AKA Italian Draughts https://en.wikipedia.org/wiki/Italian_draughts
Jamaican Checkers AKA Jamaican Draughts https://web.archive.org/web/20230605023244/http://poolcheckers.com/jamaica/
Portuguese Checkers AKA Portuguese Draughts http://www.fpdamas.pt/regras/
Russian Checkers AKA Russian Draughts https://en.wikipedia.org/wiki/Russian_draughts
Spanish Checkers AKA Spanish Draughts https://mindsports.nl/index.php/on-the-evolution-of-draughts-variants/draughts-variants/497-dama_s
Thai Checkers AKA Thai Draughts AKA Mak-hot AKA Makhos https://checkers.fandom.com/wiki/Mak-hot
Turkish Checkers AKA Turkish Draughts AKA Dama https://en.wikipedia.org/wiki/Turkish_draughts

Setups for chess variants

Description

tibble data frames of setups for 2 chess variants. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

chess_chess(cell_width = 1)

chess_chess960(seed = NULL, cell_width = 1)

chess_fischer_random_chess(seed = NULL, cell_width = 1)

chess_international_chess(cell_width = 1)

Arguments

cell_width

Width of board cell. Most renderers support 1 or 2.

seed

Seed that determines setup, either an integer or NULL

Details

Here are links for more information about the various games:

Game URL
(International) Chess https://en.wikipedia.org/wiki/Chess
Fischer Random Chess AKA Chess960 https://www.chessvariants.com/diffsetup.dir/fischer.html

Setups for dominoes variants

Description

tibble data frames of setups for 1 dominoes variants. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

dominoes_fujisan(seed = NULL)

Arguments

seed

Seed that determines setup, either an integer or NULL

Details

Here are links for more information about the various games:

Game URL
(Domino) Fuji-san http://donkirkby.github.io/donimoes/rules.html#fujisan

Data frames with game info

Description

games_chess(), games_dominoes(), games_checkers(), games_piecepack(), and games_stackpack() contain information about the games whose setups are provided by this package.

Usage

games_chess()

games_checkers()

games_dominoes()

games_piecepack()

games_stackpack()

Value

A tibble::tibble() data frame with character columns "game", "methods", "comment", and "url" for game name, setup function name(s), possible comment, and url for more information.

Examples

head(games_piecepack())
# Number of games for each game system
nrow(games_chess())
nrow(games_checkers())
nrow(games_dominoes())
nrow(games_piecepack())
nrow(games_stackpack())

Normalize name(s)

Description

normalize_name() normalizes (game) name(s).

Usage

normalize_name(x, sep = "_")

Arguments

x

Name to normalize.

sep

Separator character.

Details

⁠normalize_name(x, sep = "_") is used to help create R variable names while ⁠normalize_name(x, sep = "-")' is used to help create filenames and LaTeX labels.

Value

Character vector of normalized names.

Examples

normalize_name("Fuji-san")
  normalize_name("Nine Men's Morris", sep = "-")

Setups for checkers variants playable with a piecepack

Description

tibble data frames of setups for 12 checkers variants playable with a piecepack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

piecepack_american_checkers()

piecepack_american_pool_checkers()

piecepack_checkers()

piecepack_brazilian_checkers()

piecepack_czech_checkers()

piecepack_english_checkers()

piecepack_gothic_checkers()

piecepack_italian_checkers()

piecepack_jamaican_checkers()

piecepack_portuguese_checkers()

piecepack_russian_checkers()

piecepack_spanish_checkers()

piecepack_thai_checkers()

piecepack_turkish_checkers()

Details

Here are links for more information about the various checkers variants:

Game URL
(American) Checkers AKA (English) Draughts https://www.ludism.org/ppwiki/Checkers
American Pool Checkers https://draughts.github.io/american-pool-checkers.html
Brazilian Checkers AKA Brazilian Draughts https://en.wikipedia.org/wiki/Brazilian_draughts
Czech Checkers AKA Czech Draughts https://en.wikipedia.org/wiki/Czech_draughts
Gothic Checkers AKA Gothic Draughts http://mlwi.magix.net/bg/gothiccheckersvariants.htm
Italian Checkers AKA Italian Draughts https://en.wikipedia.org/wiki/Italian_draughts
Jamaican Checkers AKA Jamaican Draughts https://web.archive.org/web/20230605023244/http://poolcheckers.com/jamaica/
Portuguese Checkers AKA Portuguese Draughts http://www.fpdamas.pt/regras/
Russian Checkers AKA Russian Draughts https://en.wikipedia.org/wiki/Russian_draughts
Spanish Checkers AKA Spanish Draughts https://mindsports.nl/index.php/on-the-evolution-of-draughts-variants/draughts-variants/497-dama_s
Thai Checkers AKA Thai Draughts AKA Mak-hot AKA Makhos https://checkers.fandom.com/wiki/Mak-hot
Turkish Checkers AKA Turkish Draughts AKA Dama https://en.wikipedia.org/wiki/Turkish_draughts

Setups for chess variants playable with a piecepack

Description

tibble data frames of setups for 8 chess variants playable with a piecepack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

piecepack_alice_chess(has_subpack = FALSE, max_tiles = 24L)

piecepack_baroque_chess(has_subpack = FALSE)

piecepack_chaturaji(has_subpack = FALSE)

piecepack_chess(has_subpack = FALSE)

piecepack_chinese_chess(has_subpack = FALSE)

piecepack_four_seasons_chess(has_subpack = FALSE)

piecepack_international_chess(has_subpack = FALSE)

piecepack_japanese_chess(has_subpack = FALSE, cfg2 = "piecepack")

piecepack_minishogi()

piecepack_shogi(has_subpack = FALSE, cfg2 = "piecepack")

piecepack_ultima(has_subpack = FALSE)

piecepack_xiangqi(has_subpack = FALSE)

Arguments

has_subpack

Has a piecepack subpack

max_tiles

Maximum number of (piecepack) tiles available to build boards

cfg2

A string of a piecepack expansion (or perhaps "piecepack" for a second piecepack)

Details

Here are links for more information about the various chess variants:

Game URL
Alice Chess https://en.wikipedia.org/wiki/Alice_chess
Chaturaji https://www.ludism.org/ppwiki/Chaturaji
Four Seasons Chess https://www.chessvariants.com/historic.dir/4seiz.html
(International) Chess https://www.ludism.org/ppwiki/Chess
Minishogi https://en.wikipedia.org/wiki/Minishogi
Shogi AKA Japanese Chess https://www.ludism.org/ppwiki/Shogi
Ultima AKA Baroque Chess https://en.wikipedia.org/wiki/Baroque_chess
Xiangqi AKA Chinese Chess https://www.ludism.org/ppwiki/Xiangqi

Setups for various piecepack games

Description

tibble data frames of setups for 49 games playable with a piecepack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

piecepack_alien_city(seed = NULL, tiles = NULL)

piecepack_black_pawn_trucking(seed = NULL)

piecepack_brain_burn(seed = NULL)

piecepack_burbuja(seed = NULL, tiles = NULL)

piecepack_cardinals_guards(seed = NULL, tiles = NULL)

piecepack_cell_management(seed = NULL)

piecepack_chariots()

piecepack_chinese_checkers()

piecepack_piecepack_halma()

piecepack_coin_collectors(seed = NULL, tiles = NULL, coins = NULL, dice = NULL)

piecepack_climbing_man(seed = NULL, variant = c("Basic", "Free"))

piecepack_crocodile_hop(seed = NULL)

piecepack_desfases(seed = NULL, tiles = NULL, dice = NULL)

piecepack_easy_slider(seed = NULL, tiles = NULL, coins = NULL, pawns = NULL)

piecepack_everest()

piecepack_four_blind_mice()

piecepack_froggy_bottom()

piecepack_fujisan(seed = NULL, coins = NULL, dice = NULL)

piecepack_galaxy_express(seed = NULL)

piecepack_iceberg(seed = NULL, tiles = NULL)

piecepack_ice_floe()

piecepack_japan(seed = NULL)

piecepack_lab_rats(seed = NULL)

piecepack_landlocked(seed = NULL)

piecepack_ley_lines()

piecepack_mathrix(seed = NULL, coins = NULL)

piecepack_piecepackman(seed = NULL, variant = "Roundabout")

piecepack_one_man_thrag(seed = NULL)

piecepack_pass_the_food()

piecepack_piecepack_klondike(seed = NULL)

piecepack_piece_gaps(seed = NULL)

piecepack_piece_packing_pirates(seed = NULL)

piecepack_plans_of_action(seed = NULL, coins = NULL)

piecepack_relativity(seed = NULL, coins = NULL)

piecepack_san_andreas()

piecepack_sarcophagus(seed = NULL)

piecepack_shopping_mall(seed = NULL, cfg2 = "go")

piecepack_skyscrapers(seed = NULL, tiles = NULL)

piecepack_slides_of_action()

piecepack_speedy_towers(n_players = 2, seed = NULL)

piecepack_steppin_stones(seed = NULL)

piecepack_the_in_crowd()

piecepack_the_magic_bag(seed = NULL)

piecepack_the_penguin_game(seed = NULL)

piecepack_tower_of_babel(seed = NULL, tiles = NULL)

piecepack_tracers()

piecepack_triactor(seed = NULL, cfg2 = "playing_cards_expansion")

piecepack_tula(
  seed = NULL,
  tiles = NULL,
  variant = c("Original", "Variant 1", "Variant 2", "Variant 3", "Variant 4")
)

piecepack_wormholes()

Arguments

seed

Seed that determines setup, either an integer or NULL

tiles

String of tile layout

coins

String of coin layout

dice

String of dice layout

variant

Name of variant

pawns

String of pawns layout

cfg2

A string of a piecepack expansion (or perhaps "piecepack" for a second piecepack)

n_players

Number of players

Details

Here are links for more information about the various games:

Game URL
Alien City https://www.ludism.org/ppwiki/AlienCity
Black Pawn Trucking https://www.ludism.org/ppwiki/BlackPawnTrucking
Brain Burn https://www.ludism.org/ppwiki/BrainBurn
Burbuja https://www.ludism.org/ppwiki/Burbuja
Cardinal's Guards https://ludism.org/ppwiki/CardinalsGuards
Cell Management https://www.ludism.org/ppwiki/CellManagement
Chariots https://www.ludism.org/ppwiki/Chariots
Chinese Checkers AKA Piecepack Halma https://www.ludism.org/ppwiki/ChineseCheckers
Climbing Man https://www.ludism.org/ppwiki/ClimbingMan
Coin Collectors https://www.ludism.org/ppwiki/CoinCollectors
Crocodile Hop https://www.ludism.org/ppwiki/CrocodileHop
Desfases https://www.ludism.org/ppwiki/Desfases
Easy Slider https://www.ludism.org/ppwiki/EasySlider
Everest https://www.ludism.org/ppwiki/Everest
Four Blind Mice https://www.ludism.org/ppwiki/FourBlindMice
Froggy Bottom https://www.ludism.org/ppwiki/FroggyBottom
Fuji-san https://www.ludism.org/ppwiki/Fuji-san
Galaxy Express https://www.ludism.org/ppwiki/GalaxyExpress
Ice Floe https://www.ludism.org/ppwiki/IceFloe
Iceberg https://www.ludism.org/ppwiki/Iceberg
Japan https://www.ludism.org/ppwiki/Japan
Lab Rats https://www.ludism.org/ppwiki/LabRats
Landlocked https://www.ludism.org/ppwiki/Landlocked
Ley Lines https://www.ludism.org/ppwiki/LeyLines
Mathrix https://www.ludism.org/ppwiki/Mathrix
One Man Thrag! https://www.ludism.org/ppwiki/OneManThrag
Pass the Food https://www.ludism.org/ppwiki/PassTheFood
Piece Gaps https://www.ludism.org/ppwiki/PieceGaps
Piece Packing Pirates https://www.ludism.org/ppwiki/PiecePackingPirates
Piecepack Klondike https://ludism.org/ppwiki/PiecepackKlondike
Piecepackman https://www.ludism.org/ppwiki/Piecepackman
Plans of Action https://www.ludism.org/ppwiki/PlansOfAction
Relativity https://www.ludism.org/ppwiki/Relativity
San Andreas https://www.ludism.org/ppwiki/SanAndreas
Sarcophagus https://www.ludism.org/ppwiki/Sarcophagus
Shopping Mall https://www.ludism.org/ppwiki/ShoppingMall
Skyscrapers https://www.ludism.org/ppwiki/Skyscrapers
Slides of Action https://www.ludism.org/ppwiki/SlidesOfAction
Speedy Towers https://ludism.org/ppwiki/SpeedyTowers
Steppin' Stones https://ludism.org/ppwiki/Steppin'_Stones
The "In" Crowd https://www.ludism.org/ppwiki/TheInCrowd
The Magic Bag https://www.ludism.org/ppwiki/The_Magic_Bag
The Penguin Game https://www.ludism.org/ppwiki/PenguinGame
Tower of Babel https://www.ludism.org/ppwiki/TowerOfBabel
Tracers https://www.ludism.org/ppwiki/Tracers
Triactor https://www.ludism.org/ppwiki/Triactor
Tula https://www.ludism.org/ppwiki/Tula
Twelve Men's Morris https://en.wikipedia.org/wiki/Morabaraba
Wormholes https://www.ludism.org/ppwiki/Wormholes

Setups for other modern games playable with a piecepack

Description

tibble data frames of setups for 7 other games playable with a piecepack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

piecepack_breakthrough()

piecepack_change_change(seed = NULL, coins = NULL)

piecepack_crossings()

piecepack_evade()

piecepack_grasshopper()

piecepack_lines_of_action()

piecepack_quatri()

Arguments

seed

Seed that determines setup, either an integer or NULL

coins

String of coin layout

Details

Here are links for more information about the various other games:

Game URL
Breakthrough https://en.wikipedia.org/wiki/Breakthrough_(board_game)
Crossings https://en.wikipedia.org/wiki/Crossings_(game)
Change Change https://www.ludism.org/ppwiki/ChangeChange
Grasshopper http://www.cyningstan.com/game/71/grasshopper
Evade https://www.ludism.org/ppwiki/Evade
Lines of Action https://en.wikipedia.org/wiki/Lines_of_Action
Quatri https://www.ludism.org/ppwiki/Quatri

Setups for other traditional games playable with a piecepack

Description

tibble data frames of setups for 11 other traditional games playable with a piecepack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

piecepack_alquerque(has_matchsticks = FALSE)

piecepack_awithlaknannai_mosona(has_matchsticks = FALSE)

piecepack_backgammon()

piecepack_brandubh()

piecepack_cribbage()

piecepack_cribbage_board()

piecepack_four_field_kono()

piecepack_julgonu()

piecepack_ludo()

piecepack_nine_mens_morris(has_matchsticks = FALSE)

piecepack_salta(has_subpack = FALSE)

piecepack_tablut(die_width = 0.63)

piecepack_twelve_mens_morris(has_matchsticks = FALSE)

Arguments

has_matchsticks

Has matchsticks

has_subpack

Has a piecepack subpack

die_width

Width of dice

Details

Here are links for more information about the various other traditional games:

Game URL
Alquerque AKA Qirkat https://en.wikipedia.org/wiki/Alquerque
Awithlaknannai Mosona https://en.wikipedia.org/wiki/Awithlaknannai_Mosona
Backgammon https://www.ludism.org/ppwiki/Backgammon
Brandubh AKA Brandub http://www.cyningstan.com/game/125/brandub
Cribbage https://www.ludism.org/ppwiki/Cribbage
Four Field Kono https://www.ludism.org/ppwiki/FourFieldKono
Jul-Gonu https://www.ludism.org/ppwiki/JulGonu
Ludo https://en.wikipedia.org/wiki/Ludo_(board_game)
Nine Men's Morris https://en.wikipedia.org/wiki/Nine_men\%27s_morris
Salta https://en.wikipedia.org/wiki/Salta_(game)
Tablut https://www.ludism.org/ppwiki/Tablut

Setup various game boards using piecepack tiles

Description

df_rect_board_tiles returns a tibble data_frame of a rectangular board of desired size made using a maximum number of piecepack tiles. It will use either “cells”, “points”, and/or “rivers” as necessary.

Usage

piecepack_rect_board_tiles(
  nrows = 8,
  ncols = 8,
  x0 = 1,
  y0 = 1,
  max_tiles = 24,
  suit = rep(1:4, 6),
  rank = rep(1:6, each = 4)
)

Arguments

nrows

Number of rows in game board

ncols

Number of columns in game board

x0

X coordinate for the center of the first cell/point

y0

Y coordinate for the center of the first cell/point

max_tiles

Maximum number of tiles that can be used

suit

Vector of suit values to use for tile back (will be repeated).

rank

Vector of rank values to use for tile back (will be repeated).


Setups by game name

Description

setup_by_name() returns setup data frames by game name and game system. checkers_by_name(), chess_by_name(), dominoes_by_name(), and piecepack_by_name() are aliases that set the game system.

Usage

setup_by_name(
  name,
  system = known_game_systems,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

checkers_by_name(
  name,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

chess_by_name(
  name,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

dominoes_by_name(
  name,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

piecepack_by_name(
  name,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

stackpack_by_name(
  name,
  ...,
  getter = function(x) get(x, envir = getNamespace("ppdf"))
)

Arguments

name

Game name. Will be normalized by normalize_name().

system

Game system.

...

Additional arguments to pass to the underlying setup function.

getter

Function with a single function name argument to use. By default will just look for packages in this package but a developer may want to consider dynGet() or a wrapper around get() with a custom envir argument.


Zero-row data frames

Description

checkers_none(), chess_none(), dominoes_none(), piecepack_none(), and stackpack_none() return zero-row data frames.

Usage

checkers_none()

chess_none()

dominoes_none()

piecepack_none()

stackpack_none()

Value

A data frame with zero rows.

Examples

checkers_none()

Setups for games playable with a piecepack stackpack

Description

tibble data frames of setups for 8 other games playable with a piecepack stackpack. Data frame output can usually be plotted with pmap_piece(df, default.units = "in").

Usage

stackpack_alice_chess(max_tiles = 24L)

stackpack_baroque_chess()

stackpack_chaturaji()

stackpack_chess()

stackpack_chinese_chess()

stackpack_four_seasons_chess()

stackpack_international_chess()

stackpack_japanese_chess()

stackpack_salta()

stackpack_shogi()

stackpack_ultima()

stackpack_xiangqi()

Arguments

max_tiles

Maximum number of (piecepack) tiles available to build boards

Details

Here are links for more information about the games:

Game URL
Alice Chess https://en.wikipedia.org/wiki/Alice_chess
Chaturaji https://www.ludism.org/ppwiki/Chaturaji
Four Seasons Chess https://www.chessvariants.com/historic.dir/4seiz.html
(International) Chess https://www.ludism.org/ppwiki/Chess
Salta https://en.wikipedia.org/wiki/Salta_(game)
Shogi aka Japanese Chess https://www.ludism.org/ppwiki/Shogi
Ultima aka Baroque Chess https://en.wikipedia.org/wiki/Baroque_chess
Xiangqi AKA Chinese Chess https://www.ludism.org/ppwiki/Xiangqi