Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 ChatGPT大战期末周 - 游戏文档

项目概述

这是一个以大学生期末复习为题材的网页策略游戏。玩家需要在14天内合理分配时间和精力,通过学习、休息、娱乐等行动来提升成绩,同时应对各种随机事件。游戏集成了后端登录系统,支持用户数据持久化。

系统需求

  • Node.js (v14或更高版本)
  • 现代浏览器(支持ES6 JavaScript)

快速开始

1. 启动服务器

cd /Users/yangxinran/Desktop/html期末作业
node server.js

服务器将在 http://127.0.0.1:3000 启动

2. 访问游戏

打开浏览器访问:http://localhost:3000

3. 登录/注册

  • 用户名: 2-16位中文、英文、数字或下划线
  • 密码: 至少4位字符
  • 首次登录自动创建账户,之后可直接登录

游戏玩法

核心机制

游戏采用14天回合制设计,每天需要选择一个主要行动。

角色属性系统

属性 初始值 最大值 说明
学习进度 (GPA) 20 100 影响最终考试成绩
体力值 80 100 过低时学习效率下降
心态值 70 100 影响负面事件概率
ChatGPT熟练度 10 100 解锁特殊技能

每日行动

每天可选择一个行动执行:

1️⃣ 学习

  • 效果: GPA +8, 体力 -15, 心态 -5
  • 说明: 传统学习方式,稳定提升成绩

2️⃣ 问ChatGPT

  • 效果: GPA +10, 体力 -5, AI熟练度 +5
  • 说明: 利用AI辅助复习,后期收益显著

3️⃣ 睡觉

  • 效果: 体力 +20, 心态 +10
  • 说明: 恢复精力和心态,保持学习效率

4️⃣ 打游戏

  • 效果: GPA -3, 体力 +5, 心态 +15
  • 说明: 短期快乐但损伤成绩

5️⃣ 刷短视频

  • 效果: 体力 -5, 心态 +10
  • 说明: 收益不稳定,容易上头

课程系统

四门课程,难度各异:

课程 难度 重点
数据库 ★★★ SQL、索引、事务管理
Python程序设计 ★★ 函数、类、文件操作
数据结构 ★★★★ 栈、队列、树、图
数字信号处理 ★★★★★ FFT、Z变换、滤波器设计

每个行动都会均匀分配进度到四门课程。

AI技能树系统

随着ChatGPT熟练度提升,自动解锁特殊能力:

等级 需要点数 技能名称 效果
1 20 快速总结 学习收益 +10%
2 40 自动生成笔记 学习收益 +20%
3 60 智能错题整理 学习收益 +30%
4 80 考试预测 有概率提前获知重点
5 100 AI学神模式 所有学习效果翻倍

随机事件系统

每个行动后有70%概率触发随机事件,需要做出选择:

  1. 室友邀请开黑 - 拒绝/加入
  2. 老师划重点 - 自动获得GPA+8
  3. B站推送视频 - 观看(影响时间)或不看
  4. 历年真题 - 开始做题
  5. ChatGPT服务器满载 - 无法使用AI
  6. 考试范围扩大 - 难度提升
  7. 学霸分享笔记 - 获得学习加成

结局系统

根据最终GPA评分,游戏有5种结局:

GPA范围 结局 描述
≥ 90 ★★★★★ 保研大神 轻松通过,成功保研
80-89 ★★★★ 学霸降临 成绩优秀,同学羡慕
60-79 ★★★ 安全上岸 顺利及格,没有挂科
50-59 ★★ 极限飘过 压线及格,惊险存活
< 50 ★ 挂科战神 补考见,明年再来

后端系统

API接口

登录/注册

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数据存储

使用提示

  1. 密码安全: 系统使用PBKDF2加密算法存储密码,安全可靠

  2. 本地游戏进度: 游戏进度自动保存在浏览器LocalStorage中

  3. 云端进度: 最终分数会上传到服务器数据库

  4. 新游戏重开: 点击"新游戏"按钮随时开启新的游戏周期

  5. 多账户支持: 每个用户有独立的账户和游戏数据

扩展功能(可选实现)

  • 🏆 多人排行榜
  • 🎓 不同专业难度模式
  • 🎙️ AI语音助手
  • 🏅 成就系统
  • 🌙 隐藏结局(如"提前摆烂"、"通宵修仙"等)
  • 📊 游戏统计和分析
  • 🎵 背景音乐和音效

故障排查

问题1: 端口已被占用

症状: Error: listen EADDRINUSE: address already in use 127.0.0.1:3000

解决方案:

# 查找占用端口的进程
lsof -i :3000

# 杀死进程
kill -9 <PID>

# 或使用其他端口
PORT=3001 node server.js

问题2: 登录失败

症状: 无法登录或注册

解决方案:

  • 检查用户名格式(2-16位)
  • 检查密码长度(至少4位)
  • 清除浏览器缓存和cookies

问题3: 游戏不更新

症状: 点击行动按钮无反应

解决方案:

  • 刷新页面
  • 检查浏览器控制台是否有错误(F12)
  • 确保服务器正在运行

开发者信息

游戏设计: 基于《ChatGPT大战期末周》策划案 实现平台: HTML5 + Node.js 开发时间: 2026年

许可证

本项目为学习和教育目的创建。


祝你期末周大战胜利!🎓

About

ChatGPT大战期末周 - 一个有趣的大学生期末复习模拟游戏

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages