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

正文內(nèi)容

五子棋游戲程序設(shè)計與開發(fā)-wenkub.com

2024-12-02 01:33 本頁面
   

【正文】 break。 EndPaint hwnd, amp。 DeleteObject hFont1 。 TextOut hdc,529,301,buffer,2 。 //如果是第一局,則總局數(shù)顯示為 1 itoa count, buffer2, 10 。 site 1。 else if count%2 1 amp。amp。 hInstance,hwnd 2 TextOut hdc,95,510,白方選手勝利 下輪黑方先手 ,26 。 t true。 site 1。 else if count 1 amp。amp。 else if site 0 TextOut hdc,140,510,請黑方選手下棋 ...,17 。 SelectObject hdc,hFont1 。 GB2312_CHARSET。 26。 LOGFONT LogFont1。 SetBkMode hdc, TRANSPARENT 。 lstrcpy ,隸書 。 0。 //自定義字體 和 hFont HFONT hFont。 //白方勝利次數(shù)自加 1 over 0。//為了避免刷新屏幕導(dǎo)致屏幕閃爍, //從內(nèi)存緩沖區(qū)中 BufferDC 整體讀到窗口中; if hInstance,hwnd 1 //判斷勝負 1 為黑方勝, 2 為白方 blackWin++。 else if iter GetTag 1 amp。 iter ! InitChessB 。i 17。 BitBlt bufferDC, 0, 0, 709, 540, hdcMem, 0, 0, SRCCOPY 。 bufferDC CreateCompatibleDC hdc 。 //加入棋子聲音 break。 else px 0。 InitChessB_back [i][j] 。 N 100+22*17 //定位十字位置 i int floor double N100 / 22 。 M 16+22*17 amp。 InvalidateRect hwnd,NULL,0 。 InvalidateRect hwnd,NULL,0 。 //解決了連續(xù) 2 個同色的小 bug! if [i][j].GetTag 0 //判斷此位置是否為空白 [i][j].settag 1 。amp。amp。 break。 //加載背景圖片 GetObject hBitmap, sizeof BITMAP , amp。 。 case ID_MHELP: //游戲幫助 DialogBox hInstance, LPCTSTR IDD_DIALOG4, hwnd, About 。 case ID_MEXIT: //退 出游戲 SendMessage hwnd,WM_DESTROY,0,0 。 break。 //從 List 表中刪除棋子信息 else MessageBox hWnd,棋盤都空啦,還能悔棋嗎?重新開始吧 ,游戲提示 ,0 。 //得到棋子的橫坐標值 n xArray[px][1]。 else t true。 //刷新窗口 else MessageBox hwnd,本局結(jié) 束后,才能重新計分! ,游戲提示 ,0 。 //黑方獲勝記錄清零 px 0。 //刷新 窗口 else if over 0 MessageBox hwnd,本局已經(jīng)結(jié)束,請選擇開始游戲! ,游戲提示 ,0 。 case ID_MRESTART: //重新開始游戲 if over 1||over 2 px 0。 //初始化棋盤 InvalidateRect hwnd,NULL,0 。 break。 //初始化棋盤 //InvalidateRect hwnd,NULL,0 。 //xArray 數(shù)組的坐標值 static bool CtrlS true。 HBRUSH hBr。 static int site 2。 static HBITMAP hBitmap, hBitmap1,hBitmap2,hBitmap3。 //黑方獲勝次數(shù) //long __stdcall WndProc void *,unsigned int,unsigned int,long //回調(diào)函數(shù)一般由系統(tǒng)調(diào)用,如 Wndproc 函數(shù) LRESULT CALLBACK WndProc HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam PAINTSTRUCT ps。 //當前實例句柄 static int xArray[16*16][2]。//顯示窗口 SW_SHOW UpdateWindow hWnd 。//加載菜單 //定義窗口 hWnd CreateWindow szAppName, // 指向已注冊的類名 TEXT 歡樂五子棋 , // 窗口標題 WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, //窗口樣式 400, // 初始化 x 坐標 150, // 初始化 y 坐標 709, // 初始化窗口寬度 593, // 初始化窗口高度 NULL, // 父窗口句柄 hMenu, // 窗口菜單句柄 hInstance, // 程序?qū)嵗浔? NULL // 創(chuàng)建參數(shù) 。 return RegisterClass amp。 LoadCursor NULL,IDC_ARROW 。 0。//等價于 return 0。msg 。 if !InitInstance hInstance, iCmdShow return FALSE 。 //強制轉(zhuǎn)歡 TEXT HACCEL hAccel。 LRESULT CALLBACK WndProc HWND,UINT,WPARAM,LPARAM 。 chessboard[i4][j+4].color 2 return 2。 chessboard[i2][j+2].color 2 amp。 else if chessboard[i][j].color 2 amp。amp。amp。 i 19。 chessboard[i+3][j+3].color 2 amp。 chessboard[i+1][j+1].color 2 amp。amp。amp。 j 15。 chessboard[i+4][j].color 2 return 2。 chessboard[i+2][j].color 2 amp。 else if chessboard[i][j].color 2 amp。amp。amp。 i 15。 chessboard[i][j+3].color 2 amp。 chessboard[i][j+1].color 2 amp。amp。amp。 j 15。 int j。 chessboard[i][j].color 0。 j 17。 //利用 LIST 存取棋子信息,實現(xiàn)悔棋功能 。hInstance,HWND amp。 。 //黑白標志 void settag int n tag n。 感謝 Rockstar Games 公司,你們的 Grand Theft Auto: Vice City 伴我度過 了下班后的無聊時光。 感謝我的 C++老師楊和平老師,在您的教授下讓我掌握了 C++語言以及常用的數(shù)據(jù)結(jié)構(gòu),將我領(lǐng)進代碼世界。但是對于系統(tǒng)的架構(gòu),卻完全是自己的事情,幾千上萬行的代碼需要通過合適的方法組織起來,使程序員編寫代碼更加有條理,更加符合軟件工程的標準,這才是最重要的。從如何用鼠標將圓圈圖案畫到屏幕上,到如何判斷勝負,從如何傳遞一個指針,到如何向窗口發(fā)送一個消息,解決了各種各樣的問題,使我對Windows 程序設(shè)計有了更加深刻理解和認識。 結(jié) 論 通過畢業(yè)設(shè)計對大學(xué)四年所學(xué)知識體系,進行了一次很好的歸納總結(jié)。一般來說,系統(tǒng)測試是功能性測試,不是結(jié)構(gòu)性測試。因此,大型軟件系統(tǒng)的測試的基本層次主要有: ( 1)單元測試 單元測試的用例從單元詳細設(shè)計中導(dǎo)出。 程序游戲菜單設(shè)計如下圖 所示: 圖 菜單效果圖 ( 3)記分牌與狀態(tài)欄設(shè)計 為了增加游戲的可玩性與實用性在主界面中加入了狀態(tài)欄與積分牌區(qū)域,狀態(tài)欄主要是顯示當前游戲狀態(tài)包括目前游戲所進行的局數(shù)和提示由哪一方進行下棋操作,以及顯示每一局游戲的結(jié)果;記分牌則記錄了雙方玩家目前的勝負情況。相關(guān)代碼如下: BitBlt bufferDC, 0, 75, cxSource20, cySource, hdcMem, 0, 0, SRCCOPY 。 消息機制和主界面實現(xiàn) 消息機制說明 消息機制是 windows 程序中核心內(nèi)容, windows 各種窗口程序正是通過各種消息事件來傳遞信息,在五子棋中主要包含了鼠標單擊 事件,按鈕點擊事件,菜單選擇事件以及各種窗體消息 WindowsMessage 消息: WM_COMMAND、 WM_CREATE、WM_LBUTTONDOWN、 WM_POINT 系統(tǒng)消息,通過這些消息 windows 系統(tǒng)給窗口發(fā)送這些消息,以便執(zhí)行相應(yīng)的操作。hInstance,HWND amp。 chessboard[i][j]. 22* i+1 +91。 i 17。 //定義一個菜單句柄 static int over 0。 iter GetColos 2 //繪制白色棋子 BitBlt bufferDC, iter , iter , 20, 19, hdcMem,cxSource20, 0, SRCCOPY 。amp。j 17。 //存完之后 px 后移 else px 0。 //利用 LIST 存取 棋子信息,實現(xiàn)悔棋功能 ?... 中實現(xiàn)邏輯功能: 在 WM_LBUTTONDOWN 單擊鼠標左鍵下棋的消息中: InitChessB_back [i][j] 。具體流程圖,如圖 所示: 圖 悔棋功能流 程圖 第二個問題,如何實現(xiàn)悔棋之后的初始化。在程序中我們可以通過每下一步棋,對棋盤進行一次遍歷,以便檢測在這四個方向上有沒有顏色標識相同的五個棋子連在一起,如果有,則返回相應(yīng)結(jié)果。如圖 所示: 圖 棋盤類示意圖 程序初始化設(shè)計 程序初始化就是將棋盤上所有十字交叉點的落子標志 Tag,顏色標識 color,位置信息 Seat 進行初始化。 這個二維數(shù)組當然是上面已經(jīng)說明的棋子類型,以后在棋盤上下過的棋子都會標記在這個二維數(shù)組中。 詳細設(shè)計 棋盤類設(shè)計 在五子棋游戲設(shè)計與開發(fā)的過程中,首先需要解決一個問題,那就是如何將棋子下到棋盤相應(yīng)的十字交叉點上? 想要解決這個問題,我們首先需要建立一個自定義數(shù)據(jù)結(jié)構(gòu),棋子的結(jié)構(gòu)體( struct Chess),用來定義黑白棋子的相關(guān)屬性及信息。 系統(tǒng)幫助模塊,主要是對系統(tǒng)進行的進一步的功能介紹、版本信息、程序說明等文字介紹性的信息,幫助游戲玩家進一步對五子棋游戲程序的了解。通過這個階段的工作將劃分出組成系統(tǒng)的物理元素――程序、文件、數(shù)據(jù)庫、 人工過程和文檔等等,但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后仔細設(shè)計。 圖 Ellipse 函數(shù)示意圖
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1