c#一个象棋游戏程式_c#应用

2008-02-23 05:42:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

这个程式是为我的学生做的一个象棋游戏,里面涉及大家有兴趣的朋友能够下载来看看

其中绘制了一个虚拟网格,其中网格分布为9X10分布,和正规象棋布局相同,即GridX,GridY作为该网格的X,Y坐标,任何坐标点均采用此虚拟网格进行转换

其中定义了一个棋子接口,任何棋盘和棋子之间的交互均来自此接口
public interface IChessItem
{
/**//// <summary>
/// 为蓝方还是红方
/// </summary>
Enums.ChessType type{get;set;}
/**//// <summary>
/// 是否被按下
/// </summary>
bool IsChecked{get;set;}
/**//// <summary>
/// 移动的步长X
/// </summary>
int StepX{get;}
/**//// <summary>
/// 移动的步长Y
/// </summary>
int StepY{get;}
/**//// <summary>
/// 在棋盘网格中的X坐标
/// </summary>
int GridX{get;set;}
/**//// <summary>
/// 在棋盘网格中的Y坐标
/// </summary>
int GridY{get;set;}
/**//// <summary>
/// 移动棋子
/// </summary>
/// <param name="ChessX">将要移动的网格X坐标</param>
/// <param name="ChessY">将要移动的网格Y坐标</param>
/// <returns>是否成功移动</returns>
bool MoveItem(int ChessX,int ChessY);
/**//// <summary>
/// 初始化棋子
/// </summary>
void InitItem();
/**//// <summary>
/// 移除棋子,作为被其他棋子吃掉
/// </summary>
void Remove();
}
其中有两个比较重要的事件 private void cib_Click(object sender, EventArgs e)此事件为棋子被点机事件,由他来响应棋子的选中连同吃别的棋子,名字没改,呵呵,不好意思

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)此事件做为棋子实现移动

任何棋子移动均来源于IChessItem接口中的
bool MoveItem(int ChessX,int ChessY);
由于是给我学生看,此程式比较简单,所以流程也比较简单.学习C#的朋友能够来看一下,呵呵
其中算法麻烦一点的是炮的翻山,马的蹩脚,象的蹩脚

任何棋子继承ChessItemBase,其中一些棋子重写函数public virtual bool LimitPoint(int ChessX,int ChessY)以实现自己的特别限制移动,比如炮,马,象,兵等

Demo Soure http://www.cnblogs.com/Files/KeithDan/Chess.rar
http://www.cnblogs.com/KeithDan/archive/2006/12/06/583472.html


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: ip数据包的校验和算法c#版_c#应用

下一篇: 从小处看c#.net垃圾回收_c#应用