# 五子棋游戏 **Repository Path**: zhangpeihao31/gobang-game ## Basic Information - **Project Name**: 五子棋游戏 - **Description**: 五子棋游戏服务器 - **Primary Language**: Go - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-03-14 - **Last Updated**: 2025-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 五子棋游戏后端服务 ## 项目文件结构 ``` seastargoAl ├── account │ ├── account │ ├── account.exe │ ├── config │ │ ├── logsystem │ │ │ ├── log.pb.go │ │ │ ├── log.proto │ │ │ └── log_grpc.pb.go │ │ ├── useraccount.pb.go │ │ ├── useraccount.proto │ │ └── useraccount_grpc.pb.go │ ├── database │ │ ├── Admin_block_db.go │ │ ├── Admin_login.go │ │ ├── Admin_querydata.go │ │ ├── Admin_register.go │ │ ├── User_login_db.go │ │ ├── User_query_db.go │ │ ├── User_register_db.go │ │ └── User_update_db.go │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── log │ │ └── log_system.go │ ├── main.go │ ├── service │ │ ├── Admin_login.go │ │ └── User_login.go │ └── tools │ ├── Admins.go │ ├── Env.go │ ├── Md5.go │ └── User.go ├── chat │ ├── config │ │ ├── chatsystem.pb.go │ │ ├── chatsystem.proto │ │ ├── chatsystem_grpc.pb.go │ │ └── logsystem │ │ ├── log.pb.go │ │ ├── log.proto │ │ └── log_grpc.pb.go │ ├── database │ │ ├── Chat_in_the_game_bureau.go │ │ ├── Create_chat_room.go │ │ ├── Join_chat_room.go │ │ ├── Master_add_user.go │ │ ├── Query_chat_messages.go │ │ ├── Quit_chat_room.go │ │ └── Sent_message.go │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── log │ │ └── log_system.go │ ├── main.go │ ├── service │ │ └── Chat_system.go │ └── tools │ ├── Chat_room_struct.go │ ├── Env.go │ └── Message.go ├── chessgame │ ├── config │ │ ├── chat │ │ │ ├── chatsystem.pb.go │ │ │ ├── chatsystem.proto │ │ │ └── chatsystem_grpc.pb.go │ │ ├── chess.pb.go │ │ ├── chess.proto │ │ ├── chess_grpc.pb.go │ │ ├── logsystem │ │ │ ├── log.pb.go │ │ │ ├── log.proto │ │ │ └── log_grpc.pb.go │ │ └── ranklist │ │ ├── Leaderboard.pb.go │ │ ├── Leaderboard.proto │ │ └── Leaderboard_grpc.pb.go │ ├── database │ │ ├── Get_game_record.go │ │ ├── Is_pveGame.go │ │ ├── Join_game.go │ │ └── Win_game.go │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── log │ │ └── log_system.go │ ├── main.go │ ├── pkg │ │ └── Board.go │ ├── service │ │ └── ChessGame.go │ ├── test │ │ └── Chess.go │ └── tools │ ├── Env.go │ └── Lock.go ├── database ├── docker-compose.yml ├── gateway │ ├── client │ │ ├── account │ │ │ ├── Admin_login.go │ │ │ └── User_login.go │ │ ├── Addr.go │ │ ├── chat │ │ │ └── Chat_system.go │ │ ├── chessgame │ │ │ └── Chess_game.go │ │ ├── log │ │ │ └── log_system.go │ │ └── rank │ │ └── Rank_leader.go │ ├── config │ │ ├── account │ │ │ ├── useraccount.pb.go │ │ │ ├── useraccount.proto │ │ │ └── useraccount_grpc.pb.go │ │ ├── chat │ │ │ ├── chatsystem.pb.go │ │ │ ├── chatsystem.proto │ │ │ └── chatsystem_grpc.pb.go │ │ ├── chessgame │ │ │ ├── chess.pb.go │ │ │ ├── chess.proto │ │ │ └── chess_grpc.pb.go │ │ ├── logsystem │ │ │ ├── log.pb.go │ │ │ ├── log.proto │ │ │ └── log_grpc.pb.go │ │ └── rankinglist │ │ ├── Leaderboard.pb.go │ │ ├── Leaderboard.proto │ │ └── Leaderboard_grpc.pb.go │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── init.sql │ ├── main.go │ ├── service │ │ ├── Admin_login.go │ │ ├── Chat_start.go │ │ ├── Chess_game.go │ │ ├── Rank_list.go │ │ └── User_login.go │ └── tools │ ├── admin │ │ └── Admin.go │ ├── checkform │ │ ├── Register_form_check.go │ │ └── Update_form_check.go │ ├── chessgame │ ├── security │ │ ├── Md5.go │ │ └── permission_to_check.go │ └── user │ └── User.go ├── go.mod ├── go.sum ├── image │ ├── 基于 gin Redis grpc Docker的游戏后端微服务项目.png │ └── 游戏后端功能模块.png ├── logsystem │ ├── config │ │ ├── log.pb.go │ │ ├── log.proto │ │ └── log_grpc.pb.go │ ├── database │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── main.go │ ├── service │ │ └── LogSystem.go │ └── test.go ├── rankinglist │ ├── config │ │ ├── Leaderboard.pb.go │ │ ├── Leaderboard.proto │ │ ├── Leaderboard_grpc.pb.go │ │ └── logsystem │ │ ├── log.pb.go │ │ ├── log.proto │ │ └── log_grpc.pb.go │ ├── database │ │ ├── Migration_data_to_mysql.go │ │ └── Query_play_score.go │ ├── Dockerfile │ ├── go.mod │ ├── go.sum │ ├── log │ │ └── log_system.go │ ├── main.go │ ├── rankinglist │ ├── service │ │ └── Get_ranking_list.go │ └── tools │ └── Env.go ├── README.md └── 功能模块.xmind ``` ## 项目功能模块结构图 ![](image/游戏后端功能模块.png) ## 各模块功能 ### 账号系统 #### 用户模块 - 账号注册 - 账号登录 - 账号查询个人信息 - 账号修改个人信息 #### 管理员模块 - 管理员登录 - 管理员注册 - 管理员查询用户信息 - 管理员封禁用户 ### 聊天室系统 - 创建聊天室 - 加入聊天室 - 查看聊天记录 - 发送聊天室 - 房主添加用户加入聊天室 ### 五子棋游戏系统 - 创建游戏房间 - 加入游戏房间 - 开始PVP游戏 - 开始PVE游戏 ### 排行榜系统 - 查看排行榜 ### 日志系统 - 输出接收到的日志 - 持久化存储日志 ## 各功能使用方法既传入参数规范 ### 账号系统 #### 用户模块 ##### 账号注册 ``` json { "Userphone": "用户电话号码", "Password": "用户密码", "Emailnumber": "用户邮箱号", "NickName": "用户昵称" } ``` ##### 账号登录 ``` json { "UserNum": "用户电话号码", "Password": "用户密码" } ``` ##### 账号注册 ``` json { "Userphone": "用户电话号码", "Password": "用户密码", "Emailnumber": "用户邮箱号", "NickName": "用户昵称" } ``` ##### 查询用户信息 ``` json { "token":"用户身份凭证" } ``` ##### 修改用户信息 ``` json { "newPassword1":"新密码", "newPassword2":"新密码", "oldPassword":"老密码", "phone":"电话号码", "Token":"用户身份凭证" } ``` #### 管理员模块 ##### 管理员登录 ``` json { "username": "管理员账号名", "password": "管理员密码" } ``` ##### 管理员注册 ``` json { "username":"新管理员账号", "password":"新管理员密码", "lever":新管理员权限等级, "Token":"管理员身份凭证" } ``` ##### 管理员查询用户信息 ``` json { "startId":起始用户id, "endId":结束用户id, "Token":"管理员身份凭证" } ``` ##### 管理员封禁/解禁用户 ``` json { "UserId":用户id, "Token":"管理员身份凭证" } ``` ### 聊天室系统 ##### 创建房间 ``` json { "token":"用户身份凭证", "roomId":聊天室房间号, "isPrivate":聊天室是否为私人聊天室 } ``` ##### 加入房间 ``` json { "RoomId":聊天室房间号, "Token":"用户身份凭证" } ``` ##### 查询聊天记录 ``` json { "RoomId":聊天室房间号, "Token":"用户身份凭证" } ``` ##### 发送消息 ``` json { "RoomId":聊天室房间号, "Message":"发送的信息", "Token":"用户身份凭证" } ``` ### 五子棋游戏系统 ##### 查看房间列表 ``` json { "token":"用户身份凭证" } ``` ##### 查询战斗记录 ``` json { "roomid":游戏房间号, "token":"用户身份凭证" } ``` ##### 创建游戏房间 ``` json { "room_id":游戏房间号, "is_pve":游戏是否为pve模式, "Token":"用户身份凭证" } ``` ##### 加入游戏房间 ``` json { "room_id":游戏房间号, "is_pve":, "Token":"用户身份凭证" } ``` ##### 进行游戏 ``` json { "room_id":游戏房间号, "X":下棋的x坐标, "Y":下棋的y坐标, "Token":"用户身份凭证", "if_lucky":是否开启随缘下棋模式, } ``` ### 排行榜系统 ##### 查询相应排行榜信息 ``` json { "BoardName":"排行榜名字", "StartPage":起始排行名次, "EndPage":结束排行名次, "Token": "用户身份凭证" } ``` ## 数据库表结构 ### MySQL | 数据库名 | 表名 | 字段名 | | :------: | :---------------: | :--------------------------------------------------: | | users | users | id;user_phone;password;email_number;nick_name;status | | admins | admin_users | id;admin_num;admin_pd;privilege_level | | chats | chat_room_structs | room_id;master_id;is_private | | gamedata | game_scores | id;playground_num;nick_name;wins;odds | ### Redis | 库名 | 存储内容 | | :--: | :--------------: | | 0 | 用户个人信息 | | 1 | 游戏房间用户列表 | | 2 | 聊天室用户列表 | | 3 | 聊天信息 | | 4 | 排行榜信息 | | 5 | 游戏记录 | ## docker镜像地址 ## 演示视频地址