本文為原創,如需轉載,請注明作者和出處,謝謝!
一、前言
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.cnblogs.com/nokiaguy/archive/2009/02/23/1396401.html如需轉載請自行聯系原作者
銀河使者