Skip to content

LittleChiu/KeyStrom

Repository files navigation

KeyStorm - 键盘风暴

KeyStorm 是一款基于 Java Swing 开发的局域网联机打字对战游戏。 玩家通过快速准确地输入屏幕上掉落的单词来消除它们,防止防守墙被摧毁。 游戏支持单人练习模式和双人局域网对战模式。

功能特性

  • 核心玩法: 消除掉落的单词,保护防守墙。
  • 多人对战:
    • Host (主机): 建立服务器等待连接。
    • Join (加入): 输入主机 IP 进行连接。
    • 实时同步: 实时同步双方分数、状态(在线/准备/战斗中)以及掉落的单词。
    • 胜负判定: 一方墙壁被摧毁即为失败,另一方获胜。
  • 单人模式: 离线练习,挑战自我极限。
  • 数据库集成:
    • 用户系统: 根据 IP 自动生成用户 ID,支持自定义昵称。
    • 历史战绩: 本地 SQLite 数据库记录每场比赛的时间、分数、对手和结果。
  • 界面: 使用 FlatLaf 提供现代化的深色主题 UI。

如何运行

前置要求

  • JDK 17 或更高版本
  • Maven 3.x

启动步骤

  1. 克隆项目或下载源码。
  2. 使用 IntelliJ IDEA 打开项目,或在根目录运行 mvn clean install
  3. 运行主类: src/main/java/com/keystorm/Main.java

游戏规则

  1. 登录: 输入昵称进入大厅,系统会自动根据 IP 分配 ID。
  2. 准备:
    • 单人: 点击 "单人练习模式" -> 到了游戏界面按任意键开始。
    • 多人:
      • 玩家 A 点击 "启动服务器"。
      • 玩家 B 输入 A 的 IP 并点击 "连接"。
      • 双方进入游戏界面后,按 'R' 键准备。
      • 双方都准备好后,游戏自动开始。
  3. 战斗:
    • 屏幕上方会不断掉落单词。
    • 敲击键盘输入单词的字母。
    • 输入正确字母变绿,输入完整个单词后消除并得分。
    • 如果单词触底,底部的红色防守墙会受到伤害(变矮)。
    • 墙壁高度归零时,游戏结束。
  4. 结算:
    • 存活的一方获胜。
    • 结果将保存到本地数据库,可在大厅点击 "查看历史战绩" 查看。

技术栈

  • 语言: Java 17
  • GUI: Swing + FlatLaf (Dark Theme)
  • 数据库: SQLite (JDBC)
  • 网络: Java Sockets (TCP/IP)
  • 构建工具: Maven

项目结构

请参阅 PROJECT_LIST.md 了解详细的文件结构。

About

Java课程作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages