C語言課程設(shè)計(jì)(俄羅斯方塊)_第1頁(yè)
C語言課程設(shè)計(jì)(俄羅斯方塊)_第2頁(yè)
C語言課程設(shè)計(jì)(俄羅斯方塊)_第3頁(yè)
C語言課程設(shè)計(jì)(俄羅斯方塊)_第4頁(yè)
C語言課程設(shè)計(jì)(俄羅斯方塊)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)訓(xùn)報(bào)告CHRHG5HU iHSTiTUTt: Or TECHnOLOGV實(shí)訓(xùn)報(bào)告21實(shí)訓(xùn)名稱:院 系:專 業(yè):C語言課程設(shè)計(jì)(俄羅斯方塊)計(jì)算機(jī)科學(xué)與工程學(xué)院1=1ejai物聯(lián)網(wǎng)工程班 級(jí):152學(xué)號(hào): 092615219 姓 名:姚鋒指導(dǎo)教師:靳顏清 開課時(shí)間:2015至2016學(xué)年短學(xué)期、需求分析1.1需求概述1.11市場(chǎng)需求:俄羅斯方塊游戲是一個(gè)經(jīng)典的小游戲,由于它操作簡(jiǎn)單,上到老人、下到小孩都可以玩,曾廣受人們歡迎?,F(xiàn)在游 戲之風(fēng)盛行,一款款畫面精美、音樂動(dòng)聽的大型游戲就在我們身邊,但需要投 入大量的人力、物力去開發(fā),還需要發(fā)大量 的精力去玩,而且特別容易上癮?,F(xiàn)在的人,也許大都不屑

2、于玩俄羅斯方塊這種“弱智”的游戲,但仔細(xì)觀察,我們身邊 還是有人玩這個(gè)的。俄羅斯方塊 也確實(shí)是一個(gè)很不錯(cuò)的休閑游戲。1-12對(duì)功能需求:功能界面:游戲開始,音樂響起,讓人感覺到是一種享受,這時(shí),由計(jì)算機(jī)隨機(jī)產(chǎn)生所定義的圖形,記錄所產(chǎn)生的 圖形的形狀的數(shù)目,無操作時(shí),方塊豎直緩慢下落,圖形在接觸障礙物之前,可以由鍵盤控制向左右下移動(dòng),向下加速或翻轉(zhuǎn),可以進(jìn)行暫停,當(dāng)某一行被下落的方塊填滿后消除并計(jì)分。1 -2功能簡(jiǎn)介1-21.隨機(jī)產(chǎn)生俄羅斯方塊圖形1-22.方向鍵和wasdrz實(shí)現(xiàn)下落方塊的左移、右移、加速下落、變形、交換等基本操作1.23.正確判斷游戲結(jié)束1-24 對(duì)游戲成績(jī)進(jìn)行記分注:運(yùn)行環(huán)

3、境windows 7控制臺(tái)(80 * 43 );二、總體設(shè)計(jì)2.1開發(fā)環(huán)境與工具開發(fā)環(huán)境:CodeBlocks工具:prosesson2.2游戲總模塊流程圖(見圖2.2 )圖2.2游戲總模塊流程圖三、詳細(xì)設(shè)計(jì)3.1 模塊介紹(創(chuàng)建,預(yù)覽下一個(gè)方塊和刪除方塊模塊)3.11開始動(dòng)畫和文字顯示(見圖3.11 )過程中會(huì)等待按鍵圖3.11開始動(dòng)畫在本模板下,首先在界面底部會(huì)同時(shí)出現(xiàn)兩個(gè)簡(jiǎn)單的小人迎面相遇,接著,觸發(fā),等待過程中Tetris字樣會(huì)進(jìn)行顏色變化,實(shí)現(xiàn)閃動(dòng)效果,按任意鍵即可開始游戲。3.12隨機(jī)創(chuàng)建方塊的代碼函數(shù)名:int creat_block()函數(shù)描述:制作方塊函數(shù)函數(shù)功能:實(shí)現(xiàn)俄羅斯

4、方塊制作方塊的功能輸入:NULL輸出:NULL備 注:實(shí)現(xiàn)方塊的制作在本模塊下,我們要完成當(dāng)前方塊的創(chuàng)建和下一個(gè)方塊的提前創(chuàng)建與預(yù)覽。圖3.12隨機(jī)創(chuàng)建方塊3.13刪除方塊函數(shù)名:int delete_block(int x,int y,int shape ,int status )函數(shù)描述:在指定位置消除指定方塊函數(shù)函數(shù)功能:實(shí)現(xiàn)俄羅斯方塊消除方塊的功能輸入:x,y,shape,status輸出:NULL備注:實(shí)現(xiàn)消除方塊,為下面的消行做鋪墊在本模塊下/我們要根據(jù)操作者對(duì)方塊發(fā)出的移動(dòng)指令,對(duì)之前位置的方塊做正確的刪除。® 3.13刪除方塊流程圖3.14結(jié)束界面當(dāng)操作者在按下N (

5、n)鍵之后,屏幕上會(huì)出現(xiàn)lose字幕和一堆由1與0兩個(gè)數(shù)字組 成的亂碼,表明游戲已經(jīng)結(jié)束,最后按任意鍵退出整個(gè)游戲界面。3.2核心代碼3.21 隨機(jī)創(chuàng)建方塊的代碼int creat_block()shape=block_ next_shape;status=block next status;block colour=block next colour;block_x=17;block_y=1;n ext_block();block_xj(shape);int n ext_block()delete_block(NEXT_BLOCK_X,NEXT_BLOCK_Y,block_ next_sha

6、pe,block_ next_status);block_ next_colour=ra nd()%(0x10);block_ next_shape=ra nd()%7;block next status=ra nd()%4;if(block_ next_colour=OxOO)block next colour=OxOf;prin tf_block(NEXT_BLOCK_X5NEXT_BLOCK_Y,block_ next_shape,block_ next_status,block_ next_colour);3.22 刪除方塊的代碼int delete_block(i nt xj nt

7、y,i nt shape ,int status )int i,j;for(i=0;iv4;i+) for(j=0;jv4;j+)|cursor(j+x,i+y);if(blocksshapestatusij=1)RSetCo nsoleTextAttribute(ha ndle ,0x00); printf(" ”);3.23 開始動(dòng)畫以及開始文字intdh()int k1 =0,k2=0,k3=0,k4=0;clock_t now3;clock_t Iast3;last3 =clock();int k5=0,k6=0,k7=0,k8=0;clock_t now4;clock_t

8、Iast4;last4 =clock();int i=0;while(i<7)no w3=clock();while( no w3-last3>0.35f*CLOCKS_PER_SEC)no w3=clock();while( no w3-last3<0.01 f*CLOCKS_PER_SEC)no w3=clock();Iast3=clock();cursor(7+1 +k1,16-k1 );SetConsoleTextAttribute(handle ,OxOO);printf(" ");k1 +; cursor(7+1 +k2,17-k2);SetC

9、onsoleTextAttribute(handle ,OxOO);printf(" ");k2+;cursor(6+1 +k3,18-k3);SetCo nsoleTextAttribute(ha ndle,OxOO);pri ntf("”);k3+;cursor(6+1 +k4,19-k4);SetCo nsoleTextAttribute(ha ndle,OxOO);pri ntf("”);k4+;cursor(7+1 +k1,16-k1 );SetConsoleTextAttribute(handle ,OxOa);printf("-&

10、quot;); cursor(7+1 +k2,17-k2);SetConsoleTextAttribute(handle ,OxOa);printf("OH); cursor(6+1 +k3,18-k3);SetConsoleTextAttribute(handle ,OxOa);printf("< Y >");cursor(6+1 +k4,19-k4);SetConsoleTextAttribute(handle ,OxOa);printf('7/ ”); cursor(7+2+18-k5,16-k5);SetConsoleTextAttri

11、bute(handle ,OxOO);printf(" ”);k5+; cursor(7+2+18-k6,17-k6);SetConsoleTextAttribute(handle ,OxOO);printf(M ”);k6+; cursor(6+2+18-k7,18-k7);SetCo nsoleTextAttribute(ha ndle,0x00);pri ntf("”);k7+;cursor(6+2+18-k8,19-k8);SetCo nsoleTextAttribute(ha ndle,0x00);pri ntf("”);k8+;cursor(7+2+1

12、8-k5,16-k5);SetConsoleTextAttribute(handle 5OxOb);printf("J,);cursor(7+2+18-k6,17-k6);SetConsoleTextAttribute(handle ,OxOb);printf("O"); cursor(6+2+18-k7,18-k7);SetConsoleTextAttribute(handle ,OxOb);printf("< F >");cursor(6+2+18-k8,19-k8);SetConsoleTextAttribute(handle

13、 ,OxOb);printf(H");i+;if(i=7) UrCarx,int game_star()dh();clock_t clock_ no w,clock_last; clock_last=clock();while(1)clock_ no w=clock();if(clock_ now-clockjast < 0.33f * CLOCKS_PER_SEC)SetCo nsoleTextAttribute(ha ndle ,(ra nd()%(0x10);cursor(3,3);printf(” ");cursor(3,5); prin tf(”')

14、;cursor(3,7); prin tf("”);cursor(5,4);printf(H;cursor(5,6);printf(H ”);cursor(9J4);printf(n;cursor(9,6);printf(n ”);cursor(17,4);printf(” ”);cursor(17,6);printf(u ”);cursor(21,4);printff' ”);cursor(25,4);printf(H ”);cursor(21,6);printf(” ”);cursor(24,6);printfC' ”);cursor(29,4);printfC&

15、#39; ");cursor(29,6);printf(” ”);cursor(33,4);printf(” ”);cursor(37,6);printf(” ”);SetCo nsoleTextAttribute(ha ndle ,0x0e); clock_last=clock_ now;SetCo nsoleTextAttribute(ha ndle ,(ra nd()%(0x10); cursor(15,17);printff按任意鍵開始”);if(kbhit() getch(); clear_p(); return 0;3.24 游戲結(jié)束int gameover()inti;

16、han die = GetStdHa ndle(STD_OUTPUT_HANDLE); clock_t time_ no w,time_last;timeast=clock();for(i=700;i>=0;i-)while(i)time_no w=clock();if(time_now-time_last>0.45F * CLOCKS_PER_SEC)SetConsoleTextAttribute(handle ,0x0a); cursor(ra nd()%84,ra nd()%25);prin tf 0”);SetConsoleTextAttribute(handle ,0x0

17、a); cursor(ra nd()%84,ra nd()%25);prin tfCM");SetConsoleTextAttribute(handle ,0x0a); cursor(ra nd()%84,ra nd()%25);prin tf 0”);SetConsoleTextAttribute(handle ,0x0a); cursor(ra nd()%84,ra nd()%25);prin tf(u1M);SetCo nsoleTextAttribute(ha ndle ,(ra nd()%(0x10);cursor(4,4);printf(M H);cursor(4,5);

18、printf(M ”);cursor(4,6);printf(H ,);cursor(4,7);printf(H ”); cursor(4,8);printf(" H);cursor(4,9);printf(H ”); cursor(5,9);printf(K ”);cursor(10,4);printf(”;cursor(10,5);pri ntf(” cursor(10,6);pri ntf(” cursor(10,8);pri ntf(”cursor(11,4);pri ntf(” cursor(1335);pri ntf(" cursor(13,7);pri ntf

19、(K cursor(13,9);pri ntf(” cursor(17,4);pn ntf(”); ”);cursor(10,7);printf(” ”); H);cursor(10,9);printf(" ”); n);cursor(13,4);printf(H "); ”);cursor(13,6);printf(” ”); ”);cursor。3,8);pri ntf(” ”); ”);cursor(11,9);pri ntf(” . ”);cursor(17,5);pri ntf(” .”); ”);cursor(20,7);pri ntf(” .“); n);cu

20、rsor(20,9);pri ntf(” .“); ”);cursor(17,7);printf(“ ”); ,);cursor(26,4);printf(u ”); ”);cursor(26,9);printf(“ ”); n);cursor(25,5);pri ntf(” .“); H);cursor(25,7);pri ntf(" .“); ”);cursor(25,9);pri ntf(” .“);cursor(佃,6加0rintfC'按任意鍵矢閉屏幕”);cursor(20,8);printf(”cursor(18,4);printf(”cursor(17,9);p

21、rintf(”cursor(26,7);printf(Hcursor(25,4);printf(”cursor(25,6);printf(”cursor(25,8);printf(”回二三方制 控向O筆 ¥ kufiJf /、* 11ftB 暮警觀UAIXXXXXXXXXXXX XXX xxxxxxMr十 OOOOOOD1OOO)z二數(shù)數(shù)00002222121叢疹命方拱墨訴,1003010011!詢o&i 1IS| 1111B18 111 11B1I 1B10等級(jí)卑作說明Author:姚鋒控制方向運(yùn)行結(jié)果(二)X0 11010(1 10 1I0 11101111110tll3

22、1 R1R03010 01 Bl 811831113103111 1B1011BQLOC0 0 10101011101aiai 3 11C1011 181 QI 3 911131 1100H0 10L1 01311 3 OIL 1F»1 Oel 10110001 ;0 fill Bit aiei 01 mil I 010 1Bl IS "11 1018311011101 1 1001010 01 1110 0Oil Bl 11BB110 MB10111111101011101110 0110 0101010 ill DID _L_L0101U1L1LQ0113110 01J

23、1U1 ill 00J11U0 1ti_L:ioiL10113011 110101BIS1 10110 如 HOI10111110 H31108anmiQi 1 01B11031B13BIB B1S119L0B611011 1QIQIL101LQ101OLQ110(dlQ010101101JL ujljlujLOI)1010 1 010 il0 0 11013 01010101Q101001» 1 101091010101 IL1 111011111 |0991090 010101001 | 1QUO0911110 0 1011 11 1109111103 01Q191 JLJL01110

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論