NOTE: This project was created for the HKUST Quantum Computing for Gifted Students GEF 2023-24 course. For more information about this course, visit the information PDF here.
Quantum Minigolf reinvents the traditional game of minigolf by incorporating quantum mechanics principles, featuring a golf ball with quantum behavior distinct from classical physics. Developed through basic Python programming, this project serves as a simulation to demonstrate an in-depth understanding of quantum phenomena. It exemplifies the application of complex quantum concepts in a familiar setting, providing an engaging and educational tool for exploring the fundamentals of quantum mechanics.
For more information, feel free to access our presentation here.
Below are some demonstration GIFs of the game:
We have used Python version 3.12.0
, however any version of Python over 3.10.0
should work.
In terms of library requirements, please check our requirements.txt file.
To install the game, you can either download the source code and run it through Python, or you can download the executable from the releases page.
If you wish to compile the file yourself, please see the Compiling section.
NOTE: This is a work in progress meaning it is not yet complete and may not provide the most accurate information.
If you want to customize styling, speed, etc, feel free to change the parameters in the style.json
file. For information on each of these parameters, see the table below:
Parameter | Description |
---|---|
scale |
The size of the screen (scale value) - Note that it multiplies the values under defaults |
resolution |
The resolution of the game itself, the higher the value, the slower the game |
duration |
The amount of frames until it checks if the ball is in the goal |
colors |
The colors of the game (Obstacle is typical RGB values, whereas the ballHeatmap RGB values can only be either 1 or 0 as they are the multiplier values) |
obstaclePresets |
Presets/obstacles you can initially choose from |
defaults |
The default values for the game (Recommended not to change) |
To compile the program into an executable, we used PyInstaller. We have actually created a .spec
file for those of you who wish to compile it yourselves.
The following is a step-by-step guide if you wish to compile it youself:
- Install PyInstaller with
pip install PyInstaller
- Run PyInstaller with
PyInstaller QuantumMinigolf.spec
Note that capitalization is very important - After running, the executable should be locatable in the
build
folder.
If you want to contribute to this project, please follow the guidelines below:
- Fork the repository
- Create a new branch for your changes
- Make your changes and commit them
- Push the new branch to your fork
- Submit a pull request
This project is licensed under the MIT license. See our LICENSE for more information.
We are grateful for the support of our community and for the contributions of everyone who has helped make this project what it is.
We would like to thank the following people and organizations for their support and contributions to this project:
- Valentina Banner for contributing code for the game logic and the game UI, and helping co-create the presentation.
- Madelyn Lee for contributing code for the game logic and the game UI, and helping co-create the presentation.
- Annie Qin for contributing code for the mathematics the game relies on, and helping co-create the presentation.
- HKUST for providing not only the opportunity to create this project, but the opportunity to present it.
We are grateful for the support of our community and for the contributions of everyone who has helped make this project what it is.