# PyChessGame **Repository Path**: coderxiaojian/pychessgame ## Basic Information - **Project Name**: PyChessGame - **Description**: 网络五子棋 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2017-04-19 - **Last Updated**: 2021-06-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 基于Python 2.7和PYQT4实现的网络五子棋程序 基本功能 -------- - 实现输入服务器IP和端口及昵称登录 - 实现桌子列表 - 选择桌子坐下 - 大厅里面聊天 - 五子棋落子消息 - 输赢判断和结果显示 - 房间里面聊天 - 实现胜平负积分 - 实现悔棋 - 实现排行榜 - 顶名处理 - 实现用户数据存储 - 服务器宕机客户端自动重连 结构说明 -------- 模块结构如下: ``` client/ __init__.py # 包配置文件 chessboard.py # 棋盘类 chessclient.py # 客户端主逻辑类 musicplay.py # 声音播放帮助类 images/ black.png # 已下子的黑色棋子图片 black_before.png # 最新一步的白色棋子图片 chessboard.png # 棋盘图片 white.png # 已下子的黑色棋子图片 white_before.png # 最新一步的白色棋子图片 music/ lose.wav # 输下比赛声音 start.wav # 开始比赛声音 step.wav # 下子声音 tie.wav # 平局声音 win.wav # 赢下比赛声音 server/ database/ __init__.py # 包配置文件 mydb.py # 数据库操作类 user.db # 用户数据库文件 entity/ __init__.py # 包配置文件 user.py # 用户实体类 __init__.py # 包配置文件 chatservice.py # 聊天服务 chessservice.py # 棋盘服务 dispatcher.py # 消息分发处理器 loginservice.py # 登录服务 netstream.py # 网络通信框架 service.py # 基础服务 tickservice.py # 心跳服务 userservice.py # 用户服务 ui/ __init__.py game.ui # 游戏主页UI界面 game_ui.py # 游戏主页UI界面类 login.ui # 登录UI界面 login_ui.py # 登录UI界面类 resource.qrc # 图片资源文件 resource_rc.py # 图片资源文件类 .gitignore # gitignore配置 chesslogin.py # 登录界面类 chessserver.py # 服务端主逻辑类 logging.conf # 日志配置文件 README.md # 工程说明 ``` 消息协议 -------- 每个消息包都包含*sid*和*cid*,说明如下: ``` sid cid 100 1001 # 获取房间列表 1002 # 进入房间 1003 # 离开房间 1004 # 获取对手 1005 # 设置状态 1006 # 提示对手走下一步 1007 # 获取胜利结果 1008 # 获取分数列表 1009 # 认输 1010 # 悔棋请求 1011 # 悔棋响应 1012 # 再来一局请求 1013 # 再来一局响应 101 1001 # 关闭时候清理资源 102 1001 # 大厅消息 1002 # 房间消息 103 1001 # 登录成功后保存客户端信息到服务器 105 1001 # 发送心跳 2000 1001 # 登录 1002 # 退出 ``` 运行说明 -------- 先运行`python chessserver.py`服务器 然后运行`python chesslogin.py`进行登录