版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、小熊尋寶學(xué) 號(hào)_10072127_姓 名_指導(dǎo)教師_ _2010年12月1需求分析.31.1功能與數(shù)據(jù)需求.31.2界面需求.41.3開發(fā)與運(yùn)行環(huán)境需求.52概要設(shè)計(jì).52.1主要數(shù)據(jù)結(jié)構(gòu).52.2程序總體結(jié)構(gòu).63詳細(xì)設(shè)計(jì).64測(cè)試.265用戶手冊(cè).276總結(jié)提高.281 需求分析我所做的課程設(shè)計(jì)是小熊尋寶,是一款可以放松人心情的游戲程序,并且可以鍛煉人的反應(yīng)能力1.1 功能與數(shù)據(jù)需求基本功能:用戶控制小熊,小熊共有三條命,地圖上會(huì)出現(xiàn)墻和4種隨機(jī)出現(xiàn)的物品,有三種物品是加分的(分別為1,2,3分),還有一種是障礙物,小熊通過用戶按上下左右鍵在地圖范圍內(nèi)移動(dòng),根據(jù)位置是空白,寶物,圍墻,還是
2、障礙物做出相應(yīng)操作,當(dāng)生命值為0時(shí)game over,游戲退出。擴(kuò)展功能:暫停功能,調(diào)節(jié)速度功能1.1.1提供圖形界面游戲主界面為一封閉的圍墻,屏幕右上角顯示生命值和分?jǐn)?shù),圍墻為矩形小方塊(中間畫有橫線),初始化小熊,寶物,障礙物的位置,小熊為粉紅色實(shí)心圓,三種寶物分別為綠色實(shí)心圓,黃色實(shí)心圓和藍(lán)色實(shí)心圓,障礙物為灰色實(shí)心圓1.1.2鍵盤控制游戲及計(jì)分機(jī)制用上下左右鍵控制小熊,如果碰到寶物(障礙物),寶物(障礙物)消失,更新分?jǐn)?shù)和生命值,并在其他位置隨機(jī)產(chǎn)生寶物(障礙物),如果不按任何鍵,小熊自行在當(dāng)前方向上移動(dòng),當(dāng)游戲者按有效的方向鍵后,小熊根據(jù)指示進(jìn)行移動(dòng)。1.1.3寶物(障礙物)的隨機(jī)產(chǎn)
3、生利用random()函數(shù)定時(shí)產(chǎn)生隨機(jī)數(shù)并將隨機(jī)數(shù)縮小到符合場(chǎng)景大小的范圍中,以此作為寶物(障礙物)位置的橫縱坐標(biāo)。若隨機(jī)產(chǎn)生的位置和小熊的身體有沖突,則重新產(chǎn)生1.1.4結(jié)束判斷如果生命值降為0,則游戲結(jié)束,出現(xiàn)game over圖形界面,隨之關(guān)閉圖形系統(tǒng)1.1.5暫停功能在游戲中,如果玩家按下f1鍵,則進(jìn)入暫停模式,若玩家再按一下26個(gè)字母的其中一個(gè)鍵,則恢復(fù)游戲1.1.6速度調(diào)節(jié)功能當(dāng)玩家的得分超過10分時(shí),小熊移動(dòng)速度會(huì)加快一倍,若玩家得分繼續(xù)超過50分時(shí),小熊移動(dòng)速度又會(huì)加快一倍1.2 界面需求(四號(hào)字、黑體)第一個(gè)圖形界面上方介紹了4種寶物(障礙物)的特征,下方為游戲名稱“xiao
4、 xiong xun bao”,背景色為黑色第二個(gè)圖形界面為游戲界面,小熊的移動(dòng)區(qū)域分為8*8的方格,背景色為黑色,字符顏色為紅色,圍墻的長(zhǎng)度為10個(gè)方格的長(zhǎng)度第三個(gè)圖形界面為游戲結(jié)束界面,背景色為黑色,中央顯示出game over字樣1.3 開發(fā)與運(yùn)行環(huán)境需求tc3.0,運(yùn)行環(huán)境為windows xp2 概要設(shè)計(jì)2.1 主要數(shù)據(jù)結(jié)構(gòu)struct foodint x4;/*4種食物的橫坐標(biāo)*/int y4;/*4種食物的縱坐標(biāo)*/int flag;/*是否需要出現(xiàn)新食物*/food;/*食物的結(jié)構(gòu)體/struct bearint x1;/*熊的橫坐標(biāo)*/int y1;/*熊的縱坐標(biāo)*/int
5、dir;/*熊的方向*/int life;/*熊的生命*/int grade;/*分?jǐn)?shù)*/bear;/*熊的結(jié)構(gòu)體*/2.2 程序總體結(jié)構(gòu)void gameover()/*游戲結(jié)束函數(shù)*/void dwall()/*畫地圖函數(shù)*/void tishijiemian()/*顯示提示界面函數(shù)*/void play()/*游戲函數(shù)*/3詳細(xì)設(shè)計(jì)#include#include#include#include#include#include#include#include#define left 0x4b00#define right 0x4d00#define up 0x4800#define do
6、wn 0x5000#define f1 0x3b00int key;/*接受返回鍵碼的變量*/struct foodint x4;int y4;int flag;food;struct bearint x1;int y1;int dir;int life;int grade;bear;char buf100;/*顯示字符所需的字符型數(shù)組*/char word220=game over!;char word320=grade+1;char word420=hp:;char word520=grade:;char word620=grade+2;char word720=grade+3;char
7、word820=grade-1,life-1;char word920=xiao xiong xun bao;void gameover()settextstyle(0,0,3);/*字符顯示模式*/outtextxy(200,200,word2);/*輸出字符*/delay(1000);/*延遲1000后退出*/void dwall()int a;setbkcolor(black);/*設(shè)置黑色背景色*/setcolor(red);/*設(shè)置紅色前景色*/settextstyle(0,0,1);rectangle(0,0,710,510);/*畫一個(gè)長(zhǎng)710,寬510的矩形*/for(a=50
8、;a550;a=a+50)line(a,0,a,500);/*每隔50長(zhǎng)度畫一個(gè)豎線*/for(a=10;a50;a=a+10)line(a,0,a,500);/*每隔10長(zhǎng)度畫一個(gè)豎線*/for(a=50;a500;a=a+50)line(0,a,500,a); /*每隔50長(zhǎng)度畫一個(gè)橫線*/for(a=10;a50;a=a+10)line(0,a,500,a); /*每隔10長(zhǎng)度畫一個(gè)橫線*/for(a=460;a500;a=a+10) line(a,0,a,500); /*每隔10長(zhǎng)度畫一個(gè)豎線*/for(a=460;a500;a=a+10) line(0,a,500,a); /*每隔1
9、0長(zhǎng)度畫一個(gè)橫線*/void tishijiemian()setbkcolor(black);settextstyle(0,0,3);setcolor(red);setfillstyle(solid_fill,yellow);/*用黃色實(shí)心填充*/circle(30,30,20);/*畫一個(gè)圓心(30,30),半徑20的圓*/floodfill(31,31,red);/*將圓填充為黃色*/outtextxy(55,30,word3);/*輸出word3的字符*/setfillstyle(solid_fill,blue);circle(30,100,20);floodfill(31,101,re
10、d);outtextxy(55,100,word6);setfillstyle(solid_fill,green);circle(30,170,20);floodfill(31,171,red);outtextxy(55,170,word7);setfillstyle(solid_fill,darkgray);circle(30,220,20);floodfill(31,221,red);outtextxy(55,220,word8);settextstyle(0,0,2);outtextxy(120,320,word9);delay(4000);cleardevice();/*將圖形全部清空
11、*/void play()int a,b=0,c1,c2,c3,c4,d=1,x=200;char z;dotextcolor(red);/*將字符顏色設(shè)置為紅色*/textbackground(blue);/*將背景顏色設(shè)置為藍(lán)色*/outtextxy(515,15,word4);outtextxy(515,35,word5);bar(530,12,540,22);/*填充一個(gè)矩形*/sprintf(buf,%2d,bear.life);/*顯示熊的生命*/outtextxy(530,15,buf);bar(560,30,575,40);sprintf(buf,%2d,bear.grade)
12、; /*顯示熊的分?jǐn)?shù)*/outtextxy(560,35,buf);for(;b4;b+)/*將四種寶物的坐標(biāo)隨機(jī)產(chǎn)生*/dofood.xb= random(400)+26;food.yb=random(400)+26; while(food.xb%25!=0|food.yb%25!=0);/*保證圖像出現(xiàn)在格內(nèi)*/ if(food.xb%50=0) food.xb+=25; if(food.yb%50=0) food.yb+=25; food.flag=3;if(food.flag=3)/*如果寶物數(shù)為4個(gè)*/ /*將4種寶物顯示在屏幕上*/c1=0;setcolor(red);setfil
13、lstyle(solid_fill,yellow);circle(food.xc1,food.yc1,20);floodfill(food.xc1+1,food.yc1+1,red);c2=1;setcolor(red);setfillstyle(solid_fill,blue);circle(food.xc2,food.yc2,20);floodfill(food.xc2+1,food.yc2+1,red);c3=2;setcolor(red);setfillstyle(solid_fill,green);circle(food.xc3,food.yc3,20); floodfill(foo
14、d.xc3+1,food.yc3+1,red);c4=3;setcolor(red);setfillstyle(solid_fill,darkgray);circle(food.xc4,food.yc4,20);floodfill(food.xc4+1,food.yc4+1,red);switch(bear.dir)/*判斷熊當(dāng)前的方向,case1,2,3,4的功能都近似,因此只解釋case1*/case 1:while(!kbhit()&bear.x1475)/*如果無鍵盤響應(yīng),熊向右走并且熊的橫坐標(biāo)小于475*/bear.x1+=50;/*熊橫坐標(biāo)+50*/*清除熊上一坐標(biāo)的圖像,并把熊圖
15、像在現(xiàn)坐標(biāo)顯示*/setcolor(red);setfillstyle(solid_fill,black);circle(bear.x1-50,bear.y1,20);floodfill(bear.x1-49,bear.y1+1,red);setcolor(black);setfillstyle(solid_fill,black); circle(bear.x1-50,bear.y1,20);delay(100);setcolor(red);setfillstyle(solid_fill,lightmagenta);circle(bear.x1,bear.y1,20);floodfill(be
16、ar.x1+1,bear.y1+1,red);delay(x); /*判斷熊是否吃到寶物*/for(d=0;d25)bear.x1-=50; setcolor(red);setfillstyle(solid_fill,black);circle(bear.x1+50,bear.y1,20);floodfill(bear.x1+51,bear.y1+1,red);setcolor(black);setfillstyle(solid_fill,black); circle(bear.x1+50,bear.y1,20);delay(100);setcolor(red);setfillstyle(so
17、lid_fill,lightmagenta);circle(bear.x1,bear.y1,20);floodfill(bear.x1+1,bear.y1+1,red);delay(x);for(d=0;d25)bear.y1-=50;setcolor(red);setfillstyle(solid_fill,black);circle(bear.x1,bear.y1+50,20);floodfill(bear.x1+1,bear.y1+49,red);setcolor(black);setfillstyle(solid_fill,black); circle(bear.x1,bear.y1+
18、50,20);delay(100);setcolor(red);setfillstyle(solid_fill,lightmagenta);circle(bear.x1,bear.y1,20);floodfill(bear.x1+1,bear.y1+1,red);delay(x);for(d=0;d4;d+)if(bear.x1=food.xd&bear.y1=food.yd)setcolor(red);setfillstyle(solid_fill,black);floodfill(bear.x1-24,bear.y1-24,red);dofood.xd= random(400)+26;fo
19、od.yd=random(400)+26; while(food.xd%25!=0|food.yd%25!=0); if(food.xd%50=0) food.xd+=25; if(food.yd%50=0) food.yd+=25;if(d=3)bear.life-=1;if(d=0)bear.grade+=1;if(d=1)bear.grade+=2;if(d=2)bear.grade+=3; break;case 4:while(!kbhit()&bear.y1475)bear.y1+=50;setcolor(red);setfillstyle(solid_fill,black);cir
20、cle(bear.x1,bear.y1-50,20);floodfill(bear.x1+1,bear.y1-51,red);setcolor(black);setfillstyle(solid_fill,black); circle(bear.x1,bear.y1-50,20);delay(100);setcolor(red);setfillstyle(solid_fill,lightmagenta);circle(bear.x1,bear.y1,20);floodfill(bear.x1+1,bear.y1+1,red);delay(x);for(d=0;d4;d+)if(bear.x1=
21、food.xd&bear.y1=food.yd)setcolor(red);setfillstyle(solid_fill,black);floodfill(bear.x1-24,bear.y1-24,red);dofood.xd= random(400)+26;food.yd=random(400)+26; while(food.xd%25!=0|food.yd%25!=0); if(food.xd%50=0) food.xd+=25; if(food.yd%50=0) food.yd+=25;if(d=3)bear.life-=1;if(d=0)bear.grade+=1;if(d=1)b
22、ear.grade+=2;if(d=2)bear.grade+=3; break; /*如果熊撞墻*/if(bear.x1=475)if(bear.dir=1)bear.life-=1;if(bear.y1=475)if(bear.dir=4)bear.life-=1;if(bear.life=0)/*如果熊生命值為0*/break;/*游戲結(jié)束*/key=bioskey(0);/*用鍵盤響應(yīng)來控制小熊上下左右移動(dòng)*/ switch(key) case up:bear.dir=3; break; case down:bear.dir=4; break; case right:bear.dir=1; break; case left:bear.dir=2; break; case f1:/*暫停功能,按f1暫停*/ z=getch();/*再按26個(gè)字母的任意一個(gè)取消暫停*/ break; if(bear.grade10)/*如果熊得分超過十分*/x=100;/*速度加倍*/if(bear.grade50)x=50;whil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位聘用用工合同
- 廠房合同轉(zhuǎn)租協(xié)議模板范本
- 打印機(jī)買賣合同范本
- 個(gè)人二手房買賣合同范本
- 貨物運(yùn)輸服務(wù)框架合同范本
- 不銹鋼板材購(gòu)銷合同
- 設(shè)備安裝工程承包勞務(wù)合同
- 廈門分包合同范本
- 展覽場(chǎng)地租賃、服務(wù)合同
- 星載微波散射計(jì)遙感熱帶氣旋海面風(fēng)場(chǎng)的真實(shí)性檢驗(yàn)方法研究
- 最高法院示范文本發(fā)布版3.4民事起訴狀答辯狀示范文本
- 2024年英語高考全國(guó)各地完形填空試題及解析
- 2024至2030年中國(guó)餐飲管理及無線自助點(diǎn)單系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報(bào)告
- 體育概論(第二版)課件第三章體育目的
- 《氓》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊(cè)
- 化學(xué)元素周期表注音版
- T-GDASE 0042-2024 固定式液壓升降裝置安全技術(shù)規(guī)范
- 香港朗文4B單詞及句子
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第五章運(yùn)動(dòng)中的中樞控制
- 財(cái)務(wù)部規(guī)范化管理 流程圖
評(píng)論
0/150
提交評(píng)論