网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.C#中时间格式的转换.
.C#编写发送电子邮件.
.根据html页面模板动态生成html页.
.Sql server存储过程和C#分页类简.
.用C#开发智能手机软件:推箱子(二.
.c#中分割字符串的几种方法.
.在dotnet下用c#编写下载器.
.使用C#创建SQL Server的存储过程.
.C#注册表的读,写,删除,查找.
.C#中利用Markup Service实现HTML.
.用C#对DBF数据库的操作.
..Net框架集WebClient类向WinCE平.
.操作 SQL Server Mobile 2005 数.
.论C#变得越来越臃肿是不可避免的.
.借用VB的My,C#照样条条大路通罗.
.C#中控制IIS服務重啟.
.C#简单命名指南.
.关于C#中的DateTime类型的细节问.
.C#操作xml文件入门.
.C-Sharp调用标准动态库(记录).

C#一个象棋游戏程序

发表日期:2006-12-6


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

其中绘制了一个虚拟网格,其中网格分布为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

上一篇:从小处看C#.net垃圾回收 人气:5627
下一篇:IP数据包的校验和算法C#版 人气:6406
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐