1、前言php
WPF(Windows Presentation Foundation)是微软最近推出的一套界面实现技术。该技术实现了界面设计和逻辑代码的分离。在WPF技术中,界面设计由xaml文件来完成。 xaml文件是XML格式的,用于设置用户界面中的各类控件(如文本框、列表框、按钮等)的属性和事件。WPF中的逻辑代码目前可使用C#或 VB.Net来编写。编写的方式和传统的.net程序相似。在本文采用了WPF做为界面实现技术来完成五子棋程序。
本文实现的五子棋程序从表面上看只是个普通的联机对战的×××类游戏,但实际上,该联机对战游戏并不须要本身编写服务端程序,更不须要为玩游戏而准备24小 时开机的服务器。本游戏的内部通信协议采用了MSN协议,所以,能够直接使用MSN账号(一个E-mail地址)进行登陆,并在好友之间展开对弈。
本文提供的五子棋游戏使用了一个开源的MSN协议实现(dotmsn2.0)来进行MSN用户之间的通信。dotmsn2.0可从以下的网址下载:
http://www.xihsolutions.net/dotmsn/download.html
若是读者想了解更多关于MSN协议的内容,能够访问以下的网址:
http://www.hypothetic.org/docs/msn/index.php
在本游戏程序中使用了Linq技术来读取XML文件中保存的MSN账号,并将用户最后一次成功登陆的MSN账号写入XML文件。为了安全起见,本程序并未在XML文件中保存密码,所以,在每次登陆游戏时,都必须输入MSN账号的密码。
2、实现原理
使用dotmsn2.0能够很是容易使用MSN账号进行登陆,并和好友进行聊天。然而,在本文提供的程序中使用了一些特殊的信息(信息前面带有特殊前缀) 来传送下棋的命令(玩家棋子走的位置)和控制命令。若是双方使用的都是五子棋程序,下棋命令和控制命令并不会在聊天记录中出现。系统会将这些命令解释成相 应的动做。如当一个玩家走一步棋后,系统就会将该玩家所走的棋子的位置发送给另一个玩家,而另一个玩家的五子棋程序会将该命令解释成棋子的位置,并在 棋盘的相应位置放上对方所下的棋子。当这个玩家走棋后,也会采用一样的方式处理。