# 三国杀 **Repository Path**: longjieli/three-kingdoms-kill ## Basic Information - **Project Name**: 三国杀 - **Description**: 三国杀游戏 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-10-13 - **Last Updated**: 2025-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 三国杀回合制卡牌游戏 基于Java后端和Vue前端的三国杀回合制卡牌游戏,支持多人在线对战。 ## 项目结构 ``` three-kingdoms-kill/ ├── Shanguosha/ # 后端项目 (Spring Boot + Java NIO) │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/example/shanguosha/ │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── controller/ # REST API控制器 │ │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ ├── repository/ # 数据访问层 (MyBatis Plus Mapper) │ │ │ │ ├── entity/ # 数据实体 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── websocket/ # WebSocket处理 │ │ │ │ ├── game/ # 游戏引擎 │ │ │ │ │ ├── engine/ # 游戏核心引擎 │ │ │ │ │ ├── card/ # 卡牌系统 │ │ │ │ │ ├── character/ # 角色系统 │ │ │ │ │ ├── skill/ # 技能系统 │ │ │ │ │ └── room/ # 房间管理 │ │ │ │ └── util/ # 工具类 │ │ │ └── resources/ │ │ │ ├── application.yaml # 应用配置 │ │ │ ├── data.sql # 初始化数据 │ │ │ └── static/ # 静态资源 │ │ └── test/ # 测试代码 │ └── pom.xml # Maven配置 ├── frontend/ # 前端项目 (Vue 3 + TypeScript) │ ├── src/ │ │ ├── components/ # 通用组件 │ │ │ ├── common/ # 基础组件 │ │ │ ├── game/ # 游戏相关组件 │ │ │ │ ├── GameBoard.vue # 游戏桌面 │ │ │ │ ├── CardComponent.vue # 卡牌组件 │ │ │ │ ├── PlayerPanel.vue # 玩家面板 │ │ │ │ └── SkillPanel.vue # 技能面板 │ │ │ └── ui/ # UI组件 │ │ ├── views/ # 页面组件 │ │ │ ├── Login.vue # 登录页面 │ │ │ ├── Lobby.vue # 大厅页面 │ │ │ ├── Room.vue # 房间页面 │ │ │ └── Game.vue # 游戏页面 │ │ ├── stores/ # Pinia状态管理 │ │ │ ├── user.ts # 用户状态 │ │ │ ├── game.ts # 游戏状态 │ │ │ └── room.ts # 房间状态 │ │ ├── services/ # API服务 │ │ │ ├── api.ts # HTTP API │ │ │ ├── websocket.ts # WebSocket服务 │ │ │ └── game.ts # 游戏相关API │ │ ├── types/ # TypeScript类型定义 │ │ ├── utils/ # 工具函数 │ │ ├── assets/ # 静态资源 │ │ │ ├── images/ # 图片资源 │ │ │ │ ├── cards/ # 卡牌图片 │ │ │ │ ├── characters/ # 角色图片 │ │ │ │ └── ui/ # UI图片 │ │ │ └── styles/ # 样式文件 │ │ ├── router/ # 路由配置 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── package.json # 依赖配置 │ ├── vite.config.ts # Vite配置 │ ├── tsconfig.json # TypeScript配置 │ └── .eslintrc.cjs # ESLint配置 ├── docs/ # 项目文档 │ ├── api.md # API文档 │ ├── game-rules.md # 游戏规则 │ └── deployment.md # 部署文档 ├── docker-compose.yml # Docker编排文件 └── README.md # 项目说明 ``` ## 技术栈 ### 后端技术栈 - **核心框架**: Spring Boot 2.7.x - **网络通信**: Java NIO (Netty框架) - **数据库**: MySQL 8.0 + Redis - **ORM框架**: MyBatis Plus 3.5.x - **序列化**: FastJSON 2.0 - **工具库**: Lombok, Apache Commons - **安全认证**: Spring Security + JWT - **测试框架**: JUnit 5 + Mockito + Testcontainers ### 前端技术栈 - **核心框架**: Vue 3 + TypeScript - **构建工具**: Vite - **UI组件库**: Element Plus - **状态管理**: Pinia - **路由管理**: Vue Router 4 - **HTTP客户端**: Axios - **WebSocket**: 原生WebSocket API - **动画库**: GSAP - **代码规范**: ESLint + Prettier ## 核心功能模块 ### 后端模块 1. **用户管理模块**: 用户注册/登录、信息管理、好友系统 2. **房间管理模块**: 房间创建/加入/退出、状态管理、观战功能 3. **游戏引擎模块**: 游戏状态机、回合管理、技能系统、卡牌逻辑 4. **通信模块**: WebSocket连接管理、消息路由、广播机制 5. **数据持久化模块**: 游戏记录、用户统计、排行榜 ### 前端模块 1. **用户界面模块**: 登录/注册、大厅、房间界面 2. **游戏界面模块**: 游戏桌面、卡牌展示、技能面板、聊天系统 3. **状态管理模块**: 用户状态、游戏状态、房间状态 4. **通信模块**: WebSocket连接、消息处理、错误处理 ## 开发环境搭建 ### 后端环境 1. JDK 8+ 2. Maven 3.6+ 3. MySQL 8.0 4. Redis 6.0+ ### 前端环境 1. Node.js 16+ 2. npm 8+ ## 快速开始 ### 启动后端 ```bash cd Shanguosha mvn spring-boot:run ``` ### 启动前端 ```bash cd frontend npm install npm run dev ``` ## 游戏特色 - 支持多人在线对战 - 实时游戏状态同步 - 丰富的角色技能系统 - 精美的卡牌动画效果 - 完整的游戏记录和统计 ## 开发规范 - 后端遵循阿里巴巴Java开发手册 - 前端遵循Vue官方风格指南 - 使用ESLint + Prettier进行代码格式化 - 完善的单元测试覆盖 ## 许可证 MIT License