您的位置:首页 > 其它

一起谈.NET技术,Silverlight+WCF 新手实例 象棋 主界面-棋谱-回放-结局(四十)

2011-08-29 19:26 441 查看

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


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

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

下棋者在下棋过程,要不要开放“回放”功能,如果开放,需要注意什么?

观众在回放过程中,突然又传来一个棋步,需要注意什么?

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

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

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

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

void timer_Tick(object sender, EventArgs e)
{
//...省略N行代码...
if (moveStepIndex == App.stepList.Count)//判断棋步结束没有
{
moveStepIndex = 0;//重置索引
timer.Stop();//停止timer
App.chessManualPlaying = false;
App.chess.IsCanMove = tempIsCanMove;//增加的一行
}
}

OK,至此,我们用了同样的方法,解决了上节的两个问题,接下来又到F5的showtime时间:

正常,上图,这下棋步回放是正常的了:

1:棋手正下棋不久:



2:观众进来了,播放了棋步,定位到实时状态:



3:观众想看下棋过程,开始“回放”棋步:



4:“回放”到第三步棋中:



5:回放到第五步棋中:



OK,截图到就到此了,本系列文章,一不小心就写了40节了,在这系列的40节里,所有功能已完全的开放源码并讲解完了!

有兴趣的读者欢迎关注本系列文章,明天公司又要搬家了,本系列有没有后续文章,目前情况不明......

顺路更新下索引:Silverlight+WCF 新手实例 象棋 专题索引
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐