




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)報(bào)告課程名稱:計(jì)算機(jī)課程掃雷設(shè)計(jì)院系:建筑工程學(xué)院專業(yè)班級:土木1102班成員姓名:黃梟威王曉偉宋浩余彬李凱凱李婷婷張娣朱月梅子指導(dǎo)教師:趙先完成時(shí)間:2012.6.6報(bào)告成績:掃雷游戲設(shè)計(jì)綜述在計(jì)算機(jī)逐步滲入社會生活各個(gè)層面的今天,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘I畹囊环?,越來越多的人使用?jì)算機(jī)辦公、娛樂等等。掃雷游戲是Windows操作系統(tǒng)自帶的一款小游戲,在過去的幾年里,Windows操作系統(tǒng)歷經(jīng)數(shù)次換代更新,變得越來越龐大、復(fù)雜,功能也越來越強(qiáng)大,但是這款小游戲依然保持原來的容貌,可見這款小游戲受到越來越多人的喜愛。我們小組利用TurboC編寫了與它功能相仿的掃雷游戲,寓學(xué)于樂。一、應(yīng)用環(huán)境1.1硬件環(huán)境一臺完整的電腦,包括鍵盤、鼠標(biāo),最小硬盤空間1GHz1.1386,486,586及兼容機(jī).640K基本內(nèi)存;2.11M以上擴(kuò)充內(nèi)存,10M以上的顯示內(nèi)存.2.2軟件環(huán)境開發(fā)環(huán)境:本系統(tǒng)的設(shè)計(jì)采用的是C語言開發(fā)Windows操作系統(tǒng),TurboC2.0漢化版二、程序的作用及設(shè)計(jì)目的2.1程序功能程序的功能是隨機(jī)生成地雷位置,通過鍵盤操作玩游戲,空格鍵進(jìn)行打開,回車鍵進(jìn)行標(biāo)記,所有地雷標(biāo)出后勝利,當(dāng)單擊到地雷時(shí)失敗。2.2程序設(shè)計(jì)目的1.培養(yǎng)綜合運(yùn)用所學(xué)知識獨(dú)立完成課題的能力。2.更深入地理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。3.提高對工作認(rèn)真負(fù)責(zé)、一絲不茍,對同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)的基本素質(zhì)。4.培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。5.培養(yǎng)從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識的能力,提高從別人經(jīng)驗(yàn)中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。6.對掌握知識的深度、運(yùn)用理論去處理問題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行考核。三、程序分析和設(shè)計(jì)3.1游戲規(guī)則設(shè)計(jì)30×16格區(qū)域,按上空格鍵后,該格顯示數(shù)字,則表示它周圍8個(gè)空格內(nèi)含有的地雷數(shù),周圍沒有地雷的顯示空白,則不能再按空格鍵了。如果是地雷,則游戲結(jié)束。如果判斷是地雷,可以使用回車鍵標(biāo)出,顯示紅旗,要取消標(biāo)志則再按回車鍵,當(dāng)所有地雷都標(biāo)出,每個(gè)空格都處理過了,則結(jié)束。3.2游戲界面游戲界面為30*16的黑底灰色方框。3.3設(shè)計(jì)思路掃雷程序主要用了一個(gè)30行16列的二維數(shù)組表示,數(shù)組的num代表格內(nèi)當(dāng)前處于什么狀態(tài),值為1表示有雷,值為0表示已經(jīng)變成空白格或者顯示過數(shù)字,roundnum統(tǒng)計(jì)每個(gè)格子周圍有多少地雷,flag主要是空格鍵測試的標(biāo)志,如果flag為1則表示格子顯示紅旗,這樣回車鍵點(diǎn)在這個(gè)格子中將無效。算法的重點(diǎn)是一開始統(tǒng)計(jì)好每個(gè)格子周圍有多少地雷,然后當(dāng)空格鍵點(diǎn)在沒地雷的格子上時(shí)進(jìn)行兩種判斷,如果格子周圍沒地雷就先在原來的格子位置顯示空白格,然后用遞歸的方法同樣判斷周圍的8個(gè)格子;如果格子周圍有地雷,就在該格子上顯示具體的雷數(shù)。在遞歸判斷8個(gè)格子時(shí),如果格子上有雷或者格子已經(jīng)顯示過雷數(shù)或者空白格,以及格子上有紅旗標(biāo)志的話,就不再對格子進(jìn)行任何判斷。1main()主函數(shù)定義使用到的常數(shù)、函數(shù)原型說明。然后初始化圖形系統(tǒng),調(diào)用游戲控制函數(shù),游戲只接鍵盤標(biāo)操,作按任意鍵結(jié)束游戲,關(guān)閉圖形系統(tǒng),程序結(jié)束。2游戲控制函數(shù)調(diào)用函數(shù)redraw重畫函數(shù),調(diào)用為具體游戲操作過程,重畫游戲界面。即對下一操作,不管是打開數(shù)字,還是空格,亦或是地雷,都重畫一次。3畫初始界面這個(gè)函數(shù)完成初始界面的設(shè)計(jì)以及隨機(jī)生成地雷數(shù)。初始界面的主要工作是確定圖的位置和方格顯示的位置。外邊框的左上角坐標(biāo)為(190,60),右下角坐標(biāo)為(390,290),顯示地雷數(shù)的區(qū)域?yàn)椋?90,60)~(390,90),每個(gè)方格的寬度和高度均為16。讀者可以參照修改區(qū)域的大小。5randlei隨機(jī)布雷隨機(jī)布雷(randlei)函數(shù)用于隨機(jī)布雷,且計(jì)算每個(gè)各自周圍雷的個(gè)數(shù)。6DrawRedflag()顯示紅旗用點(diǎn)擊回車鍵表示起地雷,起雷后顯示一個(gè)小紅旗。7游戲過程游戲過程主要是對按鍵的處理,具體算法如下:統(tǒng)計(jì)每個(gè)格子周圍有多少地雷。(1)如果單擊了空格鍵則判斷:如果單擊了方格,判斷該格子里有紅旗,則按鍵無效。如果單擊的格子沒有顯示過數(shù)字或空白,則判斷;如果是地雷,游戲結(jié)束,顯示地雷分布;如果不是地雷,則統(tǒng)計(jì)該格子周圍(8個(gè)方向)的地雷數(shù),如果周圍地雷數(shù)為0,調(diào)用函數(shù)tansuo處理周圍格子的情況,顯示周圍地雷數(shù)或空白。如果單擊的格子周圍地雷數(shù)不為0,則顯示周圍地雷數(shù),將處理過的格子作標(biāo)記。如果所有格子處理完畢,游戲勝利。(2)如果單擊了回車鍵,該格子沒有紅旗,則顯示紅旗。如果有紅旗,再擊回車鍵,則紅旗消失。(3)重復(fù)步驟(2)直到按鍵結(jié)束程序。8統(tǒng)計(jì)地雷統(tǒng)計(jì)每個(gè)格子周圍的雷數(shù),分別考慮格子處于四個(gè)角、四條邊以及中間某個(gè)位置的情況。周圍指上、下、左、右、左上、左下、右上、右下。注意程序中使用的是多個(gè)if語句,而沒有使用或運(yùn)算連接組成復(fù)合表達(dá)式,考慮到C語言的邏輯表達(dá)式的問題,邏輯或只要前面的表達(dá)式為真,后面就不必判斷了,這樣可能造成少計(jì)地雷數(shù)。9顯示無雷區(qū)的空白格當(dāng)單擊了某個(gè)格子,該格子周圍地雷數(shù)為0時(shí),應(yīng)該繼續(xù)判斷它周圍8個(gè)方向的格子的周圍地雷數(shù)是否為0,將這些格子都用空白顯示。所以這也是一個(gè)遞歸問題,將其構(gòu)造為遞歸函數(shù)。一個(gè)遞歸函數(shù)有兩個(gè)要素,一個(gè)是入口參數(shù),且是降規(guī)模的,另一個(gè)為出口參數(shù)。本函數(shù)的入口參數(shù)為格子的坐標(biāo),表示處理哪個(gè)格子,出口參數(shù)是該格子有紅旗或者已經(jīng)顯示過數(shù)字或空白格子。具體算法如下:(1)如果當(dāng)前格子有紅旗或者已經(jīng)顯示過數(shù)字或空白格子,則返回。(2)空白格子數(shù)減1(統(tǒng)計(jì)處理過多少格子)。(3)如果周圍的地雷數(shù)為0,且它不是地雷,則將它顯示為空白,同時(shí)將它的狀態(tài)值num置0,表示處理過;如果周圍的地雷數(shù)不為0,顯示周圍地雷數(shù),同時(shí)將它的狀態(tài)值num置0,表示處理過(即顯示過數(shù)字),返回。(4)8個(gè)方向探索調(diào)用函數(shù)顯示所有的空白格子。四、程序測試及分析4.1程序調(diào)試是指對程序的查錯(cuò)和排錯(cuò)。為了便于查錯(cuò)、閱讀,在設(shè)計(jì)該程序的過程中我們采用了結(jié)構(gòu)化程序方法編輯,添加了盡可能多的注釋,這就為接下來的調(diào)試過程帶來了很多方便。4.2經(jīng)過仔細(xì)檢查之后進(jìn)行上機(jī)調(diào)試。進(jìn)行編譯,如果在編譯和連接過程中發(fā)現(xiàn)錯(cuò)誤,屏幕上顯示了出錯(cuò)信息,根據(jù)提示找到出錯(cuò)的位置,加以改正,再進(jìn)行編譯……如此反復(fù),直到順利通過編譯和連接為止。4.3在本次作業(yè)過程中碰到的編譯、連接的錯(cuò)誤主要有:缺少變量定義,定義位置不正確、語法錯(cuò)誤、注釋的位置等。4.4錯(cuò)誤解決方法。(1)缺少變量定義,定義位置不正確;由于該程序相對來講稍有些長,前后有些變量不容易聯(lián)系起來,但是在錯(cuò)誤信息的提示下一般還是很容易找到。不過需要注意的是在定義的時(shí)候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。為減少這樣的錯(cuò)誤我后來還是用不同的變量名來表示,結(jié)果引起的那些錯(cuò)誤解決了。(2)語法錯(cuò)誤;大多的語法錯(cuò)誤在通過書本參考下能夠修改。主要是平時(shí)缺乏鍛煉、不太注意而產(chǎn)生的。如沒有注意具體數(shù)據(jù)使用是有一定的范圍限定;過分重視分號的重要性而在for、if、while語句中畫蛇添足加分號;在使用文件的時(shí)候忘記將文件先打開,對打開的方式(3)注釋的位置;程序設(shè)計(jì)中在注釋的時(shí)候不能同我們平常寫字一樣隨心所欲,我們應(yīng)該注意注釋的格式。且注釋中能含有C語言可執(zhí)行的語句。心得體會課程設(shè)計(jì)是本科學(xué)習(xí)階段一次非常難得的理論與實(shí)際相結(jié)合的機(jī)會,通過這次比較完整的一個(gè)程序的設(shè)計(jì),我擺脫了單純的理論知識學(xué)習(xí)狀態(tài)。以前在課堂上因?yàn)橛欣蠋熭o導(dǎo)、而且學(xué)習(xí)時(shí)每次的代碼作業(yè)都是局限的一段,所以從未料想到一個(gè)游戲程序的整體把握還是有一定難度的,代碼每一個(gè)地方都是有聯(lián)系的,一個(gè)地方錯(cuò),其他地方都會錯(cuò)?!S梟威實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的基礎(chǔ)知識,解決實(shí)際問題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、對程序整體的把握等其他能力水平。我現(xiàn)在才發(fā)現(xiàn)以前在課堂學(xué)的東西還不夠,很多都是要靠我們舉一反三,此次的游戲設(shè)計(jì)讓我發(fā)現(xiàn),代碼不管怎么變,思維是不變的,其中的思想很多是很相似的?!鯐詡ネㄟ^對整體的掌控,對局部的取舍,以及對細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富。我再不會像以前那樣看到代碼就會頭疼,因?yàn)橥ㄟ^此次作業(yè)我學(xué)習(xí)了C語言的數(shù)據(jù)類型、常量與符號常量、變量、C語言的運(yùn)算符和表達(dá)式、賦值運(yùn)算符和賦值表達(dá)式、自增自減運(yùn)算符以及逗號表達(dá)式等?!魏朴淇斓暮献鳎餐冻?,然后收獲,這是我們都希望看到的也正是我們進(jìn)行課程設(shè)計(jì)的目的所在。而且我也明白了C語言的簡潔,使用靈活方便,運(yùn)算符豐富,表達(dá)能力強(qiáng)。還有數(shù)計(jì)類型豐富,目標(biāo)程序質(zhì)量高,具有面向硬件系統(tǒng)的特點(diǎn),具有結(jié)構(gòu)化的控制語句和模塊化的程序結(jié)構(gòu),具有編譯預(yù)處理功能,而且程序設(shè)計(jì)自由度大,可移植性好?!顒P凱雖然設(shè)計(jì)內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。各種組件的運(yùn)用,各種算法的應(yīng)用,各種控件的利用我都是隨著設(shè)計(jì)的不斷深入而不斷熟悉并逐步掌握的。從而啟發(fā)我,要想寫好程序,在寫好課本知識的同時(shí)還需要多讀和專業(yè)有關(guān)的一些書籍,同時(shí)還需要多動腦子,盡量把所學(xué)的知識綜合起來應(yīng)用,力爭寫出完美的程序?!铈面煤屠蠋熞约巴瑢W(xué)的溝通交流更使我對程序整體的規(guī)劃與設(shè)計(jì)有了新的認(rèn)識也對自己提出了新的要求。本程序在剛開始調(diào)試時(shí)有許多錯(cuò)誤,但在我的努力及同學(xué)的幫助下都被一一克服,在剛開始的幾次調(diào)試中曾經(jīng)出現(xiàn)過不能運(yùn)行等等問題。經(jīng)過我的努力及同學(xué)的幫助,這些問題得到克服,并且使程序的功能也得到了一定的完善———————————張娣提高是有限的但提高也是全面的,正是這一次設(shè)計(jì)讓我積累了許多實(shí)際經(jīng)驗(yàn),也必然會讓我在未來的工作學(xué)習(xí)中表現(xiàn)出更高的應(yīng)變能力和理解力除此之外,我還得到了一些有用的教訓(xùn):寫程序時(shí)必須要細(xì)心,不能輸錯(cuò)一個(gè)字符標(biāo)點(diǎn),就連全角半角也得注意。在修改時(shí)要有耐心,編譯出錯(cuò)后必須逐個(gè)錯(cuò)誤去改正,絕不能心急浮躁,否則修改之后還會有新的錯(cuò)誤。————————————余彬順利如期的完成本次課程設(shè)計(jì)給了我很大的信心,但是也讓多不足的地方,學(xué)習(xí)其實(shí)就是一個(gè)不斷完善的過程,正視自己的不足之處,在以后的工作和學(xué)習(xí)中不斷的彌補(bǔ)這些不足之處,在以后的生活中也要保持同樣的態(tài)度,不斷的完善自己。。在這次設(shè)計(jì)過程中,不僅復(fù)習(xí)課本上所學(xué)知識,還通過查資料、問同學(xué)學(xué)到了課本上沒有的知識?!煸旅纷恿?、總結(jié)6.1知識點(diǎn)1數(shù)組的應(yīng)用。2全局變量的應(yīng)用。3按鍵的處理。4探索函數(shù)。5.功能擴(kuò)充、修改程序,設(shè)初級、中級、高級三個(gè)等級,初級地雷數(shù)較少,在15個(gè)以內(nèi),中級在15到30個(gè),高級則擴(kuò)大棋盤為20×20,地雷數(shù)為30個(gè)以上。七、主要代碼#include<graphics.h>#include<stdlib.h>#include<bios.h>#include<time.h>/*定義幾個(gè)游戲中要用到的功能按鍵*/#defineESC0x11b#defineUP0x4800#defineDOWN0x5000#defineLEFT0x4b00#defineRIGHT0x4d00#defineSPACE0x3920#defineENTER0x1c0dinta[50][50]={0};/*存放雷的數(shù)組*/intb[50][50]={0};/*存放格子狀態(tài)的數(shù)組*/charnum[9][2]={"?","1","2","3","4","5","6","7","8"};intgbx=320,gby=240;/*當(dāng)前光標(biāo)位置(0,0)表示左上角*/intii,jj;main(){inti,j,m=30,n=16,d=20,k;intgdriver=DETECT,gmode;randlei(30,16,100);ii=m/2;jj=n/2;registerbgidriver(gdriver);initgraph(&gdriver,&gmode,"c:\\turboc2");wangge(m,n,d);redraw(m,n,d);while(1)/*反復(fù)從鍵盤獲得程序需要的按鍵*/{if(bioskey(1))/*判斷是否有按鍵*/{k=bioskey(0);switch(k){caseESC:exit(0);break;caseUP:if(jj>1){jj-=1;redraw(m,n,d);}break;caseDOWN:if(jj<n)/*DOWN鍵向下移動光標(biāo)*/{jj+=1;redraw(m,n,d);}break;caseLEFT:/*LEFT鍵向下移動光標(biāo)*/if(ii>1){ii-=1;redraw(m,n,d);}break;caseRIGHT:/*RIGHT鍵向下移動光標(biāo)*/if(ii<m){ii+=1;redraw(m,n,d);}break;caseSPACE:/*空格鍵認(rèn)為無雷打開*/{b[jj][ii]=1;if(a[jj][ii]==0)tansuo(jj,ii,n,m);}redraw(m,n,d);break;caseENTER:/*回車鍵認(rèn)為有雷標(biāo)記*/if(b[jj][ii]==0)b[jj][ii]=-1;elseif(b[jj][ii]==-1)b[jj][ii]=2;elseif(b[jj][ii]==2)b[jj][ii]=0;redraw(m,n,d);break;}}}getch();closegraph();}/*redraw重畫函數(shù)在用戶有操作后,重畫游戲畫面*/redraw(intm,intn,intd){inti,j;wangge(m,n,d);for(i=1;i<=n;i++)for(j=1;j<=m;j++){if(b[i][j]!=1)gezi3d(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d);elseif(a[i][j]>=0){gezi2d(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d);if(a[i][j]>0){shownum(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d,a[i][j]);}}elsedrawlei(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d,a[i][j]);if(b[i][j]==-1)showflag(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d);if(b[i][j]==2)shownum(320+(j-1-m/2)*d,240+(i-1-n/2)*d,d,0);}gbx=320+(ii-1-m/2)*d;gby=240+(jj-1-n/2)*d;drawGB(gbx,gby,d);}/*隨機(jī)布雷(randlei)函數(shù)用于隨機(jī)布雷,且計(jì)算每個(gè)各自周圍雷的個(gè)數(shù)Intm:橫向各自的數(shù)量要求是雙數(shù)Intn:縱向格子的數(shù)量要求是雙數(shù)Intnum:雷的個(gè)數(shù)*/randlei(intm,intn,intnum){inti,j,xx,yy,sum=0,t;srand(time(NULL));do{t=random(m*n);xx=t/m+1;yy=t%m+1;if(a[xx][yy]==0){a[xx][yy]=-1;sum++;}}while(sum<num);for(i=1;i<=n;i++)for(j=1;j<=m;j++){if(a[i][j]!=-1){if(a[i-1][j-1]==-1)a[i][j]++;if(a[i-1][j]==-1)a[i][j]++;if(a[i-1][j+1]==-1)a[i][j]++;if(a[i][j-1]==-1)a[i][j]++;if(a[i][j+1]==-1)a[i][j]++;if(a[i+1][j-1]==-1)a[i][j]++;if(a[i+1][j]==-1)a[i][j]++;if(a[i+1][j+1]==-1)a[i][j]++;}}}wangge(intm,intn,intd){inti,j;setcolor(7);/*網(wǎng)格區(qū)域填充淺灰色底色*/setfillstyle(1,7);bar(320-m/2*d,240-n/2*d,320+m/2*d,240+n/2*d);setcolor(15);for(i=320-m/2*d;i<320+m/2*d;i=i+d)/*小格子起點(diǎn)的橫坐標(biāo)序列*/for(j=240-n/2*d;j<240+n/2*d;j=j+d)/*小格子起點(diǎn)的縱坐標(biāo)序列*/;/*gezi3d(i,j,d);*//*繪制一個(gè)立體效果的小格子*/}/*畫雷(drawlei)函數(shù)用于繪制給定坐標(biāo)位置的雷雷畫在格子的正中心Intx:雷所在格子左上角點(diǎn)橫坐標(biāo)Inty:雷所在格子左上角點(diǎn)縱坐標(biāo)Intd:格子間的間距*/drawlei(intx,inty,intd){intr;setcolor(0);/*雷顏色為黑色*/for(r=d/4;r>0;r--)circle(x+d/2,y+d/2,r);/*畫多個(gè)小園形成雷外殼*/line(x+d/2,y+3,x+d/2,y+d-3);/*畫雷外殼上的刺*/line(x+3,y+d/2,x+d-3,y+d/2);line(x+5,y+5,x+d-5,y+d-5);line(x+5,y+d-5,x+d-5,y+5);}/*顯示數(shù)字(shownum)函數(shù)用于顯示給定坐標(biāo)位置的數(shù)字?jǐn)?shù)字顯示在格子的正中心lntx:數(shù)字所在格子左上角點(diǎn)橫坐標(biāo)lnty:數(shù)字所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距intn:要顯示的數(shù)字*/shownum(intx,inty,intd,intn){setcolor(0+n);/*數(shù)字顏色為黑色*/settextstyle(SMALL_FONT,HORIZ_DIR,0);outtextxy(x+0.3*d,y+0.4*d,num[n]);}/*顯示旗子(showflag)函數(shù)用于顯示給定坐標(biāo)位置的標(biāo)志為雷的小紅旗intx:旗子所在格子左上角點(diǎn)橫坐標(biāo)inty:旗子所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距*/showflag(intx,inty,intd){intk,l;setcolor(4);for(l=1,k=y+0.2*d;k<=y+0.5*d;l=l+1.5,k++)line(x+d/2-1,k,x+d/2,k);setcolor(0);line(x+d/2,y+d/2,x+d/2,y+d*0.8);line(x+d*0.2,y+d*0.8,x+d*0.8,y+d*0.8);line(x+d*0.2-1,y+d*0.8+1,x+d*0.8+1,y+d*0.8+1);}/*繪制三維小格子(gezi3d)函數(shù)用于將掃雷界面的每個(gè)小格子繪制為三維效果這是該格子未被打開時(shí)的效果intx:旗子所在格子左上角點(diǎn)橫坐標(biāo)inty:旗子所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距*/gezi3d(intx,inty,intd){setcolor(8);line(x,y,x,y+d);line(x,y,x+d,y);line(x+d,y+d,x,y+d);line(x+d,y+d,x+d,y);setcolor(15);line(x+1,y+1,x+1,y+d-1);line(x+1,y+1,x+d-1,y+1);setcolor(0);line(x+d-1,y+d-1,x+1,y+d-1);line(x+d-1,y+d-1,x+d-1,y+1);}/*繪制二維小格子(gezi3d)函數(shù)用于將掃雷界面的每個(gè)小格子繪制為二維效果這是該格子未被打開時(shí)的效果intx:旗子所在格子左上角點(diǎn)橫坐標(biāo)inty:旗子所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距*/gezi2d(intx,inty,intd){setcolor(8);line(x,y,x,y+d);line(x,y,x+d,y);line(x+d,y+d,x,y+d);line(x+d,y+d,x+d,y);setfillstyle(1,7);bar(x+1,y+1,y+d-1,y+d-1);}/*畫爆炸雷(drawBZlei)函數(shù)用于繪制給定坐標(biāo)位置的爆炸雷雷畫在格子的正中心格子背景色為紅色intx:旗子所在格子左上角點(diǎn)橫坐標(biāo)inty:旗子所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距*/drawBZlei(intx,inty,intd){intr;setcolor(4);setfillstyle(1,4);bar(x+1,y+1,x+d-1,y+d-1);setcolor(0);for(r=d/4;r>0;r--)circle(x+d/2,y+d/2,r);line(x+d/2,y+3,x+d/2,y+d-3);line(x+3,y+d/2,x+d-3,y+d/2);line(x+5,y+5,x+d-5,y+d-5);line(x-5,y+d-5,x+d-5,y+5);}/*畫光標(biāo)(drawGB)函數(shù)用于繪制給定坐標(biāo)位置的光標(biāo)光標(biāo)為一個(gè)藍(lán)色正方形intx:旗子所在格子左上角點(diǎn)橫坐標(biāo)inty:旗子所在格子左上角點(diǎn)縱坐標(biāo)intd:格子間的間距*/drawGB(intx,inty,intd){
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)安全考試題庫及答案
- 歷史素材面試題及答案
- 紀(jì)律委員面試題及答案
- 晉升管理面試題及答案
- 研究并實(shí)施國際支付方式與結(jié)算體系
- 完善內(nèi)部審計(jì)流程與監(jiān)督機(jī)制
- 離岸養(yǎng)殖環(huán)境網(wǎng)衣水動力特性研究與安全性評估
- 開發(fā)崗面試題及答案
- 社區(qū)傳媒面試題及答案
- 2024-2025學(xué)年度四川省廣安友實(shí)學(xué)校高二下學(xué)期5月月考?xì)v史試題(含答案)
- 護(hù)士鼻飼考試題及答案
- 2024年四川省考公務(wù)員考試結(jié)構(gòu)化面試綜合崗真題試題試卷答案解析
- 【課件】 班組長安全責(zé)任意識專題培訓(xùn)
- 2025春國開《金融基礎(chǔ)》形考任務(wù)1-5答案
- 病媒生物知識課件
- 事業(yè)單位內(nèi)部審計(jì)制度
- 2025年南郵面試試題及答案
- 2025年江蘇省實(shí)驗(yàn)動物從業(yè)人員(動物實(shí)驗(yàn)類)上崗考試題庫(濃縮500題)
- 矩陣之美在科技項(xiàng)目中的具體實(shí)踐及成效分析
- 大型活動應(yīng)急救援職責(zé)與組織架構(gòu)
- 枕先露分娩機(jī)制講解
評論
0/150
提交評論