Silverlight+WCF 实战-网络象棋

Silverlight+WCF 实战-网络象棋文章系列教程由路过秋天完成并发布

Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[附加上半盘限制](十)

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

Silverlight+WCF 网络象棋 介绍II(九)

继上次介绍发图以来,除了一边写文章介绍以外,还进一步不断的完善,并增加了新的功能: 现在进一步上图,对目前情况的进展做一下简单介绍: 一:登陆界面,没变: 二:进入后是房间大厅,没变: 进房间来一张后期总体图: 从这张总体图上可以看出,新增加了下面的内容: 1。按钮事件”求和、认输、返回大厅、退出系统“ 2。棋谱及棋谱回放,能过该回放能定义棋子自动回放,并可定义棋子每步的间隔时间。 3。在线用户[第I节介绍时就有了] 4。聊天窗口。   简单再上几张图: 求和,点击时,对方会收到求和确认窗口: 点击确认,游戏结束,所有房间内的玩家会收到消息: 如果是取消,即拒绝游戏,双方继续游戏。   返回大厅和退出系统就不说了,点击时如果在游戏中,则给出提示,继续确认则相当于认输,然后退出房间。 棋谱回放: 除了可以看上

Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[将、马、士、相、炮](八)

这节来完成剩下五个种子的规则。 先来将吧 将:只能走一步,而且只能在九宫内行走 看代码,还是和兵的一个样。 if (Math.Abs(y2 - y1) + Math.Abs(x2 - x1) != 1)//只能走一步                        {                

Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[兵、车](七)

上两节实现了棋子的两种走法:吃子和没移动到线交叉点。 不过我们都是没有规则的走,这节为棋子的走法增加规则,棋的规则我就不多说了,基本要找个不会下象棋的很难,就是找到的估计也不会看这文章。 当我们移动棋子的时候,总是要判断一下移动是不是合规则的,合规则的才让下,不合规则的就不能下了,什么马象田马日车炮跑,将军卫士陷九宫,[本人涅造句子]之类的。 好了,原始冲动,新建棋子规则类,也是本棋子裤的最后一个类了: 对着项目内裤右键-》添加类->输入:ChessRule.cs。 /// <summary>    /// 棋子规则-by 路过秋天    /// </summary>    public&

Silverlight+WCF 网络象棋 基础篇 棋子移动-线交叉点(六)

上一节,我们给棋子赋于了鼠标点击事件,并通过故事板Storyboard 来移动棋子,同时实现了吃棋子。 现在我们在实现鼠标在棋盘上点击,然后棋子就移动到那去。 好了,鼠标在棋盘上点击,这里要为点击的棋盘,其实就是最外面那个Panel容器啦,还是加上一个MouseLeftButtonDown事件。 我们回到Chess类,因为这里是第一手Canvas传进来的地方,我们在Chess的构造函数里,为Panel添加这一事件  public Chess(Panel control)        {            control.MouseLef

Silverlight+WCF 网络象棋 基础篇 吃子(五)

上一节,我们的棋子就是一个Canvas,里面add进了一个Ellipse圆圈和TextBlock字: 想想我们是怎么下棋的,要先选中棋子吧,选中后,随便找个地方点,棋就会自动移过去。 所以,这里就产生了两件事,一是选中,二是移动。 要选中,其实就是选中棋子,选中棋子就是选中Canvas了。 于是,我们为Canvas增加一个鼠标点击事件。 让我们回到棋子类Chessman的Draw方法里,为chessman添加一个MouseLeftButtonDown事件,于是代码变成了  private void Draw()        {           

Silverlight+WCF 网络象棋 基础篇 棋子定位与象棋类(四)

上节创建显示了一颗棋子,由于没有margin属性,所以只能靠边站。 现在,我们创建一个象棋类,让它包括棋盘和棋子,同时附加几个常用函数。 还是对着Silverlight类库项目右键添加类:Chess.cs /// <summary>    /// 象棋 by 路过秋天    /// </summary>    public class Chess    {    } 既然要包括象棋当然是要包括棋盘和棋子了,于是我们为之加两个属性,棋子有很多颗,所以用List列表。  /// &

Silverlight+WCF 网络象棋 基础篇 棋子(三)

棋盘上有棋子,棋子应该还有一些属性,按原始冲动新建一个棋子类。 上google翻译下棋子E文叫什么,查到了叫Chessman,于是对着项目右键添加一个Chessman.cs  /// <summary>    /// 棋子类 by 路过秋天     ///http://cyq1162.cnblogs.com/    /// </summary>    public class Chessman    {    }   乱七八糟: 想了想,要画棋子还是找图片

Silverlight+WCF 网络象棋 基础篇 棋盘(二)

1:先新建一个和棋子相关的类库 打开VS2010后->新建->项目->Silverlight类库,名称就定为"ChessLib" 新建一个类名为Board.cs,棋盘类 棋盘类 using System;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Wind

Silverlight+WCF 网络象棋 基础篇 介绍(一)

先发一下目前实例情况的截图: 1:登陆界面:   2:进入房间大厅 三种颜色:红色为红色玩家,黑色为黑色玩家,蓝色为主旁观者。点击就进去。 3:点击红色进入主界面 目前缺少系统消息文字输出,棋谱信息,棋谱回放,聊天窗口。及后期加入单机对战。 4:另一浏览器窗口黑色玩家登陆。 5:黑色玩家进入游戏大厅 此时红色进入的位置已变成蓝色,点击的后会提示该位置已有玩家。 6:黑色玩点黑色块进去 7:此时红色家收到提示,并可以开始游戏,同时房间信息会自动更新。 开始按钮开户,点击发送游戏开始请求。   8:对方收到游戏开始请求 9:按确认开始游戏,[按取消拒绝游戏],同时对方收到通知。 10:移动棋子,同时对方棋子会自动移动   截图就先上到这里了,下面会一步步按做开源讲解实例 本次实例用的是V