Skip to content

BetterOIer/ChineseChess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中国象棋 (Chinese Chess)

南方科技大学 CS109 2025秋季学期 Java 项目。这是一个基于 Java Swing 开发的中国象棋游戏,支持单机存档、复盘以及局域网联机对战。

快速开始 (Getting Started)

运行 edu.sustech.xiangqi.XiangqiApplication 类的 main 方法即可启动游戏。

功能特性 (Features)

1. 核心游戏逻辑 (Core Gameplay)

  • 完整规则实现: 实现了中国象棋的所有标准规则,包括:
    • 所有兵种(帅/将、仕/士、相/象、马、车、炮、兵/卒)的合法移动与吃子规则。
    • 特殊规则支持:别马腿、塞象眼、不见将等。
  • 游戏状态管理: 记录每一步走棋历史,支持不支持悔棋(真男人从不回头看爆炸!),可以在棋局结束后复盘查看。

2. 用户界面 (User Interface)

  • 图形化界面: 使用 Java Swing 构建,包含精美的背景和棋子绘制。
  • 响应式布局: 棋盘和控件支持窗口大小自适应调整。
  • 交互体验:
    • 控制面板: 提供重置、复盘、返回存档、投降等快捷操作。
    • 状态显示: 实时显示当前回合方和游戏结果。
    • 复盘模式: 可视化展示历史走棋记录,支持点击回溯。
  • 自定义组件: 统一风格的圆角按钮、输入框,提升视觉体验。

3. 用户系统 (User System)

  • 账户管理: 支持用户注册、登录和登出。
  • 安全存储: 用户密码使用 SHA-256 哈希算法加密存储。
  • 游客模式: 支持免登录的游客模式(功能受限)。

4. 存档管理 (Save & Load)

  • 本地持久化: 使用 SQLite 数据库存储游戏数据。
  • 存档操作:
    • 新建存档: 支持自定义存档名、描述,可选择先手方(红/黑/随机)。
    • 管理存档: 支持查看存档列表、修改存档信息、删除存档。
    • 加载游戏: 随时读取存档继续对局。

5. 联机对战 (Multiplayer)

  • 局域网联机: 基于 UDP 协议实现的局域网对战功能。
  • 自动发现: 通过广播机制自动发现同一房间号的对手。
  • 实时同步: 实时同步双方的走棋操作,保证对局一致性。

项目结构 (Project Structure)

  • edu.sustech.xiangqi.model: 包含核心业务逻辑、棋子规则定义及数据库操作类。
  • edu.sustech.xiangqi.ui: 包含所有图形界面实现、窗口、面板及自定义组件。
  • edu.sustech.xiangqi.database: 存放 SQLite 数据库文件。
  • edu.sustech.xiangqi.assets: 存放图片、字体等静态资源。

特色功能(Special Feature)

  1. git管理
  2. 棋盘信息和用户信息存储在SQLite中,采用哈希算法保护用户密码数据
  3. 添加了移动音效,并且可以控制开/关
  4. 每个页面支持人性化的快捷键绑定如
    • ArchiveManager:
      • / : 代替鼠标滚动功能。
      • Enter: 进入选中的存档。
      • Esc: 取消当前选中项。
      • Delete: 删除选中的存档。
    • 对话框 (Dialogs):
      • Enter: 确认/提交。
      • Esc: 取消/关闭。
  5. 完整的用户注册、登录、密码修改、登出等功能;支持游客登录,游客登录可在程序未关闭时临时保存棋局,重开程序自动清空。欢迎界面显示用户名。
  6. ArchiveManager美观的存档管理页面,有缩略图展示,棋局信息显示(本地、网络)是否已结束等等
  7. 新建存档能选先后手或随机。
  8. 投降、复盘、选中棋子可到达、选中棋子可吃、上一步挪动的棋子与步骤,每操作一次数据自动存档
  9. 支持UDP协议下的局域网网络对战,该模式下棋盘根据用户翻转并且显示用户名
  10. 增加了每个页面可以随时返回上一级页面的功能
  11. 对登录、选择、棋盘界面进行了美化,如添加背景图片与修改字体,调整组件相对位置,棋盘可任意放大缩小而不变形,棋盘上增添卒/炮位标记、调整线段粗细
  12. 吃掉的对方棋子放置在棋盘上增强用户成就感

About

Chinese Chess Group Project of Sustech CS109 2025 Fall.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages