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

正文內(nèi)容

五子棋游戲程序設(shè)計(jì)與開發(fā)(完整版)

2025-01-23 01:33上一頁面

下一頁面
  

【正文】 return 2。 else if chessboard[i][j].color 2 amp。amp。 chessboard[i+3][j+3].color 2 amp。amp。 j 15。 chessboard[i+2][j].color 2 amp。amp。 i 15。 chessboard[i][j+1].color 2 amp。amp。 int j。 j 17。hInstance,HWND amp。 //黑白標(biāo)志 void settag int n tag n。 感謝我的 C++老師楊和平老師,在您的教授下讓我掌握了 C++語言以及常用的數(shù)據(jù)結(jié)構(gòu),將我領(lǐng)進(jìn)代碼世界。從如何用鼠標(biāo)將圓圈圖案畫到屏幕上,到如何判斷勝負(fù),從如何傳遞一個(gè)指針,到如何向窗口發(fā)送一個(gè)消息,解決了各種各樣的問題,使我對Windows 程序設(shè)計(jì)有了更加深刻理解和認(rèn)識(shí)。一般來說,系統(tǒng)測試是功能性測試,不是結(jié)構(gòu)性測試。 程序游戲菜單設(shè)計(jì)如下圖 所示: 圖 菜單效果圖 ( 3)記分牌與狀態(tài)欄設(shè)計(jì) 為了增加游戲的可玩性與實(shí)用性在主界面中加入了狀態(tài)欄與積分牌區(qū)域,狀態(tài)欄主要是顯示當(dāng)前游戲狀態(tài)包括目前游戲所進(jìn)行的局?jǐn)?shù)和提示由哪一方進(jìn)行下棋操作,以及顯示每一局游戲的結(jié)果;記分牌則記錄了雙方玩家目前的勝負(fù)情況。 消息機(jī)制和主界面實(shí)現(xiàn) 消息機(jī)制說明 消息機(jī)制是 windows 程序中核心內(nèi)容, windows 各種窗口程序正是通過各種消息事件來傳遞信息,在五子棋中主要包含了鼠標(biāo)單擊 事件,按鈕點(diǎn)擊事件,菜單選擇事件以及各種窗體消息 WindowsMessage 消息: WM_COMMAND、 WM_CREATE、WM_LBUTTONDOWN、 WM_POINT 系統(tǒng)消息,通過這些消息 windows 系統(tǒng)給窗口發(fā)送這些消息,以便執(zhí)行相應(yīng)的操作。 chessboard[i][j]. 22* i+1 +91。 //定義一個(gè)菜單句柄 static int over 0。amp。 //存完之后 px 后移 else px 0。具體流程圖,如圖 所示: 圖 悔棋功能流 程圖 第二個(gè)問題,如何實(shí)現(xiàn)悔棋之后的初始化。如圖 所示: 圖 棋盤類示意圖 程序初始化設(shè)計(jì) 程序初始化就是將棋盤上所有十字交叉點(diǎn)的落子標(biāo)志 Tag,顏色標(biāo)識(shí) color,位置信息 Seat 進(jìn)行初始化。 詳細(xì)設(shè)計(jì) 棋盤類設(shè)計(jì) 在五子棋游戲設(shè)計(jì)與開發(fā)的過程中,首先需要解決一個(gè)問題,那就是如何將棋子下到棋盤相應(yīng)的十字交叉點(diǎn)上? 想要解決這個(gè)問題,我們首先需要建立一個(gè)自定義數(shù)據(jù)結(jié)構(gòu),棋子的結(jié)構(gòu)體( struct Chess),用來定義黑白棋子的相關(guān)屬性及信息。通過這個(gè)階段的工作將劃分出組成系統(tǒng)的物理元素――程序、文件、數(shù)據(jù)庫、 人工過程和文檔等等,但是每個(gè)物理元素仍然處于黑盒子級(jí),這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計(jì)。 InvalidateRect 函數(shù)用來傳遞到WM_POINT 消息模塊。 ist 鏈表用于存儲(chǔ)棋子顯示信息,二維數(shù)組用于存儲(chǔ)棋盤十字交叉點(diǎn)信息。并且計(jì)算機(jī)的存儲(chǔ)與快速功能大大提高了的效率方便快速的操作,可減少,又減少因,并且操作非常簡單,可減少許多不很必要的,這無論從物質(zhì)上還是目標(biāo)開發(fā)需求比較低,加上具有成熟的軟硬件環(huán)境,所以在軟硬件的支出上比較低。 亦有傳說,五子棋最初流行于少數(shù)民族地區(qū),以后漸漸演變成圍棋并在炎黃子孫后代中遍及開來。五子棋,日文亦有“連五子、五子連、串珠、五目、五目碰、五格、五石、五法、五聯(lián)、京棋”等多種稱謂,英文則稱之為“ FIR Five In A Row 的縮寫 、Gomoku 日語“五目”的羅馬拼音 、 Gobang、 connect morphion”。畢業(yè)設(shè)計(jì)論文五子棋游戲程序設(shè)計(jì)與開發(fā) 題目 五子棋游戲程序設(shè)計(jì)與開發(fā) 作者姓名 侯 玨 指導(dǎo)教師 李忍?hào)| 二級(jí)學(xué)院 電氣信息工程學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào) 4B062122 2021 年 4 月 15 日 五子棋游戲程序設(shè)計(jì)與開發(fā) 摘 要 本文論述的是采用 C++語言開發(fā)的一個(gè)單機(jī)版的五子棋小游戲,包括棋盤界面的設(shè)計(jì)、游戲菜單的設(shè)計(jì)、游戲的設(shè)計(jì)、悔棋和初始化等設(shè)計(jì)。捷克語piskvorky,韓語 omok?? 許多國家的人對五子棋都有不同的愛稱,例如,韓國人把五子棋稱為“情侶棋”,暗示情人之間下五子棋有利于增加情感的交流;歐洲人稱其為“紳士棋”,代表下五子棋的君子風(fēng)度勝似紳士;日本人則稱其為“中老年棋”,說明五子棋適合中老年人的生理特點(diǎn)和思維方式;美國人喜歡將五子棋稱為“商業(yè)棋”,也就是說,商人談生意時(shí)可邊下棋邊談生意,棋下完了生意也談成了。 在古代,五子棋棋具雖然與圍棋相類同,但是下法卻是完全不同的。而且,目標(biāo)并不是十分的復(fù)雜。 設(shè)計(jì)思想 在窗體中通過鼠標(biāo)左鍵畫圓圈的一個(gè)簡單示例,啟發(fā)制作一個(gè)五子棋程序。 ( 2) WM_POINT:圖形繪制消息 BOOL Ellipse HDC hdc,X30,Y30,X+30,Y+30 WM_POINT 消息是用于繪制窗口顯示圖形。設(shè)計(jì)階段的另一項(xiàng)重要任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互之間的關(guān)系, .1 所示 圖 程序功能模塊圖 由上圖可知,五子棋游戲程序主要有三個(gè)功能:開始游戲,游戲設(shè)置,游戲幫助。棋子的屬性包括:當(dāng)前棋子坐標(biāo)的坐標(biāo)位置,用來判斷棋子是否落下的落點(diǎn)標(biāo)識(shí),黑白顏色標(biāo)志以及用來設(shè)置落點(diǎn)標(biāo)志,黑白顏色標(biāo)志,取得落點(diǎn)標(biāo)志,黑白顏色標(biāo)識(shí)四個(gè)方法。也就是將棋盤類中 二維數(shù)組 chessboard[i][j]中的各個(gè)屬性值進(jìn)行初始設(shè)置。我的設(shè)計(jì)思想是,悔哪步棋子,就初始化哪一步棋子的信息,那么我們必須將每一步棋子的信息記錄下來,在悔棋時(shí),提取出來然后進(jìn)行悔棋,我在窗口創(chuàng)建前,定義了一個(gè) xArray[16*16][2]的二維數(shù)組,用來在棋子進(jìn)入 List 鏈表中存儲(chǔ)棋子二維坐標(biāo)位置。 //棋子最后為 16*16 個(gè),超過后將 px 置為 0 在 WM_PAINT 繪制窗口消息中,將 List 鏈表中的棋子信息通過 iter 迭代子一一找出并繪制在棋盤上,相關(guān)代碼如下: for i 0。 iter GetColos 1 //繪制黑色棋子 BitBlt bufferDC,iter , iter ,20,19,hdcMem,cxSource20,19, SRCCOPY 。 //模式切換 0 為空閑, 1 為人機(jī), 2 為雙人 static HINSTANCE hInstance。 chessboard[i][j].tag 0。比如,鼠標(biāo)左鍵單擊消息 WM_LBUTTONDOWN 系統(tǒng)在探測到這一事件后,執(zhí)行其中的定位棋子屏幕坐標(biāo)和判斷黑白棋子的操作后屏幕刷新 InvalidateRect 執(zhí)行窗口繪制 WM_POINT 消息,將棋子畫到窗口上,可以說消息機(jī)制驅(qū)動(dòng)了操作者與系統(tǒng)的互動(dòng),同時(shí) 又提供了系統(tǒng)本身機(jī)制的運(yùn)行。這一部分的增加提高了游戲可玩性與美觀程度。 測試結(jié)果 按照以上步驟,程序測試結(jié)果如下: ( 1)雙人游戲 測試內(nèi)容:判斷是否能開始雙人游戲 操作:玩家單擊菜單“開始游戲―雙人游戲” 結(jié)果:開始雙人游戲 結(jié)論:測試成功 ( 2)重新開始 測試內(nèi)容:判斷是否能重新開始新游戲 操作:玩家單擊菜單“開始游戲―重新開始” 結(jié)果:重新開始游戲 結(jié)論: 測試成功 ( 3)悔棋功能 測試內(nèi)容:判斷是否在游戲中悔棋 操作:玩家單擊菜單“游戲設(shè)置―我要悔棋” 結(jié)果:悔棋 結(jié)論:測試成功 ( 4)重新計(jì)分 測試內(nèi)容:判斷在開始數(shù)輪游戲后,是否能刷新結(jié)果,重新計(jì)分 操作:玩家單擊菜單“開始游戲―重新計(jì)分” 結(jié)果:游戲分?jǐn)?shù)、局?jǐn)?shù)清零 結(jié)論:測試成功 運(yùn)行分析 經(jīng)測試本程序能夠在 window95/2021/XP/7 操作系統(tǒng)中穩(wěn)定運(yùn)行,但在游戲可玩性方面還有不足和改進(jìn),比如本程序僅支持雙人游戲模式,為了增加可玩性,后期可增加人機(jī)對弈模式,即 AI 模式。 我體會(huì)最為深刻的一點(diǎn)是系統(tǒng)架構(gòu)和設(shè)計(jì)模式的重要性。 感謝北京神州航天軟件技術(shù)有限公司,為我無償提供了開發(fā)環(huán)境。 void setcolos int n colos n。hwnd 。 ++j chessboard[i][j]. 22* i+1 +15。 ////水平方向判斷勝利 //// for i 0。 chessboard[i][j+2].color 1 amp。amp。 ++i for j 0。 chessboard[i+3][j].color 1 amp。amp。 ++j if chessboard[i][j].color 1 amp。 chessboard[i+4][j+4].color 1 return 1。amp。 chessboard[i1][j+1].color 1 amp。amp。 return 0。 //定義快捷鍵表句柄 ChessBoard InitChessBoard。//快捷鍵轉(zhuǎn)換 DispatchMessage amp。 0。wndclass 。//UpdateWindows 向窗口發(fā)送一條 WM_PAINT 消息,通知窗口更新其客戶區(qū) return TRUE。 HDC hdc。//指示標(biāo)志位 static int M,N。 switch message case WM_COMMAND: switch LOWORD wParam case ID_MSINGER: //單人游戲模式 if over 0 //px 0。 case ID_MDOUBLE: //雙人游戲模式 if over 0 px 0。 //數(shù)組歸位 InitChessBr 。 //數(shù)組歸位 InitChessBr 。 site 0。 PlaySound TEXT Sound\\ ,NULL,SND_FILENAME|SND_ASYNC 。 break。 //窗口創(chuàng)建時(shí)初始化棋盤 hInstance LPCREATESTRUCT lParam hInstance。 case WM_LBUTTONDOWN: //單擊鼠標(biāo)左鍵下棋 M LOWORD lParam 。 N 100+22*17 //定位棋盤十字坐標(biāo) i int floor double M32 / 22 。 else [i][j].setcolor 2 。amp。//將棋子信息存入 List 鏈表中 if px 255 //將二維數(shù)組坐標(biāo)值 i 和 j 存入 xArray 數(shù)組中,以便悔棋后進(jìn)行上一步棋子信息初始化 xArray[px][0] i。 case WM_PAINT: //繪制窗口消息 hdc BeginPaint hwnd, amp。 SelectObject hdcMem, hBitmap 。 iter++ if iter GetTag 1 amp。 //黑方勝利次數(shù)自加 1 over 0。 memset amp。 hFont CreateFontIndirect amp。 //自定義字體 和 hFont1 HFONT hFont1。 lstrcpy ,隸書 。 count++。amp。 site 0。 hInstance,hwnd 1 TextOut hdc,95,510,黑方選手勝 利 下輪白方先手 ,26 。 itoa blackWin, buffer, 10 。 TextOut hdc,30,510,buffer2,2 。ps 。 case WM_DESTROY: PostQuitMessage 0 。 TextOut hdc,651,302,0,1 。 if count 0
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1