|
查看本系列其他相關(guān)文章請(qǐng)點(diǎn)擊:Silverlight+WCF 新手實(shí)例象棋專題索引
在線演示地址:Silverlight+WCF 新手實(shí)例 象棋 在線演示
在Silverlight+WCF 新手實(shí)例 象棋 主界面-棋譜-回放(三十九)中,我們實(shí)現(xiàn)了用戶的棋譜回放,在文章的下面,我們?cè)粝铝藘蓚€(gè)問(wèn)題:
- 下棋者在下棋過(guò)程,要不要開放“回放”功能,如果開放,需要注意什么?
- 觀眾在回放過(guò)程中,突然又傳來(lái)一個(gè)棋步,需要注意什么?
在解答這兩個(gè)問(wèn)題之前,我們先來(lái)解答上一篇的截圖中發(fā)現(xiàn)的問(wèn)題:
不知有沒有人發(fā)現(xiàn)?圖中有三個(gè)“炮”或三個(gè)”馬“,出現(xiàn)這個(gè)事故的原因,
是由于在每次重置chess.Reset的時(shí)候,我們沒有清除棋子列表,造成了有重復(fù)的棋子。找到了原因,解決的方法就相當(dāng)?shù)暮?jiǎn)單了,
只要在chess象棋類里的確Reset方法里,添加一行棋子列表.clear方法清除下就行了,增加的只有第一行:

{
ChessmanList.Clear();//增加棋子列表清除
container.Children.Clear();//棋盤和棋子一并清掉了
InitBoard();//只好重新初始棋盤了
InitChessman();//只好重新初始棋子了
IsCanMove = false;//設(shè)置狀態(tài)不能移動(dòng)了
IsGaming = false;//這個(gè)差點(diǎn)忘了
}
NET技術(shù):Silverlight+WCF 新手實(shí)例 象棋 主界面-棋譜-回放-結(jié)局(四十),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。