Silverlight+WCF 网络象棋 基础篇 棋子移动-规则补充(三十七)
在Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[附加上半盘限制](十)中,由Silenus-G提出规则还有点bug:
红车竟然可以走到红马的地盘:这是由于鼠标点在棋子之外的地方时,我们产生的是棋子移动[不是吃子],而在移动之时,我们又没有判断要移动到的位置上是不是有其它棋子从而引发了经济纠纷。因此,解决这个问题,我们只需在点击事件里增加一下判断棋子存不存在就可以了。
而在移
http://www.cyqdata.cn/chess/article-detail-2662
Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[附加上半盘限制](十)
上上一节,我们对棋子的下半盘棋子做了所有的规则限制,因为我们下棋的总是用下半盘的棋子来下,总没人用上半盘棋来下那么高境界的吧。
不过这节简单追加点代码,让那些企图高境界的人士可以临时性的自己和自己下。
好了,要为上半盘棋子也做限制,所以我们要知道棋子是归属于上半盘还是下半盘的,这里,我们为棋子类Chessman增加一个属性,IsUp,是否上半盘棋,反之就下半盘了。初始为该属性赋值也相当的简单:
/// <summary> /// 棋子默认在上半盘/反之在下半盘 /// </summary>
http://www.cyqdata.cn/chess/article-detail-2560
Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[将、马、士、相、炮](八)
这节来完成剩下五个种子的规则。
先来将吧
将:只能走一步,而且只能在九宫内行走
看代码,还是和兵的一个样。
if (Math.Abs(y2 - y1) + Math.Abs(x2 - x1) != 1)//只能走一步 {
http://www.cyqdata.cn/chess/article-detail-2558
Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[兵、车](七)
上两节实现了棋子的两种走法:吃子和没移动到线交叉点。
不过我们都是没有规则的走,这节为棋子的走法增加规则,棋的规则我就不多说了,基本要找个不会下象棋的很难,就是找到的估计也不会看这文章。
当我们移动棋子的时候,总是要判断一下移动是不是合规则的,合规则的才让下,不合规则的就不能下了,什么马象田马日车炮跑,将军卫士陷九宫,[本人涅造句子]之类的。
好了,原始冲动,新建棋子规则类,也是本棋子裤的最后一个类了:
对着项目内裤右键-》添加类->输入:ChessRule.cs。
/// <summary> /// 棋子规则-by 路过秋天 /// </summary> public&
http://www.cyqdata.cn/chess/article-detail-2557
Silverlight+WCF 网络象棋 基础篇 棋子移动-线交叉点(六)
上一节,我们给棋子赋于了鼠标点击事件,并通过故事板Storyboard 来移动棋子,同时实现了吃棋子。
现在我们在实现鼠标在棋盘上点击,然后棋子就移动到那去。
好了,鼠标在棋盘上点击,这里要为点击的棋盘,其实就是最外面那个Panel容器啦,还是加上一个MouseLeftButtonDown事件。
我们回到Chess类,因为这里是第一手Canvas传进来的地方,我们在Chess的构造函数里,为Panel添加这一事件
public Chess(Panel control) { control.MouseLef
http://www.cyqdata.cn/chess/article-detail-2556