# ChineseChess **Repository Path**: DurianZ/chinese-chess ## Basic Information - **Project Name**: ChineseChess - **Description**: 使用.NET 8 Winform实现的离线双人对战的中国象棋 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一、核心对弈功能(遵循官方规则) 标准棋盘与棋子系统:9×10 棋盘(含楚河汉界、九宫格),红黑双方完整棋子初始化与摆放 精准走法校验:按棋子类型(马 / 象 / 车 / 炮等)实现专属走法规则,计算合法走法并区分移动 / 吃子位置 胜负判定机制:实时检测将军状态,判定将死(获胜)、困毙(和棋)等结束条件,禁止非法移动 悔棋功能:撤销上一步走棋,同步恢复被吃棋子、棋盘状态、吃子记录与计时 二、UI 交互与可视化功能 棋子操作交互:点击选中己方棋子(高亮 + 发光),显示合法走法提示(绿色 = 移动,红色 +“吃” 字 = 吃子),点击完成走棋 视觉动画效果:棋子移动轨迹动画、选中发光特效、走法提示闪烁、楚河汉界交替显示、棋子阴影美化 右侧信息面板: 实时显示:当前走棋方、选中棋子信息(名称 + 坐标)、合法走法数量(含吃子数) 游戏状态:对局总时间、红黑方剩余时间、将军 / 获胜 / 和棋提示 走法历史:记录最近 15 步棋谱(传统格式,如 “車五进一”),含吃子信息 吃子记录展示:分面板可视化红黑双方吃子(图标 + 数量),统计吃子类型与总数 三、辅助功能与系统优化 计时系统:全局对局计时、红黑方独立 30 分钟倒计时(≤10 秒变红 + 提示音),超时自动判负 快捷键操作:F5 重新开始、Ctrl+Z 悔棋、Esc 退出游戏,支持双击防误触 系统优化:双缓冲防闪烁、限制重绘间隔、窗体自适应大小、资源自动释放 配置开关:支持显示 / 隐藏走法提示、开启 / 关闭音效(走棋 / 吃子 / 将军 / 超时反馈) 四、棋谱与记录功能 标准棋谱生成:按 “棋子 + 列 + 进 / 退 / 平 + 目标列 / 步数” 格式生成,区分红黑方进 / 退方向,追加吃子信息 历史记录管理:倒序显示最近 15 步走法,悔棋时自动同步删除对应记录 后续已修复: 1.修复黑方剩余和红方剩余时间显示问题 双方时间有一方为零,自动结束游戏。 2.增加将死(绝杀,困毙等)强制结束游戏逻辑(比如双重炮) 一方无棋可走,但不知道是否将死,游戏结束判断 3.增加翻转棋盘和恢复,并不影响象棋逻辑。 解决地理优势(黑方总是在上面,斗鸡眼?看的不舒服不习惯),维护游戏公平哈哈哈。