Silverlight+WCF 网络象棋 介绍II(九)
继上次介绍发图以来,除了一边写文章介绍以外,还进一步不断的完善,并增加了新的功能:
现在进一步上图,对目前情况的进展做一下简单介绍:
一:登陆界面,没变:
二:进入后是房间大厅,没变:
进房间来一张后期总体图:
从这张总体图上可以看出,新增加了下面的内容:
1。按钮事件”求和、认输、返回大厅、退出系统“
2。棋谱及棋谱回放,能过该回放能定义棋子自动回放,并可定义棋子每步的间隔时间。
3。在线用户[第I节介绍时就有了]
4。聊天窗口。
简单再上几张图:
求和,点击时,对方会收到求和确认窗口:
点击确认,游戏结束,所有房间内的玩家会收到消息:
如果是取消,即拒绝游戏,双方继续游戏。
返回大厅和退出系统就不说了,点击时如果在游戏中,则给出提示,继续确认则相当于认输,然后退出房间。
棋谱回放:
除了可以看上
http://cyqdata.cn/chess/article-detail-2559
Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[将、马、士、相、炮](八)
这节来完成剩下五个种子的规则。
先来将吧
将:只能走一步,而且只能在九宫内行走
看代码,还是和兵的一个样。
if (Math.Abs(y2 - y1) + Math.Abs(x2 - x1) != 1)//只能走一步 {
http://cyqdata.cn/chess/article-detail-2558
Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[兵、车](七)
上两节实现了棋子的两种走法:吃子和没移动到线交叉点。
不过我们都是没有规则的走,这节为棋子的走法增加规则,棋的规则我就不多说了,基本要找个不会下象棋的很难,就是找到的估计也不会看这文章。
当我们移动棋子的时候,总是要判断一下移动是不是合规则的,合规则的才让下,不合规则的就不能下了,什么马象田马日车炮跑,将军卫士陷九宫,[本人涅造句子]之类的。
好了,原始冲动,新建棋子规则类,也是本棋子裤的最后一个类了:
对着项目内裤右键-》添加类->输入:ChessRule.cs。
/// <summary> /// 棋子规则-by 路过秋天 /// </summary> public&
http://cyqdata.cn/chess/article-detail-2557
Silverlight+WCF 网络象棋 基础篇 棋子移动-线交叉点(六)
上一节,我们给棋子赋于了鼠标点击事件,并通过故事板Storyboard 来移动棋子,同时实现了吃棋子。
现在我们在实现鼠标在棋盘上点击,然后棋子就移动到那去。
好了,鼠标在棋盘上点击,这里要为点击的棋盘,其实就是最外面那个Panel容器啦,还是加上一个MouseLeftButtonDown事件。
我们回到Chess类,因为这里是第一手Canvas传进来的地方,我们在Chess的构造函数里,为Panel添加这一事件
public Chess(Panel control) { control.MouseLef
http://cyqdata.cn/chess/article-detail-2556
Silverlight+WCF 网络象棋 基础篇 吃子(五)
上一节,我们的棋子就是一个Canvas,里面add进了一个Ellipse圆圈和TextBlock字:
想想我们是怎么下棋的,要先选中棋子吧,选中后,随便找个地方点,棋就会自动移过去。
所以,这里就产生了两件事,一是选中,二是移动。
要选中,其实就是选中棋子,选中棋子就是选中Canvas了。
于是,我们为Canvas增加一个鼠标点击事件。
让我们回到棋子类Chessman的Draw方法里,为chessman添加一个MouseLeftButtonDown事件,于是代码变成了
private void Draw() {  
http://cyqdata.cn/chess/article-detail-2555
Silverlight+WCF 网络象棋 基础篇 棋子定位与象棋类(四)
上节创建显示了一颗棋子,由于没有margin属性,所以只能靠边站。
现在,我们创建一个象棋类,让它包括棋盘和棋子,同时附加几个常用函数。
还是对着Silverlight类库项目右键添加类:Chess.cs
/// <summary> /// 象棋 by 路过秋天 /// </summary> public class Chess { }
既然要包括象棋当然是要包括棋盘和棋子了,于是我们为之加两个属性,棋子有很多颗,所以用List列表。
/// &
http://cyqdata.cn/chess/article-detail-2554
Silverlight+WCF 网络象棋 基础篇 棋子(三)
棋盘上有棋子,棋子应该还有一些属性,按原始冲动新建一个棋子类。
上google翻译下棋子E文叫什么,查到了叫Chessman,于是对着项目右键添加一个Chessman.cs
/// <summary> /// 棋子类 by 路过秋天
///http://cyq1162.cnblogs.com/ /// </summary> public class Chessman { }
乱七八糟:
想了想,要画棋子还是找图片
http://cyqdata.cn/chess/article-detail-2552
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
http://cyqdata.cn/chess/article-detail-2551
Silverlight+WCF 网络象棋 基础篇 介绍(一)
先发一下目前实例情况的截图:
1:登陆界面:
2:进入房间大厅
三种颜色:红色为红色玩家,黑色为黑色玩家,蓝色为主旁观者。点击就进去。
3:点击红色进入主界面
目前缺少系统消息文字输出,棋谱信息,棋谱回放,聊天窗口。及后期加入单机对战。
4:另一浏览器窗口黑色玩家登陆。
5:黑色玩家进入游戏大厅
此时红色进入的位置已变成蓝色,点击的后会提示该位置已有玩家。
6:黑色玩点黑色块进去
7:此时红色家收到提示,并可以开始游戏,同时房间信息会自动更新。
开始按钮开户,点击发送游戏开始请求。
8:对方收到游戏开始请求
9:按确认开始游戏,[按取消拒绝游戏],同时对方收到通知。
10:移动棋子,同时对方棋子会自动移动
截图就先上到这里了,下面会一步步按做开源讲解实例
本次实例用的是V
http://cyqdata.cn/chess/article-detail-2550