




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)多功能汽車電噴嘴電腦檢測(cè)儀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)五星水壺?cái)?shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 統(tǒng)編版三年級(jí)語文下冊(cè)期中達(dá)標(biāo)測(cè)試卷(含答案)
- 吉林省長(zhǎng)春市榆樹市2024-2025學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題(含答案)
- 園林施工員試題及答案
- 2025年消防設(shè)施操作員之消防設(shè)備中級(jí)技能每日一練試卷A卷含答案
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)通關(guān)提分題庫(kù)(考點(diǎn)梳理)
- 2020年遼寧省沈陽(yáng)市中考地理試卷(含答案)
- 2025年天津市專業(yè)技術(shù)人員公需考試試題-全面推動(dòng)經(jīng)濟(jì)與民生領(lǐng)域改革推動(dòng)中國(guó)經(jīng)濟(jì)高質(zhì)量發(fā)展
- 高等教育自學(xué)考試《00074中央銀行概論》模擬試卷二
- 公司內(nèi)部辦公用品采購(gòu)預(yù)算表
- 四川省南充市2025屆高三下學(xué)期高考適應(yīng)性考試(二診)語文試題(含答案)
- 湖北省2025屆高三下學(xué)期2月調(diào)考語文試題及參考答案
- 2025年《地陪導(dǎo)游服務(wù)程序》公開課標(biāo)準(zhǔn)教案
- 愛耳日完整課件
- 云南省2025年中考化學(xué)第三次模擬考試試題含答案
- 系統(tǒng)集成項(xiàng)目售后服務(wù)方案
- 2024年南寧市良慶區(qū)招聘專職化城市社區(qū)工作者筆試真題
- 蘇科版(2025新版)八年級(jí)下冊(cè)物理第七章 力 單元測(cè)試卷(含答案)
- 游戲跨文化傳播-洞察分析
- 期貨基礎(chǔ)知識(shí)分享課件
評(píng)論
0/150
提交評(píng)論