Quantum Tetris is your traditional tetris game which has several twists based on the concepts of quantum computing. Additionally, to implement this quantum functionality it uses IBM's qiskit library found here which runs in the cloud on IBM's quantum computers.
To play our game you can go here: http://quantumtetris.com
To view our GoDot project you can go here: https://github.com/dartmouth-cs98/GoDot-Quantum-Tetris
Backend can accessed via https://q-tetris-backend.herokuapp.com/
Link to mockups.
For more gameplay examples click here.
- Go to our web page to find the download links for both Mac and Windows
- If you are having issues opening the application due to an untrusted publisher, go to here for windows and here for Mac users.
The architecture of our project consists of a backend flask server that uses a PostgreSQL database to hold our player info. Our frontend is a simple html webpage that uses various graphics libraries to implement changes. We use GoDot to run our game in browser.
- Navigate to desired directory
git init
git clone https://github.com/dartmouth-cs98/Quantum-Tetris.git
cd Quantum-Tetris/
- The easiest way to manage all of our packages that we will need is with a Conda environment.
- If you don't have one yet, you can set one up here
- Once you set up your conda environment run the following commandsm using your chosen name in place of %NAMEOFENV%.
conda create -n %NAMEOFENV% python=3
conda activate %NAMEOFENV%
conda update --name base conda
conda install python==3.7
python3 -m pip install --user qiskit
If you get an error regarding an "ssl" error run the following commands
brew uninstall openssl
brew install openssl
If you get an error trying to run the server in Pycharm like "ModuleNotFoundError: No module named 'app'" ensure than the folder "server" is marked as a source root
- If you wish to dev this project in PyCharm, follow the following instructions if not ignore.
- Within PyCharm go to
Pycharm -> Preferences -> Project:[ProjectName] -> Project Interpreter
- Then click on the
gear icon
on the top right and clickAdd Local
. Navigate to the file/anaconda3/envs/[ProjectName]/bin/python3.7
- Click on this file and click add
- Additionally to set the environmental variable that you will need. go to
Pycharm -> Click on file name next to the green run button -> Edit configurations -> Click the ... to the left of the environmental variables dropdown -> add the following 2 environemntal variables DATABASE_URL=postgresql://localhost/quantum_tetris and APP_SETTINGS= config.DevelopmentConfig
- Navigate to the
webapp
directory - Run the following commands
- Yarn will continue to run in the terminal, so start a new terminal or window to run additional commands.
yarn
yarn start
- Navigate to the
server
directory - Make sure you have python3 installed if not install it here
- Also for local devving you will need to run a postgresql database in the background. The easiest way to set this up would be to follow the instructions found here
- For the Postgress the server make sure the server is running on port 5432 (the default) and is named
quantum_tetris
- Run the following command in the
server
directory
./setup.sh
- To deploy any local changes to surge, you can type
yarn deploy
while in thewebapp
directory
- To deploy any local changes to heroku, you can type
yarn heroku
while in the project's root directory. - Since the heroku URL is used in the GoDot game export, it is impossible to have full integration locally. Test all changes to the backend via Postman and use the above command to deploy to heroku
Trevor Glasgow, Oliver Levy, Henry Hilton and Rafael Brantley
Tim Tregubov and Charles Palmer