# CardGame **Repository Path**: zhihao2023/card-game ## Basic Information - **Project Name**: CardGame - **Description**: 卡牌游戏 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-19 - **Last Updated**: 2025-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 卡牌自走棋游戏 ## 项目wiki [DeepWiki](https://deepwiki.com/zhihao2022/card-game/1-overview) [card-game - zhihao2023 的文档仓库 | OpenDeekWiki | OpenDeekWiki](https://opendeep.wiki/zhihao2023/card-game) ## 项目概述与技术架构详解 —— 卡牌自走棋游戏 ### 1. 项目介绍 #### 1.1 项目目的 该项目是一个结合卡牌收集与自走棋策略元素的游戏,旨在为玩家提供构建多样化卡组、培养角色并体验策略战斗的游戏过程。 近年来,卡牌收集机制已成为移动游戏领域的核心驱动力之一。玩家对收集行为的偏好源于人性深层的成就感和收藏欲,这与传统集换式卡牌(TCG)的文化基因一脉相承。 自走棋品类核心吸引力在于将策略深度与操作减负相结合:自动战斗机制适配移动端操作习惯,而羁绊系统、随机刷新等规则保留策略博弈空间。 卡组构筑的自由度是卡牌游戏差异化的核心竞争点。值得注意的是,《三国杀》等产品通过文化符号植入(如历史人物技能设计)证明:卡组不仅是策略载体,更是叙事延伸与用户身份表达的重要媒介。 #### 1.2 核心目标 - 提供多套卡组管理与自定义配置。 - 实现角色的多属性系统,包括生命值、法力值、攻击力、技能系统及Buff/Debuff管理。 - 搭建关卡系统,涵盖抽卡、角色部署、技能使用、法力管理、战斗结算及奖励机制。 - 实现局外系统的卡牌购买、角色培养与装备升级。 - 提供多种游戏模式,包括主界面功能、卡牌背包、商店系统和战斗模式(随机和关卡模式)。 #### 1.3 目标用户 对策略卡牌游戏、自走棋类玩法感兴趣的玩家,以及游戏开发者研究策略游戏架构。 #### 1.4 技术领域及应用场景 - 游戏开发,尤其是基于Java和Spring Boot的网页游戏后端系统。 - 战略卡牌与自走棋类游戏系统设计。 - 浏览器端前端静态资源交互。 ### 2. 技术架构 #### 2.1 高层次架构概览 本系统基于Spring Boot框架构建,采用MVC架构模式,分层清晰: - Controller层(如 BattleController, ShopController, GameController, DeckController)负责处理请求和响应。 - Service层(如 DeckService)承担业务逻辑处理。 - Dao层负责与数据库的数据交互。 - Model层维护业务实体与接口,如角色(Role)、卡牌(Card)、关卡(Level)等。 - 静态资源层管理前端HTML、CSS、JS等文件,支持页面交互。 #### 2.2 架构组件与职责划分 | 组件 | 主要职责 | | -------------- | ------------------------------------------------------ | | Controller层 | 请求接收、转发,页面跳转及业务逻辑入口 | | Service层 | 业务规则实现,游戏核心逻辑处理 | | Dao层 | 数据持久化接口实现,数据访问控制 | | Model层 | 定义游戏核心实体及接口,业务数据模型保持 | | 前端静态资源层 | 用户界面展示和交互,支持游戏操作如卡牌展示、角色信息等 | #### 2.3 设计模式与架构原则 - 应用Spring Boot的依赖注入和自动配置特性。 - 使用接口和实现类分离(如ICard、Card,IDeckService、DeckService),符合面向接口开发,便于扩展和测试。 - 采用DAO模式进行数据访问封装。 - 业务逻辑与表现层分离,符合单一职责原则。 #### 2.4 系统边界与集成点 - 系统边界:Web客户端请求通过Controller层进入服务器端,经过Service处理与数据库持久层交互,返回结果至前端。 - 集成点:前端通过REST API与后端交互;后端通过Dao层和数据库集成。 #### 2.5 架构示意图 (Mermaid) ```mermaid graph TD Client[前端客户端] Controller(Controller 层) Service(Service 层) Dao(Dao 层) Database[(数据库)] Client -->|HTTP请求| Controller Controller -->|调用| Service Service -->|操作| Dao Dao -->|数据存取| Database subgraph 前端静态资源 Client end subgraph 后端 Java 程序 Controller --> Service --> Dao end ``` ### 3. 实现细节 #### 3.1 主程序入口代码示例 ```java package com.cardgame; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = {"com.cardgame"}) public class CardGameApplication { public static void main(String[] args) { SpringApplication.run(CardGameApplication.class, args); } } ``` 该类启动Spring Boot应用,扫描com.cardgame包下组件。 #### 3.2 主要模块与实现亮点 - **Model层**:接口如ICard、IRole定义,具体实现Card、Role,清晰体现了接口与实现分离。 - **Dao层**:如CardDao、RoleDao及其接口定义,负责数据访问。 - **Service层**:如DeckService实现了IDeckService,处理卡组业务逻辑。 - **Controller层**:负责请求处理与页面跳转。 #### 3.3 配置管理示例(pom.xml) - 使用Spring Boot 3.2.3版本。 - 使用Java 21版本。 - 依赖包括spring-boot-starter-web,spring-boot-starter-test和lombok(简化代码)。 关键依赖版本管理和编码规范配置均包含于pom.xml中,方便构建与部署。 #### 3.4 外部依赖与集成示例 - Spring Boot框架,涵盖Web和测试支持。 - Lombok简化Java代码编写。 - 前端通过JS异步请求REST接口,如`fetchMoney()`获取当前金钱。 #### 3.5 组件关系图 (Mermaid) ```mermaid graph LR Controller --> Service Service --> Dao Dao --> Database Model -. Controls .-> Service Controller -. Interacts .-> Frontend[前端UI资源] ``` ### 4. 关键功能解析 #### 4.1 卡组管理系统 ##### 描述 支持多套卡组的配置与管理,卡组中包含角色卡、装备卡、行动卡等。 ##### 实现亮点示例代码 (前端卡牌生成方法示例) ```javascript function createCardElement(card) { const cardDiv = document.createElement('div'); cardDiv.className = `card`; let statsHTML = ''; switch(card.type) { case 'role': statsHTML = `