This is an implentation of the board game Janggi (Korean chess). The game engine was written as a class project for CS162 at Oregon State University. The GUI, which makes it much more convenient to play, was developed later after the class concluded.
Python 3 must be installed to run the text-based version and Pygame is additionally required to run the GUI version.
JanggiGame.py and JanggiGUI.py must be in the same directory and the images directory should be present as a sub-directory.
For the text-based version run python.exe JanggiGame.py.
For the GUI version run python.exe JanggiGui.py.
Python and the .py files must be preceded by their respective paths.
The size of the GUI can be adjusted by changing the value of BOARD_TARGET_HEIGHT in JanggiGUI.py.
Rules for allowed moves, check, and checkmate conditions can be found at https://en.wikipedia.org/wiki/Janggi. Specifics for the two versions (GUI and text-based) are below. Both versions are for two players. The GUI version also highlights allowed moves and alerts the user of check and checkmate states, making it beginner friendly.
Mouse clicks are used to move pieces by selecting one and choosing one of the highlighted destinations. Pieces can be unselected by clicking them again or clicking outside of the allowed destinations. The pass button can be used to skip turns.
The game is played by entering positions (e.g., a1, i10) when prompted, which indicate which piece to move and where to move it. Turns can be passed by specifying the same position to move to and from.
The board is from Github user Ka-hu: https://github.com/Ka-hu/chess-pieces
It is licensed under CC-BY-4.0.
The piece images are from Wikimedia Commons: https://commons.wikimedia.org/wiki/Category:Janggi_pieces
They are available under Creative Commons.
The python scripts can be used in accordance with the MIT License.