# 篮球经理 **Repository Path**: dongyuheng/basketballManager ## Basic Information - **Project Name**: 篮球经理 - **Description**: vibe coding 初体验 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-24 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 篮球经理模拟游戏 一款以篮球经理模拟经营为核心的网页游戏。玩家扮演职业篮球队的总经理兼主教练,负责球队建设、战术制定、球员交易、选秀、薪资管理,并通过可视化模拟比赛带领球队争夺总冠军。 ## 技术栈 | 层 | 技术 | |----|------| | 后端 | Java 17 + Spring Boot 3.2.5 + MyBatis Plus 3.5.6 | | 数据库 | MySQL 8.0 | | 前端 | Vue 3 + TypeScript + Ant Design Vue 4 + Pinia + ECharts | | 实时通信 | Spring WebSocket + STOMP + SockJS | | 构建 | Maven (后端) + Vite 5 (前端) | ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 18+ - MySQL 8.0+ ### 启动命令 ```bash # 后端 (端口 8080) cd backend mvn spring-boot:run # 前端 (端口 3000, 代理到 8080) cd frontend npm install npm run dev # 访问 http://localhost:3000 ``` ### 编译验证 ```bash # 后端编译 cd backend && mvn compile # 前端类型检查 cd frontend && npx vue-tsc --noEmit ``` ### 数据库配置 在启动后端前,设置以下环境变量: ```bash export DB_HOST=localhost export DB_PORT=3306 export DB_NAME=gamev2 export DB_USERNAME=root export DB_PASSWORD=your_password ``` 或在 `application.yml` 中直接修改默认值。 表在首次启动时自动创建 (schema.sql),首次启动填充种子数据 (DataSeeder)。 ## 项目结构 ### 后端 Maven 多模块 | 模块 | 职责 | 文件数 | |------|------|--------| | gamev2-common | 公共模型、枚举、DTO、基础设施 | ~96 | | gamev2-engine | 比赛引擎、战术配置、球员成长 | ~19 | | gamev2-ai | AI大模型决策、提供商集成 | ~11 | | gamev2-core | Spring Boot启动、Controller、Service、Config | ~75 | 模块依赖关系: `core → common, engine, ai` | `engine → common` | `ai → common` ### 前端 ``` frontend/src/ api/index.ts — API调用 stores/*.ts — Pinia状态管理 composables/ — 组合式函数 (WebSocket等) components/game/ — Canvas球场等游戏组件 views/ — 20个页面 router/index.ts — 路由配置 types/ — TypeScript类型 styles/ — 暗色主题样式 ``` ## 核心系统文档 | 文档 | 说明 | |------|------| | [属性系统详解](docs/属性系统详解.md) | 27项面板属性、6项隐藏属性、身体条件、位置机制、训练建议 | | [比赛引擎详解](docs/比赛引擎详解.md) | 四阶段进攻流程、系数对抗系统、出手判定、防守响应、体力机制 | | [战术体系详解](docs/战术体系详解.md) | 9种战术核心效果、参数配置、适用场景、平衡调优记录 | | [系统球队详解](docs/系统球队详解.md) | 决策能力值、专精战术、觉醒系统、决策逻辑 | | [教练系统详解](docs/教练系统详解.md) | 教练类型、拍卖机制、训练上限突破、赛季生命周期 | | [勋章系统详解](docs/勋章系统详解.md) | 勋章类型、槽位解锁、C/D攻防对冲、E类光环、升级费用 | | [青训系统详解](docs/青训系统详解.md) | 青训资格获取、市场交易、学院升级、球员流转、赛季运营 | | [大模型控制详解](docs/大模型控制详解.md) | 大模型提供商配置、开关设计、成本估算、使用指南 | | [球探代币系统](docs/球探代币系统.md) | 代币经济、奖项评选、球探抽卡、AI抽卡逻辑 | ## 核心系统概览 ### 属性体系 (27面板 + 6隐藏 + 3身体条件) **面板属性 (7组27项)**: | 分组 | 属性 | |------|------| | 身体素质 | speed, strength, stamina, freeThrow, dunk | | 外线进攻 | twoPoint, threePoint, drive, offBallMove | | 内线进攻 | insideShot, layup, screen | | 组织能力 | passing, ballHandle, vision | | 外线防守 | marking, perimeterDefense, steal | | 内线防守 | interiorDefense, blockRating, helpDefense | | 篮板能力 | offRebound, boxOut, defRebound | **隐藏属性 (6项)**: drawFoul, fake, basketballIq, clutch, leadership, consistency **身体条件**: age, heightCm, BMI(由heightCm+weightKg计算) ### 联赛体系 (10级 × 10队) | 等级 | 名称 | 训练上限 | 工资帽 | |------|------|----------|--------| | 1 | 业余联赛 | 200 | 120万 | | 2 | 初级联盟 | 230 | 180万 | | 3 | 发展联盟 | 260 | 280万 | | 4 | 高级联盟 | 280 | 420万 | | 5 | 职业三级 | 300 | 620万 | | 6 | 职业二级 | 320 | 950万 | | 7 | 职业一级 | 340 | 1500万 | | 8 | 冠军联赛 | 360 | 2300万 | | 9 | 超级联赛 | 380 | 3800万 | | 10 | 传奇联赛 | 400 | 6000万 | - 每级10队, 共100队/1500球员 - 每赛季18场(主客双循环) - 升降级: 前4季后赛(1v4/2v3), 第10直接降 ### 比赛引擎 (4阶段回合模型) ``` 阶段0: 过半场 (24秒→落位) └─ PG控球值判定 → 顺利过半场 / 8秒违例 阶段1: 固定战术 (14秒) └─ 全队无球跑动→执行概率→出手或进入下阶段 阶段2: 自由跑位 (14→9秒, 可循环) └─ 个人无球跑动→摆脱→出手判定(期望vs阈值) 阶段3: 单打阶段 (≤9秒, 消耗70%回合) ├─ 挡拆后突破: 攻筐/急停跳投/分球空位 ├─ 直接突破: 1v1过人 └─ 内线背打: 腰位要球+后仰跳投/勾手 ``` **核心机制**: - 属性标准化: `floor((attr / leagueCap × 100) / 5) × 5` - 5类系数: 外线进攻/外线防守/内线进攻/内线防守/篮板 × 5位置权重 - 惩罚机制: 系数对比→面板buff/debuff - 实时推送: WebSocket `/topic/game/{id}` ### 战术体系 (9种) | 战术 | 核心效果 | 胜率 | |------|---------|------| | 外线(OUTSIDE) | 3PT↑, 挡拆↑, 内线↓ | 54.2% | | 跑轰(RUN_AND_GUN) | 快节奏, 出手↑, 防守↓ | 53.3% | | 绞肉机(GRINDER) | 防守↑↑, 节奏↓, 对方体力消耗↑ | 52.4% | | 空间节奏(SPACE_RHYTHM) | 3PT↑, 无球↑↑, 视野↑↑ | 51.5% | | 花拳绣腿(FLASHY) | 华丽跑位, 防守弱 | 51.3% | | 全能(ALL_AROUND) | 均衡+防守转化 | 50.0% | | 防守反击(DEFENSIVE_COUNTER) | 防守↑, 协防↑, 快下↑ | 46.4% | | 均衡(BALANCED) | 内外全面, 无突出项 | 44.7% | | 内线(INSIDE) | 内线得分↑, 3PT↓ | 44.1% | ### 训练系统 - 日常训练: 选择7类训练重点, 每项属性独立潜力条 - 周期训练: 每2天结算, 上场≥36分钟全额效果 - 训练速度受: 年龄 + 身高 + BMI + 联赛上限 + 潜力剩余量 - 属性触达上限后训练速度显著变慢 ### 球员成长与生命周期 | 阶段 | 年龄 | 训练速度 | |------|------|----------| | 成长加速期 | 18-22 | 1.4x | | 巅峰成长期 | 23-28 | 1.1x | | 成熟期 | 29-31 | 0.8x | | 衰退期 | 32+ | 属性开始下降 | | 退役风险 | 33+ | (年龄-32)×15%概率 | ### 经济系统 | 收入来源 | 计算方式 | |----------|---------| | 主场门票 | 9场 × 容量 × 票价 × 上座率(战绩+声望) | | 转播分成 | 联赛固定值, 同等级10队均分 | | 排名奖金 | 基数 × 排名系数(第1名200%, 第10名5%) | | 赞助商 | 数 × (1 + (声望-50)/200) | | 球衣/周边 | 基数 × 上座率 × 明星球员加成 | 支出: 球员工资 + 训练员费用 + 奢侈税(超工资帽罚150%-300%) ### 球员人格与化学反应 5组人格特质(-100~+100, |值|≥40显示标签): - 职业性: 勤奋 ↔ 懒惰 - 团队性: 无私 ↔ 自私 - 坚韧性: 大心脏 ↔ 软脚虾 - 野心: 雌心 ↔ 知足 - 适应性: 外向领袖 ↔ 孤僻 化学反应(0-100): 人格加权+冲突检测+比赛结果影响+连胜/连败 ## 数据库表 (26张) team, player, player_potential, team_roster, schedule, game, trade, trade_player, draft_pick, news, season_state, player_game_stats, player_season_stats, playoff_series, player_personality, team_chemistry, player_training, team_investment, system_config, tactic_win_rate_cache, simulation_matchup, simulation_player_stats, player_badge_slot, player_badge, youth_qualification, youth_market_listing, player_movement_cooldown, coach, team_coach, coach_auction, coach_bid, scout_token_balance, scout_token_transaction, season_award ## API 端点速查 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/teams/user | 玩家球队+阵容 | | GET | /api/teams/{id} | 球队详情 | | PUT | /api/teams/{id}/tactics | 更新战术 | | PUT | /api/teams/{id}/roster | 更新阵容 | | GET | /api/teams/{id}/salary-cap | 薪资空间 | | POST | /api/players/{id}/extend | 续约 | | GET | /api/players/{id} | 球员详情 | | POST | /api/games/{id}/simulate | 开始模拟 | | GET | /api/games/{id}/events | 比赛事件 | | GET | /api/season/current | 赛季状态 | | GET | /api/season/standings?leagueLevel= | 联赛排名 | | POST | /api/season/advance | 推进一天 | | GET | /api/stats/leaders?stat=points | 排行榜 | | GET | /api/stats/game/{id} | Box Score | | GET | /api/stats/advanced/game/{id} | 进阶比赛数据 | | GET | /api/stats/advanced/season/{playerId} | 进阶赛季数据 | | POST | /api/trades/propose | 发起交易 | | GET | /api/free-agents | 自由球员 | | POST | /api/free-agents/{id}/sign | 筽约 | | GET | /api/draft/pool | 选秀池 | | GET | /api/draft/scout/{playerId} | 球探报告 | | POST | /api/draft/pick | 做出选择 | | GET | /api/news?type=TRADE | 新闻 | | GET | /api/chemistry/{teamId} | 球队化学反应 | | GET | /api/chemistry/personality/{playerId} | 球员人格 | | POST | /api/training/assign | 分配训练 | | WS | /ws → /topic/game/{id} | 比赛实时推送 | ## 前端页面 (20个) - Dashboard - 仪表盘 - RosterManager - 阵容管理 - TacticsBoard - 战术板 - GameSimulation - 比赛模拟 - PlayerDetail - 球员详情 - PlayerCompare - 球员对比 - StatsLeaders - 数据排行 - TradeCenter - 交易中心 - FreeAgents - 自由球员 - DraftRoom - 选秀室 - LeagueNews - 联盟新闻 - TrainingCenter - 训练中心 - InvestmentCenter - 投资中心 - LeagueOverview - 联盟球队 - LeagueStandings - 联赛排名 - BadgeEncyclopedia - 勋章图鉴 - CoachAuction - 教练拍卖 - SystemSettings - 系统设置 - SimulationMatchup - 阵容模拟 - YouthMarket - 青训中心 ## 暗色主题配色 - 背景: #0a0a1a - 卡片: #1a1a2e - 强调: #ff6b35 - 辅助: #4ecdc4 - 边框: #2a2a4a ## 关键文件索引 | 模块 | 文件路径 | |------|----------| | 比赛引擎 | gamev2-engine/.../engine/GameSimulationEngine.java | | 战术配置 | gamev2-engine/.../engine/TacticalConfig.java | | 球员成长 | gamev2-engine/.../engine/PlayerGrowthEngine.java | | AI决策引擎 | gamev2-ai/.../aimodel/AIModelDecisionEngine.java | | AI提示词 | gamev2-core/.../resources/templates/ (9个FTL模板) | | 赛季推进 | gamev2-core/.../service/SeasonService.java | | 训练系统 | gamev2-core/.../service/TrainingService.java | | 经济系统 | gamev2-core/.../service/FinanceService.java | | 青训系统 | gamev2-core/.../service/YouthAcademyService.java | | 勋章系统 | gamev2-core/.../service/BadgeService.java | | 教练系统 | gamev2-core/.../service/CoachService.java | | 数据种子 | gamev2-core/.../service/DataSeeder.java | | Canvas球场 | frontend/.../components/game/BasketballCourt.vue | | 数据库建表 | gamev2-core/.../resources/schema.sql | ## 开发规范 ### 后端多模块结构 ``` backend/ gamev2-common/ — 模型、枚举、DTO、基础设施 (被所有模块依赖) gamev2-engine/ — 比赛引擎、战术、球员成长 (依赖 common) gamev2-ai/ — AI决策引擎、提供商 (依赖 common) gamev2-core/ — Spring Boot入口、Controller、Service、Config (依赖 common+engine+ai) ``` 分层: Controller → Service → Mapper (MyBatis Plus BaseMapper) - DTO使用 @Builder,简单场景用 Map 避免过多DTO - 枚举类型在 `model/enums/` 目录 ### 前端规范 - `