版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)報(bào)告課程名稱(chēng):計(jì)算機(jī)課程掃雷設(shè)計(jì)院系:建筑工程學(xué)院專(zhuān)業(yè)班級(jí):土木1102班成員姓名:黃梟威王曉偉宋浩余彬李凱凱李婷婷張娣朱月梅子指導(dǎo)教師:趙先完成時(shí)間:2012.6.6報(bào)告成績(jī):掃雷游戲設(shè)計(jì)綜述在計(jì)算機(jī)逐步滲入社會(huì)生活各個(gè)層面的今天,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘I畹囊环郑絹?lái)越多的人使用計(jì)算機(jī)辦公、娛樂(lè)等等。掃雷游戲是Windows操作系統(tǒng)自帶的一款小游戲,在過(guò)去的幾年里,Windows操作系統(tǒng)歷經(jīng)數(shù)次換代更新,變得越來(lái)越龐大、復(fù)雜,功能也越來(lái)越強(qiáng)大,但是這款小游戲依然保持原來(lái)的容貌,可見(jiàn)這款小游戲受到越來(lái)越多人的喜愛(ài)。我們小組利用TurboC編寫(xiě)了與它功能相仿的掃雷游戲,寓學(xué)于樂(lè)。一、應(yīng)用環(huán)境1.1硬件環(huán)境一臺(tái)完整的電腦,包括鍵盤(pán)、鼠標(biāo),最小硬盤(pán)空間1GHz1.1386,486,586及兼容機(jī).640K基本內(nèi)存;2.11M以上擴(kuò)充內(nèi)存,10M以上的顯示內(nèi)存.2.2軟件環(huán)境開(kāi)發(fā)環(huán)境:本系統(tǒng)的設(shè)計(jì)采用的是C語(yǔ)言開(kāi)發(fā)Windows操作系統(tǒng),TurboC2.0漢化版二、程序的作用及設(shè)計(jì)目的2.1程序功能程序的功能是隨機(jī)生成地雷位置,通過(guò)鍵盤(pán)操作玩游戲,空格鍵進(jìn)行打開(kāi),回車(chē)鍵進(jìn)行標(biāo)記,所有地雷標(biāo)出后勝利,當(dāng)單擊到地雷時(shí)失敗。2.2程序設(shè)計(jì)目的1.培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。2.更深入地理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。3.提高對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛(ài),協(xié)作攻關(guān)的基本素質(zhì)。4.培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。5.培養(yǎng)從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。6.對(duì)掌握知識(shí)的深度、運(yùn)用理論去處理問(wèn)題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書(shū)面及口頭表達(dá)能力進(jìn)行考核。三、程序分析和設(shè)計(jì)3.1游戲規(guī)則設(shè)計(jì)30×16格區(qū)域,按上空格鍵后,該格顯示數(shù)字,則表示它周?chē)?個(gè)空格內(nèi)含有的地雷數(shù),周?chē)鷽](méi)有地雷的顯示空白,則不能再按空格鍵了。如果是地雷,則游戲結(jié)束。如果判斷是地雷,可以使用回車(chē)鍵標(biāo)出,顯示紅旗,要取消標(biāo)志則再按回車(chē)鍵,當(dāng)所有地雷都標(biāo)出,每個(gè)空格都處理過(guò)了,則結(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)變成空白格或者顯示過(guò)數(shù)字,roundnum統(tǒng)計(jì)每個(gè)格子周?chē)卸嗌俚乩?,flag主要是空格鍵測(cè)試的標(biāo)志,如果flag為1則表示格子顯示紅旗,這樣回車(chē)鍵點(diǎn)在這個(gè)格子中將無(wú)效。算法的重點(diǎn)是一開(kāi)始統(tǒng)計(jì)好每個(gè)格子周?chē)卸嗌俚乩?,然后?dāng)空格鍵點(diǎn)在沒(méi)地雷的格子上時(shí)進(jìn)行兩種判斷,如果格子周?chē)鷽](méi)地雷就先在原來(lái)的格子位置顯示空白格,然后用遞歸的方法同樣判斷周?chē)?個(gè)格子;如果格子周?chē)械乩?,就在該格子上顯示具體的雷數(shù)。在遞歸判斷8個(gè)格子時(shí),如果格子上有雷或者格子已經(jīng)顯示過(guò)雷數(shù)或者空白格,以及格子上有紅旗標(biāo)志的話(huà),就不再對(duì)格子進(jìn)行任何判斷。1main()主函數(shù)定義使用到的常數(shù)、函數(shù)原型說(shuō)明。然后初始化圖形系統(tǒng),調(diào)用游戲控制函數(shù),游戲只接鍵盤(pán)標(biāo)操,作按任意鍵結(jié)束游戲,關(guān)閉圖形系統(tǒng),程序結(jié)束。2游戲控制函數(shù)調(diào)用函數(shù)redraw重畫(huà)函數(shù),調(diào)用為具體游戲操作過(guò)程,重畫(huà)游戲界面。即對(duì)下一操作,不管是打開(kāi)數(shù)字,還是空格,亦或是地雷,都重畫(huà)一次。3畫(huà)初始界面這個(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è)各自周?chē)椎膫€(gè)數(shù)。6DrawRedflag()顯示紅旗用點(diǎn)擊回車(chē)鍵表示起地雷,起雷后顯示一個(gè)小紅旗。7游戲過(guò)程游戲過(guò)程主要是對(duì)按鍵的處理,具體算法如下:統(tǒng)計(jì)每個(gè)格子周?chē)卸嗌俚乩住#?)如果單擊了空格鍵則判斷:如果單擊了方格,判斷該格子里有紅旗,則按鍵無(wú)效。如果單擊的格子沒(méi)有顯示過(guò)數(shù)字或空白,則判斷;如果是地雷,游戲結(jié)束,顯示地雷分布;如果不是地雷,則統(tǒng)計(jì)該格子周?chē)?個(gè)方向)的地雷數(shù),如果周?chē)乩讛?shù)為0,調(diào)用函數(shù)tansuo處理周?chē)褡拥那闆r,顯示周?chē)乩讛?shù)或空白。如果單擊的格子周?chē)乩讛?shù)不為0,則顯示周?chē)乩讛?shù),將處理過(guò)的格子作標(biāo)記。如果所有格子處理完畢,游戲勝利。(2)如果單擊了回車(chē)鍵,該格子沒(méi)有紅旗,則顯示紅旗。如果有紅旗,再擊回車(chē)鍵,則紅旗消失。(3)重復(fù)步驟(2)直到按鍵結(jié)束程序。8統(tǒng)計(jì)地雷統(tǒng)計(jì)每個(gè)格子周?chē)睦讛?shù),分別考慮格子處于四個(gè)角、四條邊以及中間某個(gè)位置的情況。周?chē)干?、下、左、右、左上、左下、右上、右下。注意程序中使用的是多個(gè)if語(yǔ)句,而沒(méi)有使用或運(yùn)算連接組成復(fù)合表達(dá)式,考慮到C語(yǔ)言的邏輯表達(dá)式的問(wèn)題,邏輯或只要前面的表達(dá)式為真,后面就不必判斷了,這樣可能造成少計(jì)地雷數(shù)。9顯示無(wú)雷區(qū)的空白格當(dāng)單擊了某個(gè)格子,該格子周?chē)乩讛?shù)為0時(shí),應(yīng)該繼續(xù)判斷它周?chē)?個(gè)方向的格子的周?chē)乩讛?shù)是否為0,將這些格子都用空白顯示。所以這也是一個(gè)遞歸問(wèn)題,將其構(gòu)造為遞歸函數(shù)。一個(gè)遞歸函數(shù)有兩個(gè)要素,一個(gè)是入口參數(shù),且是降規(guī)模的,另一個(gè)為出口參數(shù)。本函數(shù)的入口參數(shù)為格子的坐標(biāo),表示處理哪個(gè)格子,出口參數(shù)是該格子有紅旗或者已經(jīng)顯示過(guò)數(shù)字或空白格子。具體算法如下:(1)如果當(dāng)前格子有紅旗或者已經(jīng)顯示過(guò)數(shù)字或空白格子,則返回。(2)空白格子數(shù)減1(統(tǒng)計(jì)處理過(guò)多少格子)。(3)如果周?chē)牡乩讛?shù)為0,且它不是地雷,則將它顯示為空白,同時(shí)將它的狀態(tài)值num置0,表示處理過(guò);如果周?chē)牡乩讛?shù)不為0,顯示周?chē)乩讛?shù),同時(shí)將它的狀態(tài)值num置0,表示處理過(guò)(即顯示過(guò)數(shù)字),返回。(4)8個(gè)方向探索調(diào)用函數(shù)顯示所有的空白格子。四、程序測(cè)試及分析4.1程序調(diào)試是指對(duì)程序的查錯(cuò)和排錯(cuò)。為了便于查錯(cuò)、閱讀,在設(shè)計(jì)該程序的過(guò)程中我們采用了結(jié)構(gòu)化程序方法編輯,添加了盡可能多的注釋?zhuān)@就為接下來(lái)的調(diào)試過(guò)程帶來(lái)了很多方便。4.2經(jīng)過(guò)仔細(xì)檢查之后進(jìn)行上機(jī)調(diào)試。進(jìn)行編譯,如果在編譯和連接過(guò)程中發(fā)現(xiàn)錯(cuò)誤,屏幕上顯示了出錯(cuò)信息,根據(jù)提示找到出錯(cuò)的位置,加以改正,再進(jìn)行編譯……如此反復(fù),直到順利通過(guò)編譯和連接為止。4.3在本次作業(yè)過(guò)程中碰到的編譯、連接的錯(cuò)誤主要有:缺少變量定義,定義位置不正確、語(yǔ)法錯(cuò)誤、注釋的位置等。4.4錯(cuò)誤解決方法。(1)缺少變量定義,定義位置不正確;由于該程序相對(duì)來(lái)講稍有些長(zhǎng),前后有些變量不容易聯(lián)系起來(lái),但是在錯(cuò)誤信息的提示下一般還是很容易找到。不過(guò)需要注意的是在定義的時(shí)候有些函數(shù)使用同樣的變量名而表示不同的作用,因而使用要很小心,定義及定義的位置要特別留意。為減少這樣的錯(cuò)誤我后來(lái)還是用不同的變量名來(lái)表示,結(jié)果引起的那些錯(cuò)誤解決了。(2)語(yǔ)法錯(cuò)誤;大多的語(yǔ)法錯(cuò)誤在通過(guò)書(shū)本參考下能夠修改。主要是平時(shí)缺乏鍛煉、不太注意而產(chǎn)生的。如沒(méi)有注意具體數(shù)據(jù)使用是有一定的范圍限定;過(guò)分重視分號(hào)的重要性而在for、if、while語(yǔ)句中畫(huà)蛇添足加分號(hào);在使用文件的時(shí)候忘記將文件先打開(kāi),對(duì)打開(kāi)的方式(3)注釋的位置;程序設(shè)計(jì)中在注釋的時(shí)候不能同我們平常寫(xiě)字一樣隨心所欲,我們應(yīng)該注意注釋的格式。且注釋中能含有C語(yǔ)言可執(zhí)行的語(yǔ)句。心得體會(huì)課程設(shè)計(jì)是本科學(xué)習(xí)階段一次非常難得的理論與實(shí)際相結(jié)合的機(jī)會(huì),通過(guò)這次比較完整的一個(gè)程序的設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài)。以前在課堂上因?yàn)橛欣蠋熭o導(dǎo)、而且學(xué)習(xí)時(shí)每次的代碼作業(yè)都是局限的一段,所以從未料想到一個(gè)游戲程序的整體把握還是有一定難度的,代碼每一個(gè)地方都是有聯(lián)系的,一個(gè)地方錯(cuò),其他地方都會(huì)錯(cuò)?!S梟威實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的基礎(chǔ)知識(shí),解決實(shí)際問(wèn)題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、對(duì)程序整體的把握等其他能力水平。我現(xiàn)在才發(fā)現(xiàn)以前在課堂學(xué)的東西還不夠,很多都是要靠我們舉一反三,此次的游戲設(shè)計(jì)讓我發(fā)現(xiàn),代碼不管怎么變,思維是不變的,其中的思想很多是很相似的?!鯐詡ネㄟ^(guò)對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富。我再不會(huì)像以前那樣看到代碼就會(huì)頭疼,因?yàn)橥ㄟ^(guò)此次作業(yè)我學(xué)習(xí)了C語(yǔ)言的數(shù)據(jù)類(lèi)型、常量與符號(hào)常量、變量、C語(yǔ)言的運(yùn)算符和表達(dá)式、賦值運(yùn)算符和賦值表達(dá)式、自增自減運(yùn)算符以及逗號(hào)表達(dá)式等?!魏朴淇斓暮献鳎餐冻?,然后收獲,這是我們都希望看到的也正是我們進(jìn)行課程設(shè)計(jì)的目的所在。而且我也明白了C語(yǔ)言的簡(jiǎn)潔,使用靈活方便,運(yùn)算符豐富,表達(dá)能力強(qiáng)。還有數(shù)計(jì)類(lèi)型豐富,目標(biāo)程序質(zhì)量高,具有面向硬件系統(tǒng)的特點(diǎn),具有結(jié)構(gòu)化的控制語(yǔ)句和模塊化的程序結(jié)構(gòu),具有編譯預(yù)處理功能,而且程序設(shè)計(jì)自由度大,可移植性好?!顒P凱雖然設(shè)計(jì)內(nèi)容繁多,過(guò)程繁瑣但我的收獲卻更加豐富。各種組件的運(yùn)用,各種算法的應(yīng)用,各種控件的利用我都是隨著設(shè)計(jì)的不斷深入而不斷熟悉并逐步掌握的。從而啟發(fā)我,要想寫(xiě)好程序,在寫(xiě)好課本知識(shí)的同時(shí)還需要多讀和專(zhuān)業(yè)有關(guān)的一些書(shū)籍,同時(shí)還需要多動(dòng)腦子,盡量把所學(xué)的知識(shí)綜合起來(lái)應(yīng)用,力爭(zhēng)寫(xiě)出完美的程序?!铈面煤屠蠋熞约巴瑢W(xué)的溝通交流更使我對(duì)程序整體的規(guī)劃與設(shè)計(jì)有了新的認(rèn)識(shí)也對(duì)自己提出了新的要求。本程序在剛開(kāi)始調(diào)試時(shí)有許多錯(cuò)誤,但在我的努力及同學(xué)的幫助下都被一一克服,在剛開(kāi)始的幾次調(diào)試中曾經(jīng)出現(xiàn)過(guò)不能運(yùn)行等等問(wèn)題。經(jīng)過(guò)我的努力及同學(xué)的幫助,這些問(wèn)題得到克服,并且使程序的功能也得到了一定的完善———————————張娣提高是有限的但提高也是全面的,正是這一次設(shè)計(jì)讓我積累了許多實(shí)際經(jīng)驗(yàn),也必然會(huì)讓我在未來(lái)的工作學(xué)習(xí)中表現(xiàn)出更高的應(yīng)變能力和理解力除此之外,我還得到了一些有用的教訓(xùn):寫(xiě)程序時(shí)必須要細(xì)心,不能輸錯(cuò)一個(gè)字符標(biāo)點(diǎn),就連全角半角也得注意。在修改時(shí)要有耐心,編譯出錯(cuò)后必須逐個(gè)錯(cuò)誤去改正,絕不能心急浮躁,否則修改之后還會(huì)有新的錯(cuò)誤?!啾蝽樌缙诘耐瓿杀敬握n程設(shè)計(jì)給了我很大的信心,但是也讓多不足的地方,學(xué)習(xí)其實(shí)就是一個(gè)不斷完善的過(guò)程,正視自己的不足之處,在以后的工作和學(xué)習(xí)中不斷的彌補(bǔ)這些不足之處,在以后的生活中也要保持同樣的態(tài)度,不斷的完善自己。。在這次設(shè)計(jì)過(guò)程中,不僅復(fù)習(xí)課本上所學(xué)知識(shí),還通過(guò)查資料、問(wèn)同學(xué)學(xué)到了課本上沒(méi)有的知識(shí)?!煸旅纷恿?、總結(jié)6.1知識(shí)點(diǎn)1數(shù)組的應(yīng)用。2全局變量的應(yīng)用。3按鍵的處理。4探索函數(shù)。5.功能擴(kuò)充、修改程序,設(shè)初級(jí)、中級(jí)、高級(jí)三個(gè)等級(jí),初級(jí)地雷數(shù)較少,在15個(gè)以?xún)?nèi),中級(jí)在15到30個(gè),高級(jí)則擴(kuò)大棋盤(pán)為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ù)從鍵盤(pán)獲得程序需要的按鍵*/{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鍵向下移動(dòng)光標(biāo)*/{jj+=1;redraw(m,n,d);}break;caseLEFT:/*LEFT鍵向下移動(dòng)光標(biāo)*/if(ii>1){ii-=1;redraw(m,n,d);}break;caseRIGHT:/*RIGHT鍵向下移動(dòng)光標(biāo)*/if(ii<m){ii+=1;redraw(m,n,d);}break;caseSPACE:/*空格鍵認(rèn)為無(wú)雷打開(kāi)*/{b[jj][ii]=1;if(a[jj][ii]==0)tansuo(jj,ii,n,m);}redraw(m,n,d);break;caseENTER:/*回車(chē)鍵認(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重畫(huà)函數(shù)在用戶(hù)有操作后,重畫(huà)游戲畫(huà)面*/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è)各自周?chē)椎膫€(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è)立體效果的小格子*/}/*畫(huà)雷(drawlei)函數(shù)用于繪制給定坐標(biāo)位置的雷雷畫(huà)在格子的正中心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);/*畫(huà)多個(gè)小園形成雷外殼*/line(x+d/2,y+3,x+d/2,y+d-3);/*畫(huà)雷外殼上的刺*/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è)小格子繪制為三維效果這是該格子未被打開(kāi)時(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è)小格子繪制為二維效果這是該格子未被打開(kāi)時(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);}/*畫(huà)爆炸雷(drawBZlei)函數(shù)用于繪制給定坐標(biāo)位置的爆炸雷雷畫(huà)在格子的正中心格子背景色為紅色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);}/*畫(huà)光標(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025黑龍江哈爾濱工業(yè)大學(xué)機(jī)電工程學(xué)院精密超精密加工研究團(tuán)隊(duì)招聘考試重點(diǎn)試題及答案解析
- 綠色能源項(xiàng)目合作開(kāi)發(fā)協(xié)議條款
- 智慧醫(yī)院合同
- 2025年南平浦城縣醫(yī)療單位醫(yī)療類(lèi)儲(chǔ)備人才引進(jìn)參考筆試題庫(kù)附答案解析
- 2025年合肥市檔案館公開(kāi)招聘政府購(gòu)買(mǎi)服務(wù)崗位人員2名考試重點(diǎn)題庫(kù)及答案解析
- 國(guó)際貿(mào)易業(yè)務(wù)員年度工作成果考核表
- 工程項(xiàng)目監(jiān)理安全管理與項(xiàng)目完成率績(jī)效評(píng)定表
- 產(chǎn)品設(shè)計(jì)評(píng)審會(huì)議記錄表與改進(jìn)建議
- 企業(yè)合同范本與風(fēng)險(xiǎn)控制清單
- 我的夢(mèng)想是當(dāng)一名科學(xué)家想象作文(11篇)
- 鋼筋籠制作協(xié)議書(shū)
- DB21∕T 3165-2025 鋼纖維混凝土預(yù)制管片技術(shù)規(guī)程
- 廣西崇左市江州區(qū)2025-2026學(xué)年七年級(jí)上學(xué)期第三階段素質(zhì)評(píng)價(jià)歷史試題 (含答案)
- 2025ACR指南:系統(tǒng)性紅斑狼瘡的治療課件
- 消防安全培訓(xùn)課件
- 2025及未來(lái)5年印染布料項(xiàng)目投資價(jià)值分析報(bào)告
- (2025年)醫(yī)學(xué)裝備管理試題(帶答案)
- 車(chē)間后備人才現(xiàn)狀匯報(bào)
- 2025年及未來(lái)5年中國(guó)高功率連續(xù)光纖激光器行業(yè)發(fā)展監(jiān)測(cè)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年常見(jiàn)非標(biāo)機(jī)械設(shè)計(jì)師面試題及答案
- 員工冬季出行安全
評(píng)論
0/150
提交評(píng)論