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賬號進行登陸,並和好友進行聊天。然而,在本文提供的程序中使用了一些特殊的信息(信息前面帶有特殊前綴) 來傳送下棋的命令(玩家棋子走的位置)和控制命令。若是雙方使用的都是五子棋程序,下棋命令和控制命令並不會在聊天記錄中出現。系統會將這些命令解釋成相 應的動做。如當一個玩家走一步棋後,系統就會將該玩家所走的棋子的位置發送給另一個玩家,而另一個玩家的五子棋程序會將該命令解釋成棋子的位置,並在 棋盤的相應位置放上對方所下的棋子。當這個玩家走棋後,也會採用一樣的方式處理。