记谱以提供悔棋功能

本节教程介绍了如何在象棋游戏中添加悔棋功能和显示棋谱。首先,通过重构Phase类并创建CCRecorder类来完善记谱功能,为悔棋做准备。接着,实现了悔棋逻辑,允许玩家回退指定步数。最后,更新了游戏界面,展示当前对局的棋谱信息。通过这些改动,玩家现在可以查看历史着法并进行悔棋操作,增强了游戏体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生命应张弛有度!前面连续三节课程中,我们进行了紧张的原生引擎封装工作,这一节我们来做一点轻松的内容!

在与 AI 对战过程,人类玩家经常需要悔棋功能,这种让时间倒流的技能不会太简单的,这一节的任务就是让我们的象棋游戏支持悔棋!

本节概要

  • 重构 Phase 类,抽取记谱功能
  • 依据棋谱记录添加悔棋逻辑
  • 显示对战着法的棋谱

Phase 重构

目前,在我们的 Phase 类中已经存在一些记录之前走棋过程的能力,我们将重构这一部分的设计,在一个专门的记录工具类中实现更完善的行棋记录功能,以为悔棋的实现作好准备。

我们在 lib/cchess 下新建一个 cc-recorder.dart 文件,计划由它来记录走棋的整个过程:

class CCRecorder {
  //
  // 无吃子步数、总回合数
  int halfMove, fullMove;
  String lastCapturedPhase;
  final _history = <Move>[];

  CCRecorder({this.halfMove = 0, this.fullMove = 0, this.lastCapturedPhase});
}

大家可以发现这个类中的三个成员变量都在 Phase 类中出现过了,我们现在这里创建 Recorder 工具,稍后我们从 Phase 中将这部分功能转换到新建的 Recorder 中来。

接下来,我们为 CCRecorder 类添加几个方法,用于记录新的行其步骤以及悔棋时,删除掉尾部添加的着法:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺照云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值