Team "The One Cow" for Fall 2020 Performant Programming in Python
Riichi Royale is a singleplayer game where you play 4-player Riichi Mahjong against AI opponents. The project includes a tutorial so you can learn how to play and (currently) a demo project in order to showcase our C++ Mahjong Game Manager
Riichi Royale has been verified to run with 64bit Python 3.8.x. We have verified against the Python 3.8.6 Windows x86-64 executable installer default installation, which can be found here.
If you encounter the error ImportError: DLL load failed: %1 is not a valid Win32 application.
, this is due to having 32bit python.
If you encounter the error ImportError: DLL load failed while importing libmahjong: The specified module could not be found.
, this is due to not using Python 3.8.
pip install riichiroyale
riichiroyale
Depending on your installation of python, you may need to instead run
python -m riichiroyale
Install the following dependencies:
-
git
-
cmake
-
clang
(or clang-10 if on Ubuntu < 20.04LTS)
Windows requires Visual Studio 2019, which can be found here, and CMake, which can be found here
Clone the repository:
git clone git@github.com:HartleyAHartley/RiichiRoyale.git
Run the following commands within the project directory (note that these commands are for ):
# Install python dependencies locally
pip install --user -r requirements.txt
# Create build directory for cmake
mkdir build/
# Bootstrap CMake Environment
cmake -S . -B build
# Or bootstrap CMake with tool building enabled
cmake -S . -B build -DPACKAGE_TOOLS=ON
# Or, if wanting to use Clang (Linux Only)
C=clang CXX=clang++ cmake -S . -B build
# Build Project
cmake --build build
# Bootstrap Development Environment
python setup.py develop --user
# Run Project
python riichiroyale
The python test suite is located in test/
and can be run with python test
The C++ test suite is located in cxxtests/
and can be run with make -C build check
DocDevs Mirror of Pygame Documentation: Standard Pygame API Docs. Pygame has a ratelimiter on their website of 50 visits per hour, which is very annoying while developing.
Pygame Example Projects: Great showing of how everything in pygame pieces together.
Pybind11 Docs: The documentation for pybind11, which is what we use for building the C++ python module.
lobby.ogg: Airport Lounge by Kevin MacLeod Link: https://incompetech.filmmusic.io/song/3347-airport-lounge License: http://creativecommons.org/licenses/by/4.0/
game1.ogg: Acid Trumpet by Kevin MacLeod Link: https://incompetech.filmmusic.io/song/3340-acid-trumpet License: http://creativecommons.org/licenses/by/4.0/
game2.ogg: Shades of Spring by Kevin MacLeod Link: https://incompetech.filmmusic.io/song/4342-shades-of-spring License: http://creativecommons.org/licenses/by/4.0/
game3.ogg: Backbay Lounge by Kevin MacLeod Link: https://incompetech.filmmusic.io/song/3408-backbay-lounge License: http://creativecommons.org/licenses/by/4.0/
Icons are by Daniela Travieso, used with permission
Trophy Icon by Lorc and used under CC BY 3.0