项目简介
本项目是基于C++开发的俄罗斯方块游戏,支持Windows和Linux平台。游戏通过HTTP协议提供RESTful API接口,用户能借助这些接口与游戏服务器交互,实现开始游戏、暂停、继续、获取游戏状态等功能。项目运用多个开源库,如JsonCpp、libcurl和Google Glog,增强功能并简化开发。
项目的主要特性和功能
- 跨平台支持:支持Windows和Linux平台,采用CMake进行项目管理。
- HTTP API接口:提供九个基本的HTTP接口,可与游戏服务器交互。
- 日志记录:集成Google Glog库,记录游戏运行时的日志信息。
- JSON解析:使用JsonCpp库进行JSON数据的解析和生成。
- 动态库支持:在Windows平台上使用libcurl动态库进行网络通信。
安装使用步骤
1. 下载源代码
bash
git clone https://git.oschina.net/guangleihe/TetrisGame.git
cd TetrisGame
git submodule update --init --recursive
2. 编译项目
Windows平台
- 确保已安装CMake 2.8以上版本,并添加到系统路径。
- 创建编译目录并生成VS工程文件:
bash mkdir build cd build cmake .. -DBUILD_CURL_TESTS=OFF -DBUILD_CURL_EXE=OFF -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF -DWITH_GFLAGS=OFF -DHTTP_ONLY=ON
- 打开生成的VS工程文件进行编译。
Linux平台
- 确保已安装CMake 2.8以上版本,并添加到系统路径。
- 创建编译目录并生成Makefile:
bash mkdir build cd build cmake .. -DBUILD_CURL_TESTS=OFF -DBUILD_CURL_EXE=OFF -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF -DWITH_GFLAGS=OFF -DHTTP_ONLY=ON make
3. 运行游戏
编译完成后,生成的可执行文件和库文件位于git_path/TetrisGame/bin/win
或git_path/TetrisGame/bin/unix
目录下,根据平台运行相应的可执行文件启动游戏服务器。
4. 使用HTTP API接口
游戏服务器启动后,用户通过HTTP GET请求与服务器交互,示例如下:
- 开始游戏:
GET /?oper=start&player_name=User1&rand_key=12345
- 暂停游戏:
GET /?oper=pause&token_id=12345
- 获取游戏状态:
GET /?oper=get_state&token_id=12345
服务器将返回JSON格式的响应,包含游戏状态、得分、下一个方块等信息。
注意事项
- Windows平台需将
git_path/TetrisGame/bin/win/libcurl.dll
复制到程序目录下才能运行程序。 - Linux平台需确保GCC 4.7以上版本以支持C++11特性。
- 使用Glog日志库时,建议在程序的main函数中初始化Glog,确保日志记录正确。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】