重构提示词
使用说明(给人看):把下面【正文】整段复制粘贴给另一个 AI(便宜模型即可)。 该 AI 只读不写源项目;它会在
E:\AI\zcode\object\ke-she\refactored\下生成完整新代码。 执行 AI 需要:能读写本地文件、能运行javac/java、能看到E:\C\cDownKeShe(只读参考)与mysql-connector-j-8.0.33.jar。 同目录的《重构计划.md》是本提示词的详细版,执行 AI 应当两份都读。
正文(以下整段复制 ↓↓↓)
Section titled “正文(以下整段复制 ↓↓↓)”你是一名 Java 工程师,现在要对一个学生课程设计项目做纯结构重构。请严格遵守下方所有要求。
把位于 E:\C\cDownKeShe\src\ 的 23 个 Java 源文件(默认包,平铺)重构为规范分包、单文件单类、带方法注释的版本,输出到新目录:
E:\AI\zcode\object\ke-she\refactored\新目录结构最终长这样(顶层包 com.genshin.rpg):
refactored\├─ src\│ └─ com\genshin\rpg\│ ├─ Main.java│ ├─ app\ MainFrame.java│ ├─ view\ LoginPanel.java MainMenuPanel.java LevelPanel.java│ │ BattlePanel.java TeamPanel.java UpgradePanel.java│ │ BagPanel.java AdminPanel.java│ │ └─ ui\ElementStyle.java│ ├─ model\ Stats.java ElementAttach.java Character.java Player.java│ │ Enemy.java Item.java User.java SkillData.java Inventory.java│ │ └─ enums\ ElementType.java ReactionType.java│ ├─ service\ CombatSystem.java SkillSystem.java│ │ └─ skill\ Skill.java NormalAttack.java ElementalSkill.java ElementalBurst.java│ └─ dao\ StorageManager.java DBConnector.java TableInitializer.java└─ run.batMySQL 驱动 jar 复制自 E:\C\cDownKeShe\mysql-connector-j-8.0.33.jar,放在 refactored\ 根目录。
- 先用工具读取
E:\C\cDownKeShe\src\下全部 23 个.java、run.bat、db\genshin_rpg.sql,以及同目录《重构计划.md》。 - 源项目是默认包,重构后改为显式包
com.genshin.rpg.*。
红线(违反即算失败,禁止改动)
Section titled “红线(违反即算失败,禁止改动)”ElementType枚举顺序不得变:ANEMO, GEO, HYDRO, PYRO, CRYO, ELECTRO, DENDRO, PHYSICAL(DB 用ElementType.values()[index]还原)。ReactionType枚举常量名与顺序不得变。- 所有数值原样搬运,包括但不限于:防御/抗性/等级基础伤害/精通加成公式、世界等级缩放
1+(wl-1)*0.6/0.4/0.3、奖励金币50*worldLevel*85、经验100*worldLevel*85、掉落itemId==1→+2, ==2→+1, ==4→+2、战败回血/能量各50%、仙跳墙ATK+20%/暴击+12%/3回合、经验书+5000、买书-200、升级HP+50*lv / ATK+5*lv / DEF+2.5*lv、深渊法师盾25000、岩盔王盾60000(破盾后减伤0.2)、狂暴激怒HP<30% ATK*1.5、超导-40%物抗 8回合、结晶盾吸收倍率同元素2.5/异元素1.0、玩家抗性0.10。 - 角色 id 硬编码特例保留:
id1可莉/id3莫娜/id6甘雨/id8纳西妲普攻带元素;id7刻晴E 雷附魔 2 回合;id5迪卢克Q 火附魔 3 回合;id8纳西妲Q +250 精通 3 回合;id4琴且skill.id==12Q 全队回血ATK*1.2+3000。 - 怪物 specialType 1..6 的 AI(普通挥棍0.8 / 射手瞄准0.95随机火雷 / 狂暴0.9或激怒1.25 / 遗迹大风车1.5或导弹1.0 / 法师1.1 / 岩盔有盾1.4岩伤或无盾1.0物伤)原样。
- 关卡-怪物配置(
MainFrame.startWave):第1关=模板0×2+模板1;第2关波1=0×2+1、波2=2+0;第3关波1=1×2+0、波2=3;第4关波1=1×2+0×2、波2=5;第5关=模板4×3(按出现顺序命名火/水/冰深渊法师)。模板索引与波次判断一字不改。 - 管理员密码
"klee is comming"、提示"klee is c..."不变。 - MySQL 自动启动:
E:\SQL\mysql\bin\mysqld.exe+E:\SQL\mysql\my.ini+ 工作目录E:\SQL+Thread.sleep(4000)+ 密码候选["","root","123456"]+ 连接串jdbc:mysql://localhost:3306/...+ 库名genshin_rpg+ 全部建表 SQL + 全部 seed INSERT + 离线 fallback 静态数据全部原样。 - UI 视觉:所有
new Color(...)、字体Microsoft YaHei、尺寸、中文文案、emoji(🎉☠️)、HTML<font color=...>标签、JOptionPane 文字一字不改。 - 行为流程:登录自动存档、
showPanel自动saveUserProgress+refresh、战斗内useItem同步存档、注销initGameData()重置、战报文件名battle_log_level_<id>_<yyyyMMdd_HHmmss>.txt原样。 - 存档表
user_characters(user_id,character_id)/user_items(user_id,item_id)的 PK、外键、ON DUPLICATE KEY UPDATE、RETURN_GENERATED_KEYS写法不变。 - 不要做”顺手优化”:禁止把 for 改 stream、禁止提常量、禁止合并/改 buff 叠加、禁止重构数值、禁止合并重复 switch 为通用方法除非下面明确允许的
ElementStyle合并。
允许的唯一”合并”
Section titled “允许的唯一”合并””新增 view\ui\ElementStyle.java,集中以下纯查表方法(行为零差异):
static String getElementChinese(ElementType)static String getElementColorHex(ElementType)(返回#RRGGBB)static Color getElementColor(ElementType)(返回java.awt.Color)static String getReactionChinese(ReactionType)原来散落在TeamPanel / UpgradePanel / BattlePanel / CombatSystem / Character里的同名 switch,改为调用 ElementStyle,删除本地副本。这是唯一允许的去重。
具体搬迁规则(原文件 → 新位置)
Section titled “具体搬迁规则(原文件 → 新位置)”Main.java→com/genshin/rpg/Main.java(加 package + import,逻辑不变)。MainFrame.java→app/MainFrame.java。采用简化方案:保留所有状态字段与方法在 MainFrame 内(不引入 GameContext,减少跳转)。给每个 public 方法补注释。- 8 个
*Panel.java→view/。Panel 仍持MainFrame parent字段;按钮事件集中在本文件,事件处或紧邻方法顶部用// 点击后:①… ②… ③…注释串清楚调用链;删除本地元素 switch,改调ElementStyle。 Stats.java/Player.java/Enemy.java/Item.java/User.java/SkillData.java/Inventory.java→model/,加 package,原样。Character.java(顶部含class ElementAttach)→ 拆成model/Character.java+model/ElementAttach.java;ElementAttach改为public class(跨包可见)。ElementType.java/ReactionType.java→model/enums/,原样加 package。Skill.java(一文件含Skill抽象类 +NormalAttack/ElementalSkill/ElementalBurst+SkillSystem)→ 拆为:service/skill/Skill.java(public abstract class Skill)service/skill/NormalAttack.java、ElementalSkill.java、ElementalBurst.java(均改为public class)service/SkillSystem.java(改为public class,单例 API 名字/签名不变)
CombatSystem.java→service/CombatSystem.java,原样搬运 + 补注释;其本地getHTMLColorString/getElementChineseName/getReactionChineseName改调ElementStyle。StorageManager.java→ 拆为:dao/DBConnector.java:单例,持有Connection,含原connectDB()/tryConnect()(含自动启动 MySQL 的全部副作用),暴露Connection getConnection()、boolean isConnected()。dao/TableInitializer.java:initTables()+ 全部 seed INSERT,依赖DBConnector.getInstance()。dao/StorageManager.java:保持单例 + 原同名同参 API(getInstance/loadCharacters/loadEnemies/loadSkills/loginUser/registerUser/loadUserProgress/saveUserProgress/getAllUsers/addUser/updateUser/deleteUser/getUserCharacters/updateUserCharacter/getUserItems/updateUserItem/saveBattleLog),内部委托给 DBConnector/TableInitializer;保留public static class AdminCharData和public static class AdminItemData(名字不变,AdminPanel 仍按StorageManager.AdminCharData引用)。- 所有 SQL 字符串、表名、列名、
ON DUPLICATE KEY UPDATE、RETURN_GENERATED_KEYS、fallback 静态数据逐行搬运。
注释要求(强制)
Section titled “注释要求(强制)”每个方法(public/protected/private/构造)都要有注释,至少说明:
- 作用:一句话。
- 输入:参数含义(无参写”无”)。
- 输出/副作用:返回值含义;是否改字段/写库/切页/刷新 UI。
按钮事件处用
// 点击后:① 调 xxx ② 改 yyy ③ 刷新 zzz形式就地注释。 保留原代码里已有的中文行注释。
可见性注意(易错点)
Section titled “可见性注意(易错点)”原代码里这些是包级(无 public),跨包后必须加 public:
ElementAttach、SkillSystem、NormalAttack、ElementalSkill、ElementalBurst。 否则编译失败。
run.bat(写在 refactored\run.bat,Windows cmd 语法)
Section titled “run.bat(写在 refactored\run.bat,Windows cmd 语法)”@echo offcd /d "%~dp0"echo [1/2] Compiling...if not exist bin mkdir bindir /s /b src\*.java > sources.txtjavac -encoding UTF-8 -d bin @sources.txtif %errorlevel% neq 0 ( echo [ERROR] Compile failed & pause & exit /b 1 )echo [2/2] Running...set "CP=bin;mysql-connector-j-8.0.33.jar"java -cp "%CP%" com.genshin.rpg.Mainpause完成判据(你必须自行验证并贴出证据)
Section titled “完成判据(你必须自行验证并贴出证据)”- 在
refactored\下运行run.bat,编译 0 error(贴编译输出)。 - 启动程序,能弹出登录窗(截图或描述)。
- 写一份
refactored\REFACTOR_NOTE.md,含:原文件→新文件对照表、红线逐条确认(✓)、编译运行验证记录、与原版的行为一致性抽查清单(登录/注册/主菜单/编队/关卡1战斗胜利领奖/养成买书用书/管理员增删改/存档读写)。 - 不允许修改
E:\C\cDownKeShe下任何文件(那是原版,只读参考)。
E:\AI\zcode\object\ke-she\refactored\完整新源码 +run.bat+ jar +REFACTOR_NOTE.md。- 全部源文件带 package 声明与 import;每个方法有注释;按钮事件可在一屏内读懂”调用谁/做什么”。
开始执行。先读取全部原文件与《重构计划.md》,再动手。完成后贴出编译输出与 REFACTOR_NOTE.md 摘要。