Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放-结局(四十)

查看本系列其他相关文章请点击:Silverlight+WCF 新手实例象棋专题索引

在线演示地址:Silverlight+WCF 新手实例 象棋 在线演示

Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放(三十九)中,我们实现了用户的棋谱回放,在文章的下面,我们曾留下了两个问题:

  • 下棋者在下棋过程,要不要开放“回放”功能,如果开放,需要注意什么?
  • 观众在回放过程中,突然又传来一个棋步,需要注意什么?

在解答这两个问题之前,我们先来解答上一篇的截图中发现的问题:

不知有没有人发现?图中有三个“炮”或三个”马“,出现这个事故的原因,

是由于在每次重置chess.Reset的时候,我们没有清除棋子列表,造成了有重复的棋子。找到了原因,解决的方法就相当的简单了,

只要在chess象棋类里的确Reset方法里,添加一行棋子列表.clear方法清除下就行了,增加的只有第一行:

public void Reset()
{
   ChessmanList.Clear();
//增加棋子列表清除
   container.Children.Clear();//棋盘和棋子一并清掉了
   InitBoard();//只好重新初始棋盘了
   InitChessman();//只好重新初始棋子了
   IsCanMove = false;//设置状态不能移动
   IsGaming = false;//这个差点忘了
}

NET技术Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放-结局(四十),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。