“撤销”“恢复”功能实现!各位高手请指点小弟!!!

wallacesan 2005-06-21 06:30:22
小弟是一个在校学生,正在做课程设计(一个拼图游戏),程序要求有 撤销和恢复
功能
请教这个功能 怎么来实现(VC)?
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
younggle 2005-06-21
  • 打赏
  • 举报
回复
使用一个专门的数据表把每一步的信息都保存下来。
sofdev 2005-06-21
  • 打赏
  • 举报
回复
《设计模式-可复用面向对象软件的基础》一书中的Command模式正好适合这种情况
里面讲得很详细,可以去下载来看看
http://www.google.com/search?q=%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%8F%AF%E5%A4%8D%E7%94%A8%E8%BD%AF%E4%BB%B6%E7%9A%84%E5%9F%BA%E7%A1%80&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&rls=org.mozilla:zh-CN:official
gooyan 2005-06-21
  • 打赏
  • 举报
回复
定义一结构体,结构体里面是用来保存操作的情况,
然后定义链表,保存所有的操作的情况
vcmute 2005-06-21
  • 打赏
  • 举报
回复
为恢复要做什么准备
1 添加:只要一个标志
2 修改/删除:保留该链表的结构

P.S.析构时注意UndoList
xqk 2005-06-21
  • 打赏
  • 举报
回复
用CPtrList 或 CObList 链表来保存每一步的状态的对象,然后怎么做就知道了吧
leechiyang 2005-06-21
  • 打赏
  • 举报
回复
保存上一步的状态.
benlei999 2005-06-21
  • 打赏
  • 举报
回复
用一个双向链表记录下每一步的Action(块ID、移动的相对坐标),然后操作就可以了吧

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧