freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)對(duì)戰(zhàn)象棋游戲本科畢業(yè)論文-wenkub.com

2025-06-18 22:37 本頁(yè)面
   

【正文】 3. 功能上有待完善。并且很好的認(rèn)識(shí)了面向?qū)ο蟮纳羁毯x。從功能模塊上看分為三部分:網(wǎng)絡(luò)通信模塊,信息處理模塊,系統(tǒng)模塊。(7) RemovePlayerfromRoom(User user)函數(shù):循環(huán)測(cè)試該用戶(hù)是否坐到某游戲桌上,如果是,將其從游戲桌上移除,并終止該桌游戲。(5) GetRoomOnLineString(int tableIndex)函數(shù):獲取指定房間人員情況及昵稱(chēng)字符串,每人之間用 ‘/’分隔。}}(3) 接收客戶(hù)端發(fā)來(lái)的信息線程中用到的方法 ReceiveData(object obj):用來(lái)接收處理客戶(hù)端信息,每個(gè)客戶(hù)一個(gè)線程,參數(shù)用于區(qū)分是哪個(gè)客戶(hù)。}catch{當(dāng)單擊【停止監(jiān)聽(tīng)】按鈕或者退出此窗體時(shí),AcceptTcpClient()會(huì)產(chǎn)生異常,此時(shí)退出循環(huán)。創(chuàng)建監(jiān)聽(tīng)對(duì)象myListener綁定在指定的IP地址和端口號(hào)上,本設(shè)計(jì)使用的是本機(jī)IP,端口號(hào)為51888。 服務(wù)器端界面設(shè)計(jì)服務(wù)器端界面設(shè)計(jì)如圖37所示:圖37 服務(wù)器端界面填寫(xiě)完游戲允許的最多人數(shù)和房間數(shù)后,單擊【啟動(dòng)服務(wù)】,服務(wù)器開(kāi)始監(jiān)聽(tīng),一旦收到鏈接求情,則建立與之對(duì)應(yīng)的線程,進(jìn)行接收和發(fā)送數(shù)據(jù)。這樣服務(wù)器可以更新該房間內(nèi)的所有用戶(hù)棋盤(pán)信息,使其同步。如果用戶(hù)以旁觀者的身份進(jìn)入,則不能單擊【開(kāi)始】和【求和】按鈕,如果以玩家的身份進(jìn)入房間,則可以單擊【開(kāi)始】按鈕,并告訴服務(wù)器該方已開(kāi)始,服務(wù)器收到該命令后,判斷對(duì)方是否也單擊了【開(kāi)始】按鈕,如果雙方都開(kāi)始了,則需要初始化棋盤(pán),并告訴該房間所有人,應(yīng)該有哪一方放置棋子(NextChess命令)。服務(wù)器收到該命令后,首先判斷該用戶(hù)的類(lèi)別(即該用戶(hù)以什么身份進(jìn)入游戲房間),如果該用戶(hù)是旁觀者,則需要將當(dāng)前棋盤(pán)上的棋子情況發(fā)送給他。最后發(fā)送給服務(wù)器該用戶(hù)的登錄信息,即Login命令,同時(shí)創(chuàng)建一個(gè)接受線程用來(lái)循環(huán)接收來(lái)自服務(wù)器的命令。服務(wù)器接收到該信息后,首先判斷游戲室人員是否已滿(mǎn),如果還能容納用戶(hù)進(jìn)入,再判斷游戲室內(nèi)是否已經(jīng)有人使用過(guò)這個(gè)昵稱(chēng),如果兩個(gè)條件均滿(mǎn)足,則將該用戶(hù)添加到用戶(hù)列表中,并將游戲室現(xiàn)有總?cè)藬?shù)、游戲室開(kāi)設(shè)的房間數(shù)(RoomNumbers命令)以及各游戲桌人員情況(Tables命令)發(fā)送給該用戶(hù),同時(shí)告訴其他用戶(hù)該用戶(hù)進(jìn)入了游戲室(Login命令)。 客戶(hù)端界面設(shè)計(jì)用戶(hù)運(yùn)行客戶(hù)端程序,首先進(jìn)入登錄界面,如圖34所示。若刪除一個(gè)棋子,即令該位置的顏色為1,ID為0;而在客戶(hù)端刪除一個(gè)棋子,則是刪除棋子集合中ChessID=ID的棋子對(duì)象。圖33 服務(wù)器端類(lèi)圖服務(wù)器端的棋盤(pán)Grid是一個(gè)二維數(shù)組,其中每一個(gè)元素都是一個(gè)結(jié)構(gòu)類(lèi)型,含有兩個(gè)int型的變量ChessColor和ChessID。(2) SetExiteUserTips(string userTypeString, string names)函數(shù):設(shè)置用戶(hù)退出房間后顯示的信息,自己退出不需要調(diào)用此方法。 游戲房間、棋盤(pán)、棋子的關(guān)系一個(gè)游戲房間對(duì)應(yīng)一個(gè)棋盤(pán),在棋盤(pán)上可以添加棋子、刪除棋子、移動(dòng)棋子,這些棋子放在一個(gè)集合中,該集合可以想像成盛放棋子的容器。因此在設(shè)計(jì)棋子時(shí),首先寫(xiě)了一個(gè)基類(lèi),把他們共同的屬性和方法放在里面,然后不同的棋子繼承這個(gè)基類(lèi),并擁有自己的屬性和方法。(8) ResetGrid():初始化棋盤(pán)。(4) SetChess(int i ,int j,int ChessColor,int ChessID)函數(shù):把ID號(hào)等于ChessID的棋子放置在坐標(biāo)i,j所在的位置上。(1) MouseDown事件:{if(flag==0){判斷鼠標(biāo)按下位置Point是否存在棋子對(duì)象w若存在 {選中該對(duì)象;flag=1;lastPoint=Point;lastObject=w;}若不存在 {則返回;}}If(flag==1){判斷l(xiāng)astObject是否滿(mǎn)足移動(dòng)條件若滿(mǎn)足{判斷鼠標(biāo)按下位置Point是否存在棋子對(duì)象w若存在If(!=){刪除w;把lastObject移動(dòng)到該點(diǎn);Flag=0;返回;}else{Flag=0;返回;}若不存在{直接把lastObject移動(dòng)到該點(diǎn);flag=0;返回;}}若不滿(mǎn)足{令flag=0;返回;}}}(2) MouseMove事件:當(dāng)鼠標(biāo)移動(dòng)到棋子上方時(shí)顯示為手型圖標(biāo),表示可以移動(dòng)該棋子。因此該控件要響應(yīng)MouseDown、MouseMove、MouseUp、Paint事件。 客戶(hù)端系統(tǒng)模塊設(shè)計(jì)在這里分析了棋盤(pán)設(shè)計(jì),棋子設(shè)計(jì)以及游戲房間、棋盤(pán)、棋子的關(guān)系。接收線程收到此命令后,只需要將發(fā)言的信息顯示出來(lái)即可。接收線程根據(jù)此信息,決定是繼續(xù)進(jìn)行游戲還是重新開(kāi)始新局。接收線程收到此信息后,顯示哪一方獲勝的信息。(12) SetChess格式:SetChess,行,列,顏色,ID含義:放置棋子位置信息。(10) NextChess格式:NextChess,顏色含義:服務(wù)器指示應(yīng)該有哪一方放置棋子。如果是自己,則關(guān)閉棋盤(pán)窗體,然后顯示游戲室窗體。這是應(yīng)為旁觀者進(jìn)入房間時(shí),游戲可能正在進(jìn)行,他必須先看到已經(jīng)進(jìn)行到什么程度,然后才能繼續(xù)觀察游戲情況。接收線程收到此信息后,需要解析字符串,并形象的顯示各桌情況,以便客戶(hù)決定旁觀哪一桌或者判斷可以坐在那哪一桌的哪一方(6) EnterRoom格式:EnterRoom,類(lèi)別號(hào),用/分隔的黑白旁觀者名,用/分隔的該房間所有人員含義:客戶(hù)進(jìn)入房間。(3) Sorry格式:Sorry含義:服務(wù)器游戲室人員已滿(mǎn),不允許這個(gè)客戶(hù)進(jìn)入??蛻?hù)端接收線程收到此信息后,不論這個(gè)客戶(hù)是不是自己,均需要在游戲室顯示此人進(jìn)入的信息。(5) 游戲桌(PlayingTable)字段:房間號(hào)tableIndex、進(jìn)入者類(lèi)別side、棋盤(pán)控件對(duì)象。方法:AddNewObject(添加棋子)、Start(開(kāi)始游戲)、SetChess(設(shè)置棋子的位置)、DeleteChess(刪除棋子)、UpDateGrid(更新各個(gè)棋子的位置)、ResetGrid(重新初始化棋盤(pán))。(2) 棋子集合類(lèi)(GraphicsList)字段:ListIChessItem的對(duì)象_graphicsList。 客戶(hù)端類(lèi)的組成客戶(hù)端程序包含棋子(IChessItem)、棋子集合類(lèi)(GraphicsList)、游戲桌(PlayingTable)、棋盤(pán)控件(UserChessBord)、房間控件(ChessUserControl)。(11) Win命令格式:Win,color含義:玩家告訴服務(wù)器我已經(jīng)勝利。(9) AskTie命令格式:AskTie,桌號(hào),座位號(hào)含義:玩家請(qǐng)求和棋。(7) SetChess命令格式:SetChes,桌號(hào),座位號(hào),行,列,顏色,棋子ID
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1