本文為原創,如需轉載,請註明作者和出處,謝謝!
本文獲得第二屆微軟.net平台應用程式開發徵文大賽三等獎
一、前言 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帳號的密碼。 二、實現原理 使用dotmsn2.0可以非常容易使用MSN帳號進行登入,並和好友進行聊天。然而,在本文提供的程式中使用了一些特殊的資訊(資訊前面帶有特殊首碼) 來傳送下棋的命令(玩家棋子走的位置)和控制命令。如果雙方使用的都是五子棋程式,下棋命令和控制命令並不會在聊天記錄中出現。系統會將這些命令解釋成相 應的動作。如當一個玩家走一步棋後,系統就會將該玩家所走的棋子的位置發送給另外一個玩家,而另外一個玩家的五子棋程式會將該命令解釋成棋子的位置,並在 棋盤的相應位置放上對方所下的棋子。當這個玩家走棋後,也會採用同樣的方式處理。
原文:http://www.comprg.com.cn/i.net/product_show.asp?id=356