卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

WhoIsUndercover項目總結(jié)性文檔

Who Is Undercover 項目總結(jié)性文檔這個項目來源于一個叫做“誰是臥底”的社交游戲,使用過IOS 和安卓的版本,了解了作為一款應(yīng)用應(yīng)該實現(xiàn)哪些功能,因此選擇作為學(xué)習(xí)Win32 API的練手

Who Is Undercover 項目總結(jié)性文檔

這個項目來源于一個叫做“誰是臥底”的社交游戲,使用過IOS 和安卓的版本,了解了作為一款應(yīng)用應(yīng)該實現(xiàn)哪些功能,因此選擇作為學(xué)習(xí)Win32 API的練手項目。

PS :之所以選擇Win32 API而不是MFC 的原因是想要更清晰地了解一下GUI 編程的內(nèi)部原理,由于MFC 基本上是封裝好的,學(xué)習(xí)的目的達(dá)不到,因此選擇學(xué)習(xí)Win32 API。

首先介紹一下這個游戲的游戲規(guī)則,以8或6人游戲為例:

1、在場8人中7人拿到同一詞語,剩下1人拿到與之相關(guān)的另一詞語。這時平民與臥底都不知道互相的身份,臥底也不知道自己是臥底。

2、每人用一句話描述自己拿到的詞語,最好不要太過明顯,既不能讓臥底察覺,也要給同伴以暗示。

3、每輪描述完畢,所有在場的人投票選出懷疑的臥底人選,得票最多的人出局。若臥底出局,則游戲結(jié)束。若臥底未出局,游戲繼續(xù)。如有兩人得票相同,則進(jìn)入PK ,大家再從兩人中間投出一個。

4、若臥底撐到臥底人數(shù)與平民人數(shù)相同時,則臥底獲勝,反之,則平民勝利。

根據(jù)這樣的一種游戲規(guī)則,大概總結(jié)出了整個程序運行的過程應(yīng)該是這樣的:

/*程序運行->玩家選擇游戲人數(shù)(主菜單)->開始游戲->每個玩家查看自己的詞語->①按照順序描述詞語->投票選出出局人->判斷游戲

,

是否產(chǎn)生某方勝利->

臥底或平民勝利->結(jié)束當(dāng)前游戲并回到主菜單

不存在某方勝利->返回①處*/

所以,根據(jù)上面的分析,該窗體程序的主窗口應(yīng)該是主菜單,在菜單欄中選擇開始游戲后,進(jìn)入游戲畫面(新的對話框),查看對應(yīng)詞語為第一次點擊對應(yīng)按鈕,某人出局為第二次點選對話框內(nèi)預(yù)先放置好的對應(yīng)按鈕,此時程序應(yīng)該自動判斷勝負(fù),若某方勝利回到主菜單,無某方勝利則提示游戲繼續(xù)。

一個新建好的win32項目,主要需要寫的部分是消息處理函數(shù)WndProc 。

首先需要自定義主菜單,利用VS 的資源編輯器添加了菜單選項,得到圖1.1。

圖1.1

其中4人、5人、6人選項分別定義ID 為IDM_4PLAYER、IDM_5PLAYER、IDM_6PLAYER,并放置到WndProc 的WM_COMMAND情形下,如圖1.2所示。

,

圖1.2

CheckWord 數(shù)組用于判斷是否是第一次點擊按鈕,值為1為第一次,undercoverNumber4和normalNumber4分別表示臥底和平民人數(shù)。圖1.2中的MessageBox 為溫馨提示(只能看自己的詞,不要偷看其他人的,點一次就能看0.0)。

游戲界面采用對話框形式,利用圖1.2中的DialogBox 調(diào)用4人游戲的游戲界面,其中,Game4為該對話框?qū)?yīng)的對話框過程,利用資源編輯器繪制如圖1.3所示的4人游戲的對話框,ID 為IDD_4PLAYER。

1.3

,

接下來就是游戲過程(對話框過程),聲明為

BOOL CALLBACK Game4(HWND hDlg , UINT message , WPARAM wParam , LPARAM lParam )

按鈕為IDC_4PLAYER_ONE(TWO、THREE 、FOUR) 。

PLAYER_ONE對應(yīng)按鈕的代碼如下: case IDC_4PLAYER_ONE: //點擊玩家一按鈕時

if (checkWord4[0] == 1)//如果第一次點擊,輸出對應(yīng)詞語 { } else //如果不是第一次點擊,判斷勝負(fù) {

if (wordList4[listNumber].undercoverOrNot[0] == 1) //如果是臥底,臥底人數(shù)減一

,

關(guān)MessageBox 函數(shù)的用法。

這樣一個游戲顯得有些單調(diào),我們在測試這個程序的時候發(fā)現(xiàn),我們在玩這個游戲的時候,常常不知道如何選擇詞語。對于這樣的情況,我們想到了,何不建立一個數(shù)據(jù)庫,在每次用戶玩游戲的時候,都會把這次用戶定義的詞語保存在服務(wù)器上。這樣一來,當(dāng)有多個用戶同時進(jìn)行游戲的時候,我們就相當(dāng)于讓很多人同時為這次的游戲詞語進(jìn)行思考,這無疑能夠豐富這個游戲的樂趣。在服務(wù)器方面,我想要使用python 作為語言的基礎(chǔ),希望借此提高自己對這門語言的理解和學(xué)習(xí)。與此同時,也能更好的理解,python 作為語言黏合劑這一句話的真諦。

標(biāo)簽: