这是一个以大学生期末复习为题材的网页策略游戏。玩家需要在14天内合理分配时间和精力,通过学习、休息、娱乐等行动来提升成绩,同时应对各种随机事件。游戏集成了后端登录系统,支持用户数据持久化。
- Node.js (v14或更高版本)
- 现代浏览器(支持ES6 JavaScript)
cd /Users/yangxinran/Desktop/html期末作业
node server.js服务器将在 http://127.0.0.1:3000 启动
打开浏览器访问:http://localhost:3000
- 用户名: 2-16位中文、英文、数字或下划线
- 密码: 至少4位字符
- 首次登录自动创建账户,之后可直接登录
游戏采用14天回合制设计,每天需要选择一个主要行动。
| 属性 | 初始值 | 最大值 | 说明 |
|---|---|---|---|
| 学习进度 (GPA) | 20 | 100 | 影响最终考试成绩 |
| 体力值 | 80 | 100 | 过低时学习效率下降 |
| 心态值 | 70 | 100 | 影响负面事件概率 |
| ChatGPT熟练度 | 10 | 100 | 解锁特殊技能 |
每天可选择一个行动执行:
- 效果: GPA +8, 体力 -15, 心态 -5
- 说明: 传统学习方式,稳定提升成绩
- 效果: GPA +10, 体力 -5, AI熟练度 +5
- 说明: 利用AI辅助复习,后期收益显著
- 效果: 体力 +20, 心态 +10
- 说明: 恢复精力和心态,保持学习效率
- 效果: GPA -3, 体力 +5, 心态 +15
- 说明: 短期快乐但损伤成绩
- 效果: 体力 -5, 心态 +10
- 说明: 收益不稳定,容易上头
四门课程,难度各异:
| 课程 | 难度 | 重点 |
|---|---|---|
| 数据库 | ★★★ | SQL、索引、事务管理 |
| Python程序设计 | ★★ | 函数、类、文件操作 |
| 数据结构 | ★★★★ | 栈、队列、树、图 |
| 数字信号处理 | ★★★★★ | FFT、Z变换、滤波器设计 |
每个行动都会均匀分配进度到四门课程。
随着ChatGPT熟练度提升,自动解锁特殊能力:
| 等级 | 需要点数 | 技能名称 | 效果 |
|---|---|---|---|
| 1 | 20 | 快速总结 | 学习收益 +10% |
| 2 | 40 | 自动生成笔记 | 学习收益 +20% |
| 3 | 60 | 智能错题整理 | 学习收益 +30% |
| 4 | 80 | 考试预测 | 有概率提前获知重点 |
| 5 | 100 | AI学神模式 | 所有学习效果翻倍 |
每个行动后有70%概率触发随机事件,需要做出选择:
- 室友邀请开黑 - 拒绝/加入
- 老师划重点 - 自动获得GPA+8
- B站推送视频 - 观看(影响时间)或不看
- 历年真题 - 开始做题
- ChatGPT服务器满载 - 无法使用AI
- 考试范围扩大 - 难度提升
- 学霸分享笔记 - 获得学习加成
根据最终GPA评分,游戏有5种结局:
| GPA范围 | 结局 | 描述 |
|---|---|---|
| ≥ 90 | ★★★★★ 保研大神 | 轻松通过,成功保研 |
| 80-89 | ★★★★ 学霸降临 | 成绩优秀,同学羡慕 |
| 60-79 | ★★★ 安全上岸 | 顺利及格,没有挂科 |
| 50-59 | ★★ 极限飘过 | 压线及格,惊险存活 |
| < 50 | ★ 挂科战神 | 补考见,明年再来 |
POST /api/login
{
"username": "用户名",
"password": "密码"
}
响应:
{
"token": "UUID",
"user": {
"username": "用户名",
"bestScore": 0
}
}
GET /api/me
Authorization: Bearer <token>
响应:
{
"user": {
"username": "用户名",
"bestScore": 最高分
}
}
POST /api/game/save
Authorization: Bearer <token>
{
"day": 当前天数,
"gpa": GPA值,
"stamina": 体力值,
"mood": 心态值,
"aiSkill": AI熟练度,
"courses": { 课程进度 }
}
GET /api/game/load
Authorization: Bearer <token>
响应:
{
"gameData": { 保存的游戏数据或null }
}
POST /api/score
Authorization: Bearer <token>
{
"score": 分数
}
响应:
{
"bestScore": 最高分
}
用户数据存储在 scores.json 文件中,包括:
- 用户名和密码(PBKDF2加密)
- 最高分记录
- 游戏进度数据
- 创建时间和更新时间
html期末作业/
├── 大战期末周.html # 主游戏文件(HTML+CSS+JavaScript)
├── server.js # Node.js后端服务器
├── scores.json # 用户数据库(自动生成)
├── 游戏.html # 其他游戏文件(可选)
└── README.md # 本文档
✨ 沉浸式期末体验: 完整模拟大学生期末生活的各个方面
✨ 策略性决策: 在学习、娱乐、休息之间权衡,考验时间管理能力
✨ 动态事件系统: 随机事件增加游戏变数和重玩价值
✨ 完整后端支持: 真实的登录系统和数据持久化
✨ 多层级结局: 5种不同的游戏结局和成就评价
✨ 技能进阶系统: AI熟练度提升解锁越来越强大的能力
✨ 精美UI设计: 现代化的深色主题界面,专业的视觉体验
前端:
- HTML5
- CSS3(Grid布局、Flexbox、渐变)
- Vanilla JavaScript(无框架依赖)
- LocalStorage(本地token存储)
后端:
- Node.js
- 原生HTTP模块
- PBKDF2密码加密
- JSON数据存储
-
密码安全: 系统使用PBKDF2加密算法存储密码,安全可靠
-
本地游戏进度: 游戏进度自动保存在浏览器LocalStorage中
-
云端进度: 最终分数会上传到服务器数据库
-
新游戏重开: 点击"新游戏"按钮随时开启新的游戏周期
-
多账户支持: 每个用户有独立的账户和游戏数据
- 🏆 多人排行榜
- 🎓 不同专业难度模式
- 🎙️ AI语音助手
- 🏅 成就系统
- 🌙 隐藏结局(如"提前摆烂"、"通宵修仙"等)
- 📊 游戏统计和分析
- 🎵 背景音乐和音效
症状: Error: listen EADDRINUSE: address already in use 127.0.0.1:3000
解决方案:
# 查找占用端口的进程
lsof -i :3000
# 杀死进程
kill -9 <PID>
# 或使用其他端口
PORT=3001 node server.js症状: 无法登录或注册
解决方案:
- 检查用户名格式(2-16位)
- 检查密码长度(至少4位)
- 清除浏览器缓存和cookies
症状: 点击行动按钮无反应
解决方案:
- 刷新页面
- 检查浏览器控制台是否有错误(F12)
- 确保服务器正在运行
游戏设计: 基于《ChatGPT大战期末周》策划案 实现平台: HTML5 + Node.js 开发时间: 2026年
本项目为学习和教育目的创建。
祝你期末周大战胜利!🎓