PyBawo is an implementation of the East African board game, Bao or Bawo.
- Python 3 (preferable Python 3.6).
- Python Imaging or Pillow.
- SleekXMPP (Can do without this at the moment).
- Grab an executable from Sourceforge
- Install Python 3.6
- Install the requirements as follows
python3 -m pip install -r requirements.txt
Run main.py to start game. Networked game play is yet to be implemented.
You can find the rules of how to play bawo at Game Cabinet. The page at gamecabinet has rules on how to play the beginner (yawana) and advanced (yabambo) variants of Bawo. The ntchuwa variant available in the game is similar to the advanced version with no nyumba.
NOTE: PyBawo does not yet implement the Takasia rule.
PyBawo adds some few rules of its own to make computer play easy (possible).
- Takata moves that exceed the long_move_limit (defaults at 200) in terms of number of sows (steps) are deemed infinite and illegal. Never ending moves have been proven to exist and are all takata moves (see "Towards a Quasi-Endgame-Based Bao Solver" by Tom Kronenburg, and "Never Ending Moves in Bao" by Tom Kronenburg, Jeroen Donkers, and Alex J. de Voogt)
- In Namua, a capture move that ends on the nyumba ends there. There is no option to continue or not continue the move as part of the same move. The player is simply requested to make another move in which the player may sow the nyumba or leave it by making a null move (see below for how this is done).
- Perfoming moves in PyBawo
To perform a normal move, left click on the hole where the move must start then click on the hole to the left or right depending on which direction you want the move to go. NOTE: you do not have to click on the store when in Namua, the nkhomo is introduced into the game automatically after you select your move.
To perform a null move, left click twice on your nyumba.
To cancel a move, right click after selecting (by left clicking) the hole where you want the move to start. You can only cancel a move before the second right click. A move in execution can not be cancelled but it can be undone after its finished execution.
The source and all artwork used and distributed as part of the main distribution (coming from me, the author) is under the GNU Public License version 3 (GPLv3) or any later versions of the license. A copy of the license is available at: http://www.gnu.org/licenses/gpl-3.0.html