{"id":18539734,"url":"https://github.com/arbrown/pao","last_synced_at":"2025-04-09T17:38:26.029Z","repository":{"id":12522974,"uuid":"15192821","full_name":"arbrown/pao","owner":"arbrown","description":"A Banqi Game Server","archived":false,"fork":false,"pushed_at":"2023-12-10T17:59:26.000Z","size":1432,"stargazers_count":7,"open_issues_count":32,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-24T10:04:01.392Z","etag":null,"topics":["banqi","chinese-chess","chinese-dark-chess","game","golang","server"],"latest_commit_sha":null,"homepage":"http://pao.drewbrown.me/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"wangliang0209/SpringMVCMybatisDemo","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arbrown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-12-14T21:03:21.000Z","updated_at":"2024-02-07T12:26:47.000Z","dependencies_parsed_at":"2023-12-10T18:46:01.205Z","dependency_job_id":null,"html_url":"https://github.com/arbrown/pao","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbrown%2Fpao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbrown%2Fpao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbrown%2Fpao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arbrown%2Fpao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arbrown","download_url":"https://codeload.github.com/arbrown/pao/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248078653,"owners_count":21044153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["banqi","chinese-chess","chinese-dark-chess","game","golang","server"],"created_at":"2024-11-06T19:51:29.602Z","updated_at":"2025-04-09T17:38:25.591Z","avatar_url":"https://github.com/arbrown.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"pao\n===\n\nA [Banqi](http://en.wikipedia.org/wiki/Banqi) Game Server\n\nInstalling Pao\n--------------\n1. [Install Go](https://golang.org/doc/install) and [set up a workspace](https://golang.org/doc/code.html) - Make sure your `$GOPATH` and `$GOROOT` environment variables are set, and that the appropriate directories are added to your PATH if you want to run executables without using `go run`.\n    * This is the hardest (but probably most important) step.  Make sure to follow the instructions in the links.\n2. Get the pao source:\n`go get github.com/arbrown/pao` ![go get](./screenshots/go-get.png)  \nYou can fork this repository and `go get` your own version to contribute changes upstream.\n3. Go to the path where the source was installed, and run pao.go\n![go run](./screenshots/go-run.png)  \nThe server should begin running on port 2015.  Go to http://localhost:2015/ in a web browser to see the lobby.\n\nJoining a game\n--------------\nIf no games are currently running, you can join a new game by clicking the button:\n![join](./screenshots/join-game.png)  \nThen, another player can join your game and it will begin.\n![join](./screenshots/join-existing.png)  \nHave fun!\n![game](./screenshots/game2.png)  \nBanqi Game Notation\n---------------------\nThe game code uses a character-based notation to store and transmit piece information.\n\n### Pieces\nPieces are represented by the letters in the following table\n\n| Piece | Red | Black |\n|:------|:---:|:-----:|\n| King  | k   | K     |\n| Guard | g   | G     |\n| Elephant| e | E     |\n| Cart  | c   | C     |\n| Horse | h   | H     |\n| Pawn  | p   | P     |\n| Canon | q   | Q     |\n\nUncovered pieces are represented by '?' and empty squares are '.'.\n\n### Board\nThe board is represented as an 8x4 (8 columns, 4 rows) board with coordinates as follows:\n\n| .   | A | B | C | D | E | F | G | H |\n|----:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n|**1**|   |   |   |   |   |   |   |   |\n|**2**|   |   |   |   |   |   |   |   |\n|**3**|   |   |   |   |   |   |   |   |\n|**4**|   |   |   |   |   |   |   |   |\n\nA location is referred to by its letter/number coordinates, for example, A1 or F3.\n\n### Plies\nA ply consists of a piece identifier, a location, an action (moves '\u003e', or becomes '=') followed by a piece identifier, and a location.  If a piece was killed in this ply, there is then an 'x' followed by the piece identifier and location of the killed piece.\n\nFor example, if a black guard at C2 killed a red pawn at D2, the ply notation would be:\n\n    GC2\u003eGD2xpD2\n\nIf a player turned up a red cannon at B4, the notation would be:\n\n    ?B4=qB4\n\n#### Theoretical variants\nIn theory, in some game variants a ply could involve more than one piece (on either side) or multiple moves (as in double-move Banqi.)  In this case, multiple pieces (and their locations) are separated by commas (,) and multiple moves are separated by semicolons (;).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbrown%2Fpao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farbrown%2Fpao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farbrown%2Fpao/lists"}