今天给大家介绍一个有趣的项目,使用 SQL 开发一个简单的俄罗斯方块游戏。项目代码在 GitHub 上,下载地址:
https://github.com/nuno-faria/tetris-sql
我们先来看一下游戏效果:
游戏界面比较简单,但是实现了一个可玩的俄罗斯方块。
下载安装
安装这个游戏需要准备一下环境:
- PostgreSQL 服务器,版本支持 10 - 17。
- Python3,包括 psycopg2 驱动模块。
- 命令行终端,支持 Windows Terminal(v1.22 以上)、Windows CMD、GNOME Terminal、iTerm2(MacOS)、Terminal(MacOS)。
如果使用 Docker 安装,首先运行一个 PostgreSQL 容器:
docker run --name pg -p 5432:5432 -d -e POSTGRES_PASSWORD=postgres postgres:16
然后在容器中安装 psycopg2:
docker exec pg apt update
docker exec pg apt install -y python3-psycopg2
将游戏代码复制到容器中:
git clone https://github.com/nuno-faria/tetris-sql
docker cp tetris-sql pg:tetris-sql
docker exec pg chmod +x ./tetris-sql/input.py
运行游戏时,首先在一个命令行终端运行 input.py 脚本。对于 Docker,执行以下命令:
docker exec -it pg ./tetris-sql/input.py
如果在本地运行 Python,执行以下命令:
python3 input.py [-h] [-H HOST] [-P PORT] [-d DB] [-u USER] [-p PASSWORD]
然后在另一个终端运行以下查询:
docker exec pg psql -U postgres -f tetris-sql/game.sql
切换到第一个终端就可以开始游戏了。
项目代码
整个项目包含两个文件:
- game.sql 用于实现游戏逻辑,主要涉及通用表表达式(CTE)实现游戏循环;
- input.py 用于捕获键盘输入。
如果对代码细节感兴趣,可以查看项目文档。