版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE 江 蘇師師范大學(xué)科文學(xué)院本科生課課程設(shè)計(jì)課 程 名 稱稱:Viisuaal CC+ 題 目:人員管管理系統(tǒng)統(tǒng)專 業(yè) 班 級級: 111電信11 學(xué) 生 姓 名名:劉海海騰學(xué) 生 學(xué) 號號:111832261221 日 期: 220133.122.28指 導(dǎo) 教 師師:姜芳芳艽科文學(xué)院院教務(wù)部部印制一、課程程設(shè)計(jì)目目的、任任務(wù)和內(nèi)內(nèi)容要求求:計(jì)算機(jī)機(jī)語言程程序設(shè)計(jì)計(jì)是一一門以編編程實(shí)踐踐為主的的專業(yè)課課,目的的在于培培養(yǎng)學(xué)生生利用計(jì)計(jì)算機(jī)語語言進(jìn)行行軟件開開發(fā)所必必需的基基本思想想和基本本技能,進(jìn)進(jìn)一步提提高綜合合應(yīng)用計(jì)計(jì)算機(jī)語語言的各各種編程程知識和和技巧進(jìn)進(jìn)行程序序設(shè)計(jì)的的能力,通
2、通過本次次課程設(shè)設(shè)計(jì),學(xué)學(xué)生應(yīng)能能達(dá)到具具備設(shè)計(jì)計(jì)功能較較為復(fù)雜雜的應(yīng)用用程序的的能力,同同時(shí)培養(yǎng)養(yǎng)學(xué)生自自主學(xué)習(xí)習(xí)和獨(dú)立立創(chuàng)新的的精神。任務(wù)如下下: 11進(jìn)行行需求分分析和概概要設(shè)計(jì)計(jì),給出出流程圖圖。 22寫出出詳細(xì)設(shè)設(shè)計(jì),熟熟悉其中中采用的的關(guān)鍵技技術(shù)。3給出出具體的的編碼實(shí)實(shí)現(xiàn)并調(diào)調(diào)試。4寫課課程設(shè)計(jì)計(jì)報(bào)告提提交源程程序。內(nèi)容要求求:設(shè)計(jì)并完完成軟件件系統(tǒng)。要求:1應(yīng)具具有簡潔潔友好的的用戶界界面。2要求求軟件系系統(tǒng)的功功能完整整。3要求求程序具備備正確性性,可讀讀性和運(yùn)運(yùn)行的高高效性。二、進(jìn)度度安排:第133天: 查找資資料,進(jìn)進(jìn)行需求求分析和和概要設(shè)設(shè)計(jì);第466天: 各模模塊的詳
3、詳細(xì)設(shè)計(jì)計(jì);第7112天: 軟件件實(shí)現(xiàn)與與調(diào)試;第1314天天:寫課課程設(shè)計(jì)計(jì)報(bào)告并并提交源源程序。三、主要要參考文文獻(xiàn):1 四維科科技,丁丁展,湯湯倩.VVisuual C+ 游戲戲開發(fā)技技術(shù)與實(shí)實(shí)例MM.北北京:人人民郵電電出版社社,200052求求是科技技,張宏宏林.VVisuual C+ 6.0程序序設(shè)計(jì)與與開發(fā)技技術(shù)大全全M. 北北京:人人民郵電電出版社社,200053汪汪翔,袁袁輝.VVisuual C+ 實(shí)踐踐與提高高(網(wǎng)絡(luò)絡(luò)編程篇篇)MM. 北京:中國鐵鐵道出版版社,2200114黃黃維通.Vissuall C+ 面面向?qū)ο笙笈c可視視化程序序設(shè)計(jì)M. 北京京:清華華大學(xué)出出版社
4、,200035謝謝希任.計(jì)算機(jī)機(jī)網(wǎng)絡(luò)(第第4版)M. 北京京:電子子工業(yè)出出版社,200056(美)WW. RRichhardd Stteveens. TCCP/IIP詳解解卷1:協(xié)議M. 北京京:機(jī)械械工業(yè)出出版社,200057北北京現(xiàn)代代富博科科技有限限公司,陳兵旗旗,孫明明. 北北京:VVisuual C+實(shí)用圖圖象處理理專業(yè)教教程MM .清華大大學(xué)出版版社,2200448張張靜.WWinddowss多媒體體編程基基礎(chǔ)MM.北北京:清清化大學(xué)學(xué)出版社社,200059劉劉振安,徐峰.Winndowws實(shí)用用編程指指南MM.北北京:人人民郵電電出版社社,1999510劉長明明,楊工工明.VV
5、isuual C+ 實(shí)踐踐與提高高(多媒媒體篇)M. 北京京:中國國鐵道出出版社,20001指導(dǎo)教師師簽字:年月日江蘇師范大學(xué)科文學(xué)院課程設(shè)計(jì)報(bào)告- PAGE XXXVI -江蘇師范大學(xué)科文學(xué)院課程設(shè)計(jì)報(bào)告- PAGE -目 錄摘要IIIAbsttracct II1 緒論論 . 111.1 課題背背景 11.2 課程設(shè)設(shè)計(jì)的目目的. 12 設(shè)計(jì)計(jì)方案簡簡述 . 222.1 可行性性分析.22.2 需求分分析.23 詳細(xì)細(xì)設(shè)計(jì).333.1窗窗體設(shè)計(jì)計(jì).333.2游游戲項(xiàng)目目開發(fā).553.2.1棋牌牌設(shè)置.53.2.2放置置棋子功功能的開開發(fā).63.3.3游戲戲獲勝決決斷的開開發(fā).1223.2.4
6、游戲戲的調(diào)試試與運(yùn)行行.2204 設(shè)計(jì)計(jì)結(jié)果及及分析.2224.1 程序的的結(jié)果.2224.2結(jié)結(jié)果分析析.2235總 結(jié)結(jié) .244參考文獻(xiàn)獻(xiàn) .25摘 要要網(wǎng)絡(luò)游戲戲的出現(xiàn)現(xiàn)代表了了一種全全新娛樂樂方式的的誕生。目前網(wǎng)網(wǎng)絡(luò)游戲戲正以其其獨(dú)特的的魅力吸吸引著眾眾多的玩玩家。隨隨著游戲戲產(chǎn)業(yè)的的蓬勃發(fā)發(fā)展,將將需要越越來越多多的人加加入到游游戲開發(fā)發(fā)中來。本畢業(yè)設(shè)設(shè)計(jì)所完完成的五五子棋游游戲(網(wǎng)網(wǎng)絡(luò)版)是是在Wiindoows XP下下使用MMicrrosooft Vissuall C+6.0開發(fā)發(fā)的C/S系統(tǒng)統(tǒng),可以以實(shí)現(xiàn)網(wǎng)網(wǎng)絡(luò)間的的雙人對對戰(zhàn),并并且可以以提供多多媒體播播放功能能。系統(tǒng)統(tǒng)的
7、多媒媒體播放放功能可可以播放放MP33、WMMA等主主流格式式的音樂樂。本論文從從基本網(wǎng)網(wǎng)絡(luò)套節(jié)節(jié)字開始始入手,介介紹了一一些本系系統(tǒng)相關(guān)關(guān)的理論論知識,隨隨后詳細(xì)細(xì)介紹了了五子棋棋游戲(網(wǎng)網(wǎng)絡(luò)版)的的開發(fā)過過程。包包括服務(wù)務(wù)器端、客戶端端的soockeet編程程,五子子棋服務(wù)務(wù)器和客客戶端通通信的實(shí)實(shí)現(xiàn),五五子棋判判斷算法法的實(shí)現(xiàn)現(xiàn),主界界面視圖圖,多媒媒體播放放以及定定時(shí)器等等附加功功能的實(shí)實(shí)現(xiàn)。最最后對系系統(tǒng)進(jìn)行行測試并并對所做做工作進(jìn)進(jìn)行總結(jié)結(jié)。關(guān)鍵詞 程序序設(shè)計(jì);Fivvechhesss;MFFC;Absttracct AbsstraactOn-llinee gaamess brri
8、ngg too a neww foorm of entterttainnmennt. Unttil noww, oon-llinee gaamess iss chharmmingg moore andd moore plaayerrs. As thee deevellopmmentt off gaame inddusttry, thheree wiill be morre aand morre ddeveelopperss jooin in thee gaame devveloopmeent teaam.Theon -liine Blaack&Whiite gamme wwas devvelo
9、opedd byy Miicroosofft VVisuual C+6.00 onn Wiindoows XP plaatfoorm. Inn thhis gamme, twoo peeoplle ccan plaay tthe gamme oon llinee, aand thee gaame alsso pprovvidees mmulttimeediaa pllayeer ffuncctioon.The theesiss sttartt wiith inttrodducttionn off neetwoork socckett prrogrrammmingg, tthe devveloo
10、pmeent proocesssinng oof ttheon -liine Blaack&Whiite gamme aare inttrodduceed iin ddetaail as folllowwed. Thhe tthessis havve aa fuull touuch on serrverr annd cclieent socckett prrogrrammmingg, tthe commmunnicaatioon bbetwweenn seerveer aand cliientt waas iimpllemeenteed, thee allgorrithhm oof tthe
11、fivve-iin-aa-roow ggamee, tthe mulltimmediia pplayybacck ffuncctioons.Keywwordds : prrogrram; coompuuterr; MMFC; Fiivecchesss1課題背背景中國民族族原創(chuàng)網(wǎng)網(wǎng)絡(luò)游戲戲?yàn)橹袊鴩W(wǎng)絡(luò)游游戲產(chǎn)業(yè)業(yè)所做出出了巨大大貢獻(xiàn),民民族原創(chuàng)創(chuàng)網(wǎng)絡(luò)游游戲已經(jīng)經(jīng)成為產(chǎn)產(chǎn)業(yè)發(fā)展展的主導(dǎo)導(dǎo)力量。同樣在在中國自自主研發(fā)發(fā)的民族族原創(chuàng)網(wǎng)網(wǎng)絡(luò)游戲戲已經(jīng)真真正成為為中國游游戲市場場的主導(dǎo)導(dǎo)力量。網(wǎng)絡(luò)游戲戲是通過過信息網(wǎng)網(wǎng)絡(luò)傳播播和實(shí)現(xiàn)現(xiàn)的互動動娛樂形形式,是是一種網(wǎng)網(wǎng)絡(luò)與文文化相結(jié)結(jié)合的產(chǎn)產(chǎn)業(yè)。近近年來,網(wǎng)
12、網(wǎng)絡(luò)文化化市場發(fā)發(fā)展很快快,隨著著互聯(lián)網(wǎng)網(wǎng)的迅速速普及、寬帶的的接入社社區(qū)和家家庭,我我國網(wǎng)絡(luò)絡(luò)游戲市市場發(fā)展展迅速并并進(jìn)入了了一個(gè)高高速增長長期,并并已經(jīng)創(chuàng)創(chuàng)造了較較大的產(chǎn)產(chǎn)值,帶帶動了相相關(guān)產(chǎn)業(yè)業(yè)的發(fā)展展,對促促進(jìn)我國國網(wǎng)絡(luò)經(jīng)經(jīng)濟(jì)和娛娛樂業(yè)的的發(fā)展、豐富互互聯(lián)網(wǎng)時(shí)時(shí)代人民民群眾的的文化娛娛樂生活活起到了了積極作作用。1.1設(shè)設(shè)計(jì)目的的在程序設(shè)設(shè)計(jì)中,通過設(shè)計(jì)、編制、調(diào)試一個(gè)五子棋的程序,加深對語法及語義分析原理的理解,并實(shí)現(xiàn)對命令語句的靈活應(yīng)用。在程序設(shè)計(jì)中,可以用兩種方法解決問題:一是傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)方法,二是更先進(jìn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法。由于多個(gè)個(gè)函數(shù)均均需要訪訪問某些些數(shù)據(jù),這這
13、些數(shù)據(jù)據(jù)常被設(shè)設(shè)計(jì)為全全局變量量。而在面向向?qū)ο蟪坛绦蛟O(shè)計(jì)計(jì)中關(guān)鍵鍵是如何何將問題題域中的的實(shí)體(即即日常所所見的概概念)抽抽取出來來,作為為C+程序中中的類,而而屬性與與行為作作為類的的兩類要要素通常常是必不不可少的的,甚至至還應(yīng)考考慮類必必須滿足足的約束束。2 設(shè)計(jì)計(jì)方案簡簡述如下是描描述整五五子棋游游戲的流流程, 開發(fā)一一個(gè)五子子棋游戲戲需要從從兩方面面入手。一是游游戲規(guī)則則,二是是技術(shù)。其實(shí),任任何軟件件開發(fā)都都是這兩兩大類。根據(jù)項(xiàng)項(xiàng)目的特特點(diǎn),將將不相關(guān)關(guān)的功能能分塊份份階段進(jìn)進(jìn)行。大大致流程程如下:1.畫畫棋盤;2畫棋棋子;33增加下下棋制約約條件;4.每每下一步步,判斷斷輸贏;5
14、.調(diào)調(diào)試運(yùn)行行。2.1可可行性分分析游戲設(shè)計(jì)計(jì)已經(jīng)成成為現(xiàn)在在社會的的一種熱熱門行業(yè)業(yè)。五子子棋是一一種受大大眾廣泛泛喜愛的的游戲,其其規(guī)則簡簡單,變變化多端端,非常常富有趣趣味性和和消遣性性。這里里設(shè)計(jì)和和實(shí)現(xiàn)了了一個(gè)簡簡單的五五子棋單單機(jī)游戲戲。主要要應(yīng)用了了Vissuall C+編程程來完成成這個(gè)游游戲的設(shè)設(shè)計(jì)的。本文主主要介紹紹了本游游戲開發(fā)發(fā)環(huán)境MMicrrosooft Vissuall C+ 66.0,使使用當(dāng)前前優(yōu)秀的的開發(fā)工工具VCC+編編程。包包含了五五子棋程程序的棋棋盤初始始化、游游戲規(guī)則則、勝負(fù)負(fù)判斷。思路簡簡單明了了,程序序也較為為簡單。可以靈靈活運(yùn)用用一學(xué)過過的c+
15、知知識來編編寫程序序。2.2 需求分分析近年來,隨隨著網(wǎng)絡(luò)絡(luò)的發(fā)展展,游戲戲成為許許多人關(guān)關(guān)注的焦焦點(diǎn)。與與傳統(tǒng)的的影音產(chǎn)產(chǎn)業(yè)一樣樣,游戲戲產(chǎn)業(yè)也也是娛樂樂行業(yè)的的一個(gè)重重要組成成部分,基基于數(shù)字字化的網(wǎng)網(wǎng)絡(luò)游戲戲更讓人人們找到到了前所所未有的的感受,并并已經(jīng)成成為全球球互聯(lián)產(chǎn)產(chǎn)業(yè)的熱熱點(diǎn)。五五子棋,亦亦稱“連連五子”、“串珠珠”、“五五目”、“五格格”等等等,日文文稱之為為“連珠珠”,英英文則稱稱之為“GGobaang”或或“Reenjuu”或“FFIR(Fivve IIn aa Roow)”,是是起源于于中國古古代的傳傳統(tǒng)黑白白棋種之之一,是是一種體體現(xiàn)民族族特色的的休閑游游戲,同同時(shí)能較
16、較好的鍛鍛煉人的的思維。具有廣廣闊的開開發(fā)前景景。3 詳細(xì)細(xì)設(shè)計(jì)3.1 窗體體設(shè)計(jì)利用MFFC AAppWWinzzardd生成五五子棋游游戲應(yīng)用用程序框框架具體體步驟如如下:(1)執(zhí)執(zhí)行VCC程序,選選擇Fiile|Neww命令,彈彈出Neew對話話框.單單擊Prrojeectss標(biāo)簽,轉(zhuǎn)轉(zhuǎn)到Prrojeectss選項(xiàng)卡卡,選擇擇MFCC ApppWiizarrd(eexe)選項(xiàng),然然后在PProjjectt naame文文本框中中輸入FFiveecheess_44 。Laacattionn文本框框是指項(xiàng)項(xiàng)目的本本地路徑徑。(2)單單擊按鈕鈕,彈出出MFCC ApppWiinzaard_St
17、eep1對對話框。選中單單選按鈕鈕,如圖圖所示。(3)單單擊完成成按鈕,則則建立一一個(gè)單文文檔應(yīng)用用框架。3.2游游戲項(xiàng)目目開發(fā) (四號號字 黑黑體) 3.22.1棋棋盤設(shè)計(jì)計(jì)1.在已已創(chuàng)建的的工程FFiveecheess_44中中添加畫畫棋盤的的函數(shù)。首先在在“Fivvechhesss_444.h” 頭文文件中定定義一個(gè)個(gè)用于顯顯示棋盤盤的自定定義公有有函數(shù):voiid CChecckerrboaard(CDCC*pDDC);然后在“Fivvechhesss_444Vieew.ccpp”源文件件中實(shí)現(xiàn)現(xiàn)該函數(shù)數(shù)。代碼碼如下:voidd CFFiveecheess_44VVieww:CChec
18、ckerrboaard(CDCC*pDDC) forr(innt ii=0;iMMoveeTo(i*550,00); /畫筆移移動到(i*550,00)點(diǎn) pDCC-LLineeTo(i*550,110000); / 畫畫筆從(i*550,00)點(diǎn)到到(i*50,10000)點(diǎn)點(diǎn) ffor(i=00;iMMoveeTo(0,ii*500); pDCC-LLineeTo(10000,ii*500); 2.在應(yīng)應(yīng)用程序序框架的的OnDDraww()函函數(shù)中調(diào)調(diào)用該畫畫棋盤函函數(shù),將將pDCC對象作作為實(shí)參參傳遞給給Cheeckeerbooardd()函函數(shù),代代碼如下下:voidd CFFivee
19、cheess_44VVieww:OOnDrraw(CDCC* ppDC)CFivvechhesss_444Docc* ppDocc = GettDoccumeent();ASSEERT_VALLID(pDooc);/ TTODOO: aadd draaw ccodee foor nnatiive datta hheree Chheckkerbboarrd(ppDC); /調(diào)用用自定義義的畫鍵鍵盤函數(shù)數(shù)3.編譯譯運(yùn)行得得到如下下效果:一個(gè)空空棋盤 3.22.2放放置棋子子功能的的開發(fā) 按照規(guī)規(guī)劃,棋棋子使用用鼠標(biāo)的的左鍵和和右鍵(分分別用這這兩鍵來來表示下下棋的雙雙方)來來進(jìn)行單單機(jī)下棋棋,即是
20、是當(dāng)用戶戶單擊左左鍵時(shí),下下黑色棋棋子,用用戶單擊擊右鍵時(shí)時(shí),下白白色棋子子。因此此,必須須為鼠標(biāo)標(biāo)添加鼠鼠標(biāo)左鍵鍵和鼠標(biāo)標(biāo)右鍵單單擊的鼠鼠標(biāo)消息息處理函函數(shù),步步驟如下下:1.右擊擊CFiivecchesssViiew類類,調(diào)用用添加消消息處理理函數(shù)的的對話框框,選擇擇Addd wiindoows MesssaggeHaandller2.添加加消息處處理函數(shù)數(shù)WM_LBUUTTOONDOOWN和和WM_RBUUTTOONDOOWN這這兩個(gè)消消息處理理函數(shù)。然后點(diǎn)點(diǎn)擊Eddit Exiisittingg退出對對話框。并添加加消息處處理函數(shù)數(shù)代碼。如下圖圖所示:添加鼠標(biāo)標(biāo)左鍵和和右鍵的的消息處處
21、理函數(shù)數(shù):(1).左鍵消消息voidd CFFiveecheess_44VVieww:OOnLBButttonDDownn(UIINT nFllagss, CCPoiint poiint) / TODDO: Addd yoour messsagge hhanddlerr coode herre aand/or calll ddefaaulttCBruush* brrushh = neww CBBrussh(RRGB(0,00,0) ;/定定義黑色色畫刷CDC* pDDC = thhis-GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbruss
22、h); /選選中該黑黑色畫刷刷for(intt i = 00 ; i 10000 ; ii+=550)forr(innt jj = 0 ; j Elllippse(temmpPoointt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20); CVieew:OnLLButttonnDowwn(nnFlaags, poointt);(2).右鍵消消息voidd CFFiveecheess_44VVieww:OOnRBButttonDDownn(UIINT nFllagss, CCPoiint poiint) / TTODOO:
23、AAdd youur mmesssagee haandller codde hheree annd/oor ccalll deefauult CBBrussh* bruush = nnew CBrrushh(RGGB(2255,2555,2555) ;/定義義白色畫畫刷CDC* pDDC = thhis-GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbrussh); /選選中該白白色畫刷刷for(intt i = 00 ; i 10000 ; ii+=550)for(intt j = 00 ; j Elllippse(temmpPoointt
24、.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20); CVieew:OnRRButttonnDowwn(nnFlaags, poointt);到此便將將畫棋盤盤和棋子子的代碼碼編好,編編譯運(yùn)行行如下:左擊鼠鼠標(biāo)左鍵鍵畫黑點(diǎn)點(diǎn),右擊擊鼠標(biāo)右右鍵畫白白點(diǎn)3.但程程序至此此尚有兩兩點(diǎn)未解解決:其一,下下棋子的的約束條條件,即即雙方按按順序一一人下一一次才可可第二次次落棋子子。其二二,同一一方格不不能重復(fù)復(fù)下棋子子;解決第一一個(gè)問題題,添加加以下代代碼:在CFiivecchesss_444Viiew中中添加一一個(gè)公有有的整形形變量i
25、nt RigghtOORLeet; /定義保保存左鍵鍵或右鍵鍵下棋的的標(biāo)記變變量構(gòu)造函數(shù)數(shù)將下棋棋的順序序初始化化為左鍵鍵先下CFivvechhesss_444Vieew:CFiivecchesss_444Viiew()/ TTODOO: aadd connstrructtionn coode herre RiighttORLLet=0; /初始化化默認(rèn)左左鍵先下下 修改鼠標(biāo)標(biāo)的左鍵鍵和右鍵鍵的單擊擊消息處處理函數(shù)數(shù),在畫畫棋子之之前判斷斷輪到哪哪方下棋棋,代碼碼如下:左鍵代碼碼:voidd CFFiveecheess_44VVieww:OOnLBButttonDDownn(UIINT nFl
26、lagss, CCPoiint poiint) / TTODOO: AAdd youur mmesssagee haandller codde hheree annd/oor ccalll deefauult iif(RRighhtORRLefft=0 ) CBruush* brrushh = neww CBBrussh(RRGB(0,00,0) ;/定定義黑色色畫刷CDC* pDDC = thhis-GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbrussh); /選選中該黑黑色畫刷刷for(intt i = 00 ; i 10000 ;
27、ii+=550)for(intt j = 00 ; j Elllippse(temmpPoointt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20); RigghtOORLeeft+;/鼠標(biāo)標(biāo)狀態(tài)變變化為00 CViiew:OnnLBuuttoonDoown(nFllagss, ppoinnt);右鍵代碼碼:voidd CFFiveecheess_44VVieww:OOnRBButttonDDownn(UIINT nFllagss, CCPoiint poiint) / TTODOO: AAdd youur mmesssa
28、gee haandller codde hheree annd/oor ccalll deefauult if(RigghtOORLeeft=1) CBrrushh* bbrussh = neew CCBruush(RGBB(2555,2255,2555) ;/定義白白色畫刷刷CDC* pDDC = thhis-GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbrussh); /選選中該白白色畫刷刷for(intt i = 00 ; i 10000 ; ii+=550)for(intt j = 00 ; j Elllippse(temmpPoo
29、intt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20); RigghtOORLeeft;/鼠標(biāo)標(biāo)狀態(tài)變變化為11,鼠標(biāo)標(biāo)右鍵按按下后,再再次改變變鼠標(biāo)狀狀態(tài) CVieew:OnRRButttonnDowwn(nnFlaags, poointt);其二,解解決第二二個(gè)問題題:在Fivvechhesss_444Vieew.hh頭文件件中加入入3行公公有代碼碼,并且且在該頭頭文件中中包含vvecttor的的頭文件件,代碼碼如下:# inncluudelasss CFFiveecheess_44VVieww : pubblicc
30、 CVVieww;std:veectoor chhesssVecc ;booll iss Loocattionn(CPPoinnt ccp); voiid LLocaatioon(CCPoiint cp);.;(2)根根據(jù)函數(shù)數(shù)名在正正確位置置添加或或修改以以下函數(shù)數(shù).添加實(shí)實(shí)現(xiàn)放置置棋子函函數(shù)額判判斷放置置許可函函數(shù):booll CFFiveecheess_44VVieww:iisLoocattionn(CPPoinnt ccp)booll issLocc = truue ;for(intt i = 00 ; i chhesssVecc.siize() ; i+)if(ccp.xx = ch
31、hesssVecci.x & cp.y = cchesssVeecii.yy)isLooc = faalsee ;retuurn isLLoc ;voidd CFFiveecheess_44VVieww:LLocaatioon(CCPoiint cp)chesssVeec.ppushh_baack(cp);修修改鼠標(biāo)標(biāo)左鍵和和右鍵單單擊的消消息處理理函數(shù)代代碼如下下,并注注意為了了消除該該缺陷,“鼠標(biāo)消息標(biāo)志變量變化”的位置有所改變,代碼如下,該代碼已經(jīng)將下棋的全部約束條件全部實(shí)現(xiàn)了。voidd CFFiveecheess_44VVieww:OOnLBButttonDDownn(UIINT n
32、Fllagss, CCPoiint poiint) / TTODOO: AAdd youur mmesssagee haandller codde hheree annd/oor ccalll deefauultif(RRighhtORRLefft = 00 ) CCBruush* brrushh = neww CBBrussh(RRGB(0,00,0) ;/定定義黑色色畫刷CDC* pDDC = thhis-GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbrussh); /選選中該黑黑色畫刷刷for(intt i = 00 ; i 1000
33、0 ; ii+=550)for(intt j = 00 ; j Elllippse(temmpPoointt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20); LLocaatioon(ttemppPoiint); /畫了了該點(diǎn)后后,將該該點(diǎn)插入入到向量量中RighhtORRLefft+ ; /鼠鼠標(biāo)消息息標(biāo)志變變量變化化(注意意) CViiew:OnnLBuuttoonDoown(nFllagss, ppoinnt);voidd CFFiveecheess_44VVieww:OOnRBButttonDDownn(UIINT
34、 nFllagss, CCPoiint poiint) / TTODOO: AAdd youur mmesssagee haandller codde hheree annd/oor ccalll deefauult if(RigghtOORLeeft = 1 )CBruush* brrushh = neww CBBrussh(RRGB(2555,2555,2255) ; /定定義白色色畫刷CDC* pDDC = thhis-GeetDCC(); /選選中該白白色畫刷刷pDC-SeelecctObbjecct(bbrussh);for(intt i = 00 ; i 10000 ; ii+=5
35、50)for(intt j = 00 ; j Elllippse(temmpPoointt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20);Locaatioon(ttemppPoiint);RighhtORRLefft ; /鼠鼠標(biāo)消息息標(biāo)志變變量變化化(注意意)CVieew:OnRRButttonnDowwn(nnFlaags, poointt);3.2.3游戲戲獲勝決決斷的開開發(fā)1.該功功能是棋棋牌游戲戲中較難難的功能能。所以以編寫程程序時(shí)要要細(xì)心。游戲規(guī)規(guī)則是這這樣能夠夠的:如果某一一方(黑黑棋或白白棋)在在同一行行
36、或同一一列或同同一斜線線上具有有5個(gè)同同色的棋棋子,則則該顏色色的這一一方就獲獲勝。因因此可以以使用一一個(gè)整形形二維數(shù)數(shù)組來記記錄當(dāng)前前的棋局局情況,二二維數(shù)組組的值定定義如下下:0:表示示該位子子沒有棋棋子;1:表示示該位置置已經(jīng)放放了黑色色棋子;2:表示示該位置置已經(jīng)放放了白色色棋子;解決的問問題:問題1:要在下下每個(gè)棋棋子后,將將數(shù)組變變量對應(yīng)應(yīng)位置的的數(shù)組元元素值做做改變,變變?yōu)椤?”或“2”,這個(gè)個(gè)只需要要在鼠標(biāo)標(biāo)消息處處理函數(shù)數(shù)中調(diào)用用Loccatiion()函數(shù)數(shù)后改變變數(shù)組元元素值即即可。問題2:下每個(gè)個(gè)棋子后后,判斷斷在這個(gè)個(gè)棋子同同一行同同一列或或同一斜斜線上是是否具有有連
37、續(xù)55個(gè)同色色的棋子子,若有有,則宣宣判該方方勝利,并并退出游游戲,如如果沒有有,則繼繼續(xù)游戲戲,輪到到下一方方下棋。具體實(shí)施施步驟如如下;增加棋盤盤狀態(tài)記記錄數(shù)組組。在FFiveecheess_44VVieww.h頭頭文件中中定義一一個(gè)公有有的整形形數(shù)組,如如下代碼碼:int cheessAArr22020;并在視圖圖類的構(gòu)構(gòu)造函數(shù)數(shù)中將整整形數(shù)組組初始化化為0,代代碼為:CFivvechhesss_444Vieew:CFiivecchesss_444Viiew()/ TTODOO: aadd connstrructtionn coode herre RigghtOORLeeft=0; /初
38、初始化棋棋盤,左左鍵先下下棋 ffor(intt i=0;ii200;i+) ffor(intt j=0;jj 0 & ii 0 & ii 0 & jj 0 & jj 0 & jj 0 & i 0 & jj 0 & i 0 & jj 0 & i 0 & jj 0 & i GeetDCC(); /獲獲取當(dāng)前前的圖形形設(shè)備指指針pDC-SeelecctObbjecct(bbrussh); /選選中該黑黑色畫刷刷for(intt i = 00 ; i 10000 ; ii+=550)for(intt j = 00 ; j Elllippse(temmpPoointt.x-20,temmpPooint
39、t.y-20,temmpPoointt.x+20,temmpPoointt.y+20); Loccatiion(temmpPoointt);/畫了了該點(diǎn)后后,將該該點(diǎn)插入入到向量量中 cchesssArrrttemppPoiint.x/550temmpPoointt.y/50 = 1 ;if( isWWin(poiint) )MesssageeBoxx(黑黑色棋子子獲勝!);RighhtORRLefft+ ;CVieew:OnLLButttonnDowwn(nnFlaags, poointt);鼠標(biāo)右鍵鍵具有輸輸贏判斷斷的鼠標(biāo)標(biāo)消息處處理函數(shù)數(shù)與左鍵鍵類似,代代碼如下下:voidd CFFiv
40、eecheess_44VVieww:OOnRBButttonDDownn(UIINT nFllagss, CCPoiint poiint) / TTODOO: AAdd youur mmesssagee haandller codde hheree annd/oor ccalll deefauult if(RigghtOORLeeft = 1 )CBruush* brrushh = neww CBBrussh(RRGB(2555,2555,2255) ;CDC* pDDC = thhis-GeetDCC();pDC-SeelecctObbjecct(bbrussh);for(intt i =
41、00 ; i 10000 ; ii+=550)for(intt j = 00 ; j Elllippse(temmpPoointt.x-20,temmpPoointt.y-20,temmpPoointt.x+20,temmpPoointt.y+20);Locaatioon(ttemppPoiint);chesssArrrttemppPoiint.x/550temmpPoointt.y/50 = 2 ;if( isWWin(poiint) )MesssageeBoxx(白白色棋子子獲勝!);RighhtORRLefft ;CVieew:OnRRButttonnDowwn(nnFlaags, po
42、ointt);3.2.4游戲戲的調(diào)試試與運(yùn)行行編譯程序序:鼠標(biāo)標(biāo)點(diǎn)擊 組建全部部重建。編譯若若出現(xiàn)錯錯誤提示示,則根根據(jù)提示示修改程程序,直直至編譯譯無誤。然后運(yùn)運(yùn)行。得得到的結(jié)結(jié)果如下下未進(jìn)行游游戲時(shí)的的結(jié)果:開始游戲戲后的結(jié)結(jié)果:4 設(shè)計(jì)計(jì)結(jié)果及及分析4.1程程序的結(jié)結(jié)果黑棋獲勝勝的結(jié)果果為:白棋獲勝勝的結(jié)果果為:4.2結(jié)結(jié)果分析析畫棋子的的原理在在于,讀讀取鼠標(biāo)標(biāo)點(diǎn)擊的的坐標(biāo)來來判斷點(diǎn)點(diǎn)擊位所所在的格格子,然然后求出出該格子子的中心心位置坐坐標(biāo),以以該中心心位置為為圓心畫畫黑色圓圓或白色色圓。棋棋牌游戲戲中都有有輪流下下棋或出出牌的一一般性規(guī)規(guī)則,這這種情況況下,都都采用令令牌變量量,通
43、過過令牌變變量來判判斷當(dāng)前前誰有下下棋或出出牌的權(quán)權(quán)利。5 總結(jié)結(jié)本畢業(yè)設(shè)設(shè)計(jì)是一一款休閑閑五子棋棋游戲,離離真正意意義上的的廣域網(wǎng)網(wǎng)網(wǎng)絡(luò)游游戲還要要差距。但是它它已經(jīng)擁擁有了局局域上的的連接進(jìn)進(jìn)行游戲戲的功能能,。在設(shè)計(jì)計(jì)中確實(shí)實(shí)遇到了了不少的的困難,但但是通過過調(diào)試已已經(jīng)解決決了絕大大多數(shù)問問題。游游戲設(shè)計(jì)計(jì)已經(jīng)成成為現(xiàn)在在社會的的一種熱熱門行業(yè)業(yè)。五子子棋是一一種受大大眾廣泛泛喜愛的的游戲,其其規(guī)則簡簡單,變變化多端端,非常常富有趣趣味性和和消遣性性。這里里設(shè)計(jì)和和實(shí)現(xiàn)了了一個(gè)雙雙人對下下的五子子棋單機(jī)機(jī)游戲。主要應(yīng)應(yīng)用了VVisuual C+編程來來完成這這個(gè)游戲戲的設(shè)計(jì)計(jì)的。本本文主
44、要要介紹了了本游戲戲開發(fā)環(huán)環(huán)境Miicroosofft VVisuual C+ 6.0,使使用當(dāng)前前優(yōu)秀的的開發(fā)工工具VCC+編編程。包包含了五五子棋程程序的棋棋盤初始始化、游游戲規(guī)則則、勝負(fù)負(fù)判斷方方法。但是仍仍有一些些不足之之處:游游戲只是是局限于于兩個(gè)人人之間; 并且且局限于于一個(gè)電電腦的鼠鼠標(biāo);沒沒有定時(shí)時(shí)功能及及提醒功功能。這款游戲戲可以繼繼續(xù)完善善菜單功功能也可可以通過過擴(kuò)展實(shí)實(shí)現(xiàn)成一一款圍棋棋游戲,總總之它可可以繼續(xù)續(xù)發(fā)展成成一個(gè)比比較成熟熟的休閑閑類小游游戲。還還有很多多需要完完善和改改進(jìn)的地地方。參考文獻(xiàn)獻(xiàn)1 四維科科技,丁丁展,湯湯倩.VVisuual C+ 游戲戲開發(fā)技技術(shù)與實(shí)實(shí)例MM.北北京:人人民郵電電出版社社,200052求求是科技技,張宏宏林.VVisuual C+ 6.0程序序設(shè)計(jì)與與開發(fā)技技術(shù)大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路養(yǎng)護(hù)工程承包合同三篇
- 智能家居工程師的設(shè)計(jì)理念與技術(shù)要求
- 初三班主任期中工作總結(jié)耐心教導(dǎo)成功引領(lǐng)
- 垃圾處理站保安工作總結(jié)
- 汽車行業(yè)的美工工作總結(jié)
- 《汽車及配件營銷》課件
- 《美容新術(shù)課件》課件
- 2023年四川省阿壩自治州公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年廣東省湛江市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年貴州省黔東南自治州公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 云南師大附中2025屆生物高二上期末教學(xué)質(zhì)量檢測試題含解析
- 術(shù)后鎮(zhèn)痛講解
- 重慶市九龍坡區(qū)2023-2024學(xué)年高二年級上冊1月期末考試物理試題
- 風(fēng)能發(fā)電對養(yǎng)殖場溫濕度變化的影響
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)
- 廠內(nèi)電動車安全管理制度
- 綜合實(shí)踐項(xiàng)目(一)制作細(xì)胞模型課件-2024-2025學(xué)年人教版七年級生物學(xué)上冊
- 遼寧省2024年中考物理試題【附真題答案】
- 2024年甘肅省職業(yè)院校技能大賽中職教師組電子信息類產(chǎn)品數(shù)字化設(shè)計(jì)與開發(fā)賽項(xiàng)樣卷A
- 竣工決算工作底稿
- 爐省煤器改造更換施工方案
評論
0/150
提交評論