silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

上上一节,我们对棋子的下半盘棋子做了所有的规则限制,因为我们下棋的总是用下半盘的棋子来下,总没人用上半盘棋来下那么高境界的吧。 不过这节简单追加点代码,让那些企图高境界的人士可以临时性的自己和自己下。 好了,要为上半盘棋子也做限制,所以我们要知道棋子是归属于上半盘还是下半盘的,这里,我们为棋子类Chessman增加一个属性,IsUp,是否上半盘棋,反之就下半盘了。初始为该属性赋值也相当的简单:  
上上一节,我们对棋子的下半盘棋子做了所有的规则限制,因为我们下棋的总是用下半盘的棋子来下,总没人用上半盘棋来下那么高境界的吧。

不过这节简单追加点代码,让那些企图高境界的人士可以临时性的自己和自己下。

好了,要为上半盘棋子也做限制,所以我们要知道棋子是归属于上半盘还是下半盘的,这里,我们为棋子类Chessman增加一个属性,IsUp,是否上半盘棋,反之就下半盘了。初始为该属性赋值也相当的简单:

Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)

  ///   <sumMary>
        
///  棋子认在上半盘/反之在下半盘
        
///   </sumMary>
         public   bool  IsUp
        {
            
get ;
            
set ;
        }
        
public  Chessman( double  x,  double  y,  double  radius, Color color,  String  NAME,Chess parent)
        {
            IsUp 
=  y  <   5 ; // 增加的一行代码
            Parent  =  parent;
            initPoint 
=   new  Point(x, y);
            MovePoint 
=  InitPoint;
            radius 
=  radius;
            Color 
=  color;
            NAME 
=  NAME;
        }

 

看,相当相当的简单,在构造函数里一行代码就搞定了。

OK,现在知道棋子是归属于上半盘还是下半盘了,我们来为棋子的规则增加上半盘的限制。

 有一些规则是通用的,像爱日的马,硬车和大炮。因为它们可以全局范围活动。

剩下的我们要为兵、将、士、相四种,附加上在半盘的情况的规则限制。

兵先来:

我们之前的兵规则是针对下盘的棋子,所以我们只要加个if else分支一下就完成了

 

Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)

case  ChessType.bing:
                        
if  (Math.Abs(y2  -  y1)  +  Math.Abs(x2  -  x1)  !=   1 ) // 只能走一步
                        {
                            
break ;
                        }
                        
if  (chessman.IsUp)//新增加
                        {
                            
if  ((x1  ==  x2  &&  y2  >  y1)  ||  (y1  ==  y2  &&  y1  >   5 ))
                            {
// 只能直走   // 或者 过了河左右走
                                 return   true ;
                            }
                        }
                        
else//原来就有的规则。
                        {
                            
if  ((x1  ==  x2  &&  y1  >  y2)  ||  (y1  ==  y2  &&  y1  <   5 ))
                            {
// 只能直走 或者 过了河左右走
                                 return   true ;
                            }
                        }
                        
break ;

 

看到没有,代码和原来就有规则相比,只是第二个号的">"大于和"<"小于的区别

兵这样加几行代码就完了。

接下来就是将了:

还是if else 说白了全是 if else。。-_-...上半盘和下半盘本来就是这个样的。

 

自己对着棋盘数一数数字,就有这结论了。。。

接下来是士:

 

最后就是相了:

 

只有最后一个if有点变化。

好了,最好运行一下F5。看下效果图:

Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)

OK,至此,棋子上下盘都按规则走了,高境界的人群自己可以动手走两边了。。。

打完收工!

作者博客http://cyq1162.cnblogs.com/

 

对于规则补充,请看:Silverlight+WCF 新手实例 象棋 棋子移动-规则补充(三十七)

大佬总结

以上是大佬教程为你收集整理的Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)全部内容,希望文章能够帮你解决Silverlight+WCF 新手实例 象棋 棋子移动-规则[附加上半盘限制](十)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。