摘 要 讨论了如何利用WPF技术和MSN协议实现五子棋程序。文中所给出的五子棋程序需要使用MSN帐号登录,登录后,系统会列出当前帐号的所有好友,通过双击某个好友,可以和该好友进行五子棋游戏对羿。本系统实现的五子棋游戏为联机对战类型,并可自动判断输赢。当一方赢得一局后,系统会自动重新开始新的一局,直到一方退出游戏。
关键词 WPF;Linq;IM;MSN;MSN通信协议;dotmsn2.0;五子棋
1 前言
WPF(Windows Presentation Foundation)是微软最近推出的一套界面实现技术。该技术实现了界面设计和逻辑代码的分离。在WPF技术中,界面设计由xaml文件来完成。xaml文件是XML格式的,用于设置用户界面中的各种控件的属性和事件。WPF中的逻辑代码目前可以使用C#或VB.NET来编写。编写的方式和传统的.NET程序类似,本系统采用了WPF作为界面实现技术来完成五子棋程序。
实现五子棋程序从表面上看只是个普通的联机对战棋牌类游戏,但实际上,该联机对战游戏并不需要自己编写服务端程序,更不需要为玩游戏而准备24小时开机的服务器。本游戏的内部通信协议采用了MSN协议,因此,可以直接使用MSN帐号进行登录,并在好友之间展开对弈。
2 实现原理
使用dotmsn2.0可以非常容易使用MSN帐号进行登录,并和好友进行聊天。然而,提供的程序中使用了一些特殊的信息来传送下棋的命令和控制命令。如果双方使用的都是五子棋程序,下棋命令和控制命令并不会在聊天记录中出现。系统会将这些命令解释成相应的动作。如当一个玩家走一步棋后,系统就会将该玩家所走的棋子的位置发送给另外一个玩家,而另外一个玩家的五子棋程序会将该命令解释成棋子的位置,并在棋盘的相应位置放上对方所下的棋子。当这个玩家走棋后,也会采用同样的方式处理。
3 MSN帐号登录五子棋程序
登录功能是实现五子棋程序的第一个要实现的部分。由于本游戏必须在两个拥有MSN帐号的玩家之间进行对弈,因此,就需要登录功能为本程序提供MSN帐号,并连接到MSN服务器上,以便为开始游戏做准备。
登录界面的主要部分由两个文本框(MSN帐号输入框和密码输入框)和一个登录按钮组成。首先,来设置一下登录界面中控件的位置、大小等信息。这些信息都保存在Login.xaml文件中,代码如下:
|