<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM的多人對戰游戲平臺

基于A(yíng)RM的多人對戰游戲平臺

作者: 時(shí)間:2013-12-04 來(lái)源:網(wǎng)絡(luò ) 收藏
基于A(yíng)RM的多人對戰游戲平臺

  對于單人五子棋游戲,即人機對戰,只需要一個(gè)應用程序。當用戶(hù)鼠標左擊棋盤(pán)時(shí),程序先在相應位置處畫(huà)棋子,然后執行電腦方策略,實(shí)現對戰。

  對于雙人五子棋游戲,則需要先運行一個(gè)服務(wù)器端程序,然后兩個(gè)用戶(hù)分別運行一個(gè)客戶(hù)端程序,并與此服務(wù)器相連。游戲進(jìn)行過(guò)程中,由服務(wù)器執行游戲策略,客戶(hù)端程序只負責采集鼠標信息和顯示棋子。我們讓用戶(hù)A在游戲平臺A上運行服務(wù)器端程序,緊接著(zhù)運行客戶(hù)端程序,并與服務(wù)器建立Socket連接;然后告訴用戶(hù)B服務(wù)器的IP地址,讓其在平臺B上運行客戶(hù)端程序,并與服務(wù)器建立Socket連接;連接成功后就可以開(kāi)始游戲了。

  3.2 單人游戲

  建立MFC工程,選擇創(chuàng )建單文檔類(lèi)型的應用程序。添加對話(huà)框資源用于選擇游戲模式,并在View類(lèi)構造函數中DoModal()。

  進(jìn)入單人模式后的程序開(kāi)發(fā)流程如圖5所示。

基于A(yíng)RM的多人對戰游戲平臺

  對于某些步驟需要作詳細說(shuō)明:

基于A(yíng)RM的多人對戰游戲平臺

  3)判斷游戲是否結束

  在Doc類(lèi)中定義私有性質(zhì)的成員變量int state[15][10];,用于記錄棋盤(pán)上每一格的狀態(tài):無(wú)棋(值為0)、用戶(hù)方棋(值為1)、電腦方棋(值為2),初始值是0。游戲過(guò)程中,某一方落棋后立即給state數組對應成員賦值,下標可由鼠標左鍵消息響應函數的CPoint point參數轉換而來(lái)。

  對于棋盤(pán)上每一個(gè)坐標點(diǎn)(i,j),沿東西、南北、東南西北、東北西南四個(gè)方向掃描五個(gè)沿途點(diǎn)的狀態(tài)值,若發(fā)現五個(gè)相同狀態(tài)相連,則該狀態(tài)(用戶(hù)方或電腦方)的棋手獲勝,游戲結束。

  4)電腦方下棋策略

  對于棋盤(pán)上每一個(gè)坐標點(diǎn)(i,j),掃描它的狀態(tài)值state[i][j],一經(jīng)發(fā)現不為0,就以此點(diǎn)為起點(diǎn),沿東、南、西、北、東南、西南、東北、西北8個(gè)方向搜索5個(gè)棋位。

  事先定義針對每個(gè)點(diǎn)、每個(gè)方向的8個(gè)整型數組(初始值賦為0):

基于A(yíng)RM的多人對戰游戲平臺

  對于坐標點(diǎn)(i,j),搜索過(guò)程中若遇到具有相同狀態(tài)的點(diǎn)(m,n),則對應方向數組的[i][j]成員的值增加,遇到不同狀態(tài)點(diǎn)則減小。保存8個(gè)中絕對值最大的。

  上述操作完后,比較所有點(diǎn)存的值,絕對值最大的說(shuō)明以該點(diǎn)起始的某個(gè)方向己方棋子相連較多,或者對方棋子相連較多,最適合落子。

  3.3 雙人游戲

  從游戲開(kāi)始到結束,客戶(hù)端與服務(wù)器的交互過(guò)程如圖6所示。

基于A(yíng)RM的多人對戰游戲平臺

  3.3.1 服務(wù)器端程序

  創(chuàng )建基于對話(huà)框的MFC工程。

  在A(yíng)pp類(lèi)的BOOL InitInstance()中加載套接字庫:AfxSocketInit();

  在Dlg類(lèi)的BOOL OnInitDialog()中初始化套接字,包括新建和綁定套接字:socket()、bind();

  在對話(huà)框上畫(huà)兩個(gè)按鈕控件:“連接用戶(hù)”和“開(kāi)始游戲”。



關(guān)鍵詞: ARM 對戰游戲平臺 S3C2410

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>