俄羅斯方塊課程設(shè)計_第1頁
俄羅斯方塊課程設(shè)計_第2頁
俄羅斯方塊課程設(shè)計_第3頁
俄羅斯方塊課程設(shè)計_第4頁
俄羅斯方塊課程設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)生課程設(shè)計(論文)題目:俄羅斯方塊攀枝花學(xué)院本科學(xué)生課程設(shè)計任務(wù)書題目俄羅斯方塊1、課程設(shè)計的目的通過本課程設(shè)計使學(xué)生能夠較全面的掌握面向?qū)ο蟪绦蛟O(shè)計的有關(guān)概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學(xué)的知識,提高自身的編程能力2、課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)實現(xiàn)一個俄羅斯游戲,要求:(1)盡量使用圖形用戶界面方式實現(xiàn)(不作硬性要求)(2)可以實現(xiàn)人機對戰(zhàn),自動判斷勝負(fù)(3)界面美觀3、主要參考文獻4、課程設(shè)計工作進度計劃廳P時間(天)內(nèi)容安排備注11分析設(shè)計準(zhǔn)備周一22編程調(diào)試階段周至周三31編寫課程設(shè)計報告周四41考核周五總計5(天)指導(dǎo)教師(簽字)

2、日期年月日教研室意見:年月日學(xué)生(簽字):接受任務(wù)時間:年月日注:任務(wù)書由指導(dǎo)教師填寫。附件3:課程設(shè)計(論文)指導(dǎo)教師成績評定表題目名稱評分項目分值得分評價內(nèi)涵工作表現(xiàn)20%01學(xué)習(xí)態(tài)度6遵守各項紀(jì)律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。02科學(xué)實踐、調(diào)研7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設(shè)計有關(guān)的材料。03課題工作量7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。能力水平35%04綜合運用知識的能力10能運用所學(xué)知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結(jié)論。05應(yīng)用文獻的能力5能獨立查閱相關(guān)文獻和從事其他調(diào)研;能提出并較好地論述課

3、題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設(shè)計(實驗)能力,方案的設(shè)計能力5能正確設(shè)計實驗方案,獨立進行裝置安裝、調(diào)試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算及計算機應(yīng)用能力5具有較強的數(shù)據(jù)運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設(shè)計等。08對計算或?qū)嶒灲Y(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟分析能力)10具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力。成果質(zhì)量45%09插圖(或圖紙)質(zhì)量、篇幅、設(shè)計(論文)規(guī)范化程度5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求。10設(shè)計說明書(論文)質(zhì)量30綜述簡練完整,有見解;立論正確,論述充

4、分,結(jié)論嚴(yán)謹(jǐn)合理;實驗正確,分析處理科學(xué)。11創(chuàng)新10對前人工作有改進或突破,或有獨特見解。成績指導(dǎo)教師評語指導(dǎo)教師簽名:年月日摘要近年來,隨著游戲產(chǎn)業(yè)的突飛猛進,游戲玩家的技術(shù)也是與日俱增,當(dāng)你看見游戲高手完美的表演時,你是否想過我也能達到那種水平,本程序采用全世界最金典的游戲一俄羅斯方塊作為背景,程序設(shè)置了鼠標(biāo)和鍵盤兩個選擇方式,游戲運行時隨著等級的提高而速度加快,這需要玩家快速操作。因此,本程序主要意義是為高手玩家提供訓(xùn)練平臺。其次也可為剛踏入游戲領(lǐng)域的新手們,提供一個很好的鍛煉機會。本次課程設(shè)計主要解決利用VisualC+般計實現(xiàn)俄羅斯方塊游戲的算法、游戲內(nèi)部功能、游戲區(qū)域的繪圖的程序

5、設(shè)計。對于每個俄羅斯方塊各自的形態(tài)變化改變到下一個形態(tài)利用數(shù)組來實現(xiàn),在程序設(shè)計中,采用WIN32m制來實現(xiàn),并且直接從架構(gòu)的其中一個類對象中繼承下來,將它完善而變成有某功能特性的物件對象。關(guān)鍵詞俄羅斯方塊數(shù)據(jù)結(jié)構(gòu)算法數(shù)組VisualC+才周,I一、緒論,21.1課題背景,2二、課程設(shè)計的要求與目的,32.1 課程設(shè)計的要求,32.2 課程設(shè)計的目的,3三、程序需求分析3.1 功能需求,3.2 方塊及各種變化需求,3.3 操作需求3.31向上鍵,332向下鍵.,3.33向右鍵,.四、程序流程圖4.1主要功能設(shè)計,42程序流程圖.,4.3游戲界面,44生成方塊.,45方塊變形.,1 .6方塊顯示

6、,47 障礙判斷.,48 消行記分.,49 暫停退出.,50 10軟件使用說明,五、源程序代碼5.1源程序代碼,六、程序結(jié)果61程序結(jié)果.,參考文獻,56致謝,第一章緒論俄羅斯方塊是個老幼皆宜的小游戲,是經(jīng)久不衰的一款游戲,自從它誕生那天起就一直深受人們的喜愛。幾乎每個人都玩過這個游戲,也是人們接觸最多的一款游戲,它實現(xiàn)由四塊正方形的色塊組成,然后存儲在一個數(shù)組的四個元素中,計算機隨機產(chǎn)生不同七種類型的方塊,根據(jù)計算機時鐘控制它在一定的時間不停得產(chǎn)生,用戶根據(jù)鍵盤的四個方向翻轉(zhuǎn)、向左、向右和向下操作,(控制鍵的實現(xiàn)是由鍵盤的方向鍵消息函數(shù)實現(xiàn))。然后程序根據(jù)這七種方塊堆疊成各種不停得模型。1.

7、1游戲的背景俄羅斯方塊是一款風(fēng)靡全球的電視游戲機和掌上游戲機游戲,它曾造成的轟動與造成的經(jīng)濟價值可言說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人AlexPajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶飯不思不想的那個俄羅斯方塊時代。俄羅斯方塊最早還是出現(xiàn)在PC機上,而我國的用戶都是通過紅白機了解、喜歡上它的?,F(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯方塊風(fēng)潮。對于一般用戶來說,它的規(guī)則簡單,容易上手,且u、游戲過程變化無窮,俄羅斯方塊游戲現(xiàn)在基本上是每個手機必備的游戲,種類千變?nèi)f化,多種多樣。第二章課程設(shè)計的目的與要求2.1 課程設(shè)計的目的

8、本課程是一個綜合性的實踐教學(xué)環(huán)節(jié),其目的在于促進學(xué)生復(fù)習(xí)和鞏固計算機軟件設(shè)計知識,加深對軟件設(shè)計方法、軟件設(shè)計技術(shù)和設(shè)計思想的理解,并能運用所學(xué)知識進行開發(fā)。希望通過本課程設(shè)計中簡單系統(tǒng)的開發(fā),使學(xué)生掌握軟件設(shè)計的基本方法和基本的流程,提高學(xué)生的綜合應(yīng)用能力。2.2 課程設(shè)計的要求要求用VC+編寫與實現(xiàn)俄羅斯方塊。要求包括系統(tǒng)的需求分析;系統(tǒng)總框圖及每個模塊的設(shè)計分析;算法的設(shè)計與實現(xiàn);游戲的內(nèi)部實現(xiàn);游戲區(qū)域繪畫的實現(xiàn);系統(tǒng)存在的問題及錯誤處理;列出所有定義的函數(shù)及說明;附上源程序;第三章程序需求分析3.1 功能需求隨機給出不同的形狀下落填充給定的區(qū)域,若填滿一條便消掉,記分,設(shè)計不同的游戲

9、難度,即方塊下落的速度不同,若在游戲中各形狀填滿了給定區(qū)域為輸者。3.2 方塊及各種變換需求本游戲需要七種方塊,而每種方塊還可以進行旋轉(zhuǎn)。每種方塊每行每列最多只有4個小方塊。可以將它們放在一個n*m的區(qū)域內(nèi),該區(qū)域可以看做是有許多個等面積小方塊構(gòu)成的區(qū)域,而這些區(qū)域的狀態(tài)只有兩種,被方塊占據(jù)或空閑。因此,對于整個游戲區(qū)域的空間是被占據(jù)或空閑,可以用一位數(shù)來標(biāo)識。對于七種方塊和它們旋轉(zhuǎn)后的形態(tài)我們可以用不同的標(biāo)識進行標(biāo)記。對于旋轉(zhuǎn),游戲中所有方塊都是按照逆時針旋轉(zhuǎn)的規(guī)則進行的,而且在旋轉(zhuǎn)過程中它們不會因為旋轉(zhuǎn)而下降,總會保持在同一高度。任何方塊經(jīng)過一個旋轉(zhuǎn)周期還會變回原型。3.3 操作需求3.3

10、1 向上鍵產(chǎn)生方塊旋轉(zhuǎn)操作,方塊并非任何情況都能旋轉(zhuǎn),如果旋轉(zhuǎn)后與小方塊矩陣顯示的方塊有沖突或超出邊界是,均不發(fā)生旋轉(zhuǎn)。因此首先要判斷是否有足夠的空間進行旋轉(zhuǎn)。然后是旋轉(zhuǎn)是否旋轉(zhuǎn)。3.32 向下鍵產(chǎn)生方塊加速下落操作,如果方塊已經(jīng)達到游戲區(qū)域底部或者有其他方塊遮擋,則方塊停止下降。3.33 向右鍵產(chǎn)生下落方塊右移操作。首先要判斷此方塊是否能夠發(fā)生右移,當(dāng)越界或被其他顯示方塊阻擋時,則不能右移。第四章詳細(xì)設(shè)計4.1 主要功能設(shè)計根據(jù)分析,俄羅斯方塊這個程序一共要實現(xiàn)如下幾個功能,開始游戲(F8)、游戲的暫停繼續(xù)(S)和退出游戲(Q)。其中游戲控制最為主要和重要,它控制著整個游戲的畫面和有關(guān)數(shù)據(jù)的

11、操作,是游戲的核心部分。暫停和退出功能做成一體,在退出的提示下不做任何操作即可實現(xiàn)暫停的功能。俄羅斯方塊開始游戲暫停繼續(xù)退出游戲失敗游戲結(jié)束4.2 程序流程圖根據(jù)分析后的程序結(jié)構(gòu)圖設(shè)計出相應(yīng)的流程圖。俄羅斯方塊的內(nèi)容主要包括游戲開始,畫背景和邊框,顯示分?jǐn)?shù)等級和下一個方塊的預(yù)覽圖;根據(jù)速度沒隔一定時間方塊自動下落,當(dāng)有按鍵操作時,根據(jù)相應(yīng)按鍵執(zhí)行動作,每次動作前要判斷是否動作可以執(zhí)行。下落方塊滿一行時,消去該行,根據(jù)消去行數(shù)得到相應(yīng)分?jǐn)?shù)。分?jǐn)?shù)達到一定程度,等級提升,速度加快。同時可以響應(yīng)Esc按鍵,提示是否退出程序。4.3 游戲界面俄羅斯方塊的游戲界面包括游戲區(qū)域邊框、下落方塊繪制、右部計分和

12、預(yù)覽圖顯小等。游戲區(qū)域邊框的繪制比較簡單,循環(huán)中確定光標(biāo)的位置輸出特定字符,即可完成邊框繪制。游戲區(qū)方塊的繪制,循環(huán)從數(shù)據(jù)數(shù)組中依次讀出數(shù)據(jù),根據(jù)讀到的數(shù)據(jù)顯示“口”,最后組成方塊的形狀,完成方塊的繪制。計分和預(yù)覽圖部分先畫出一個矩形區(qū)域,然后控制光標(biāo)在其中顯示分?jǐn)?shù)、等級、預(yù)覽圖和提示信息。7-TBegin:F8SleepQuitNEXTLEVELSCORE4.4 生成方塊本程序中生成的方塊有7種形狀,每一種方塊以shapeindex標(biāo)記,在程序運行生成方塊時,調(diào)用shapeindex=rand()%5+1;語句,確定當(dāng)前要顯示的是哪一個方塊形狀。而在實際運行中,第一次需要調(diào)用兩次生成方塊函數(shù)

13、make(),將先產(chǎn)生的賦給游戲當(dāng)前方塊,第二個賦給預(yù)覽圖方塊。以后每次產(chǎn)生一個方塊,把預(yù)覽方塊賦給當(dāng)前方塊,把新產(chǎn)生的賦給預(yù)覽方塊。4.5 方塊變形俄羅斯方塊的特點就在于通過方塊的變形拼滿整行來消去該行方塊從而使游戲可以繼續(xù)下去,很難想象不能變形的俄羅斯方塊是什么樣子。而變形的過程就是根據(jù)當(dāng)前方塊形狀改變方塊的相對位置,這樣就可以改變方塊的形狀了。在程序中每當(dāng)按下鍵,程序判斷可以變形后,根據(jù)當(dāng)前方塊的形狀序號shapeindex和變化形狀序號changeindex調(diào)用相應(yīng)的方塊數(shù)值賦給draw()函數(shù),通過刷新重畫就可以顯示變化后的方塊了。4.6 方塊顯示以上方塊的操作都是數(shù)據(jù)層面的操作,而

14、真正要在游戲窗口中看到數(shù)據(jù)的變化,還必須把方塊不斷的繪制出來。這就是draw()函數(shù)的作用。把當(dāng)前運動的方塊對應(yīng)節(jié)點存儲在一個4*4數(shù)組里,變形和生成方塊的過程就是更新該數(shù)組數(shù)據(jù)的過程。然后在draw()函數(shù)里檢測數(shù)組的各個值,并控制光標(biāo)跳到一定位置,畫出“口”組成方塊。4.7 障礙判斷障礙判斷,就是在方塊運動中或者變形中判斷周圍是否有障礙阻礙下落、移位、變形。當(dāng)方塊下落遇到下面有方塊或者到達下邊界則應(yīng)停止下落并記錄數(shù)據(jù),存入背景數(shù)據(jù)數(shù)組。變形時應(yīng)判斷這個變形是否可以進行,如果有障礙則不能變形。例如當(dāng)方塊達到右邊界,而若變形則會越過邊界,那么這個變形的命令是不應(yīng)執(zhí)行的。所有這些乎U斷都由mee

15、t()函數(shù)進行,根據(jù)是否有障礙返回1或0,再由其他函數(shù)接收執(zhí)行相應(yīng)操作。4.8 消行計分游戲玩家拼滿一行后,程序消去滿行,并計分。中當(dāng)一個方塊下落停止后,程序檢查方塊是否充滿了游戲區(qū)域,如果是結(jié)束游戲。不是,則判斷是否構(gòu)成消行條件,從下落方塊的最低點依次向上檢查是否可以消行,根據(jù)消去行數(shù)分?jǐn)?shù)增加。分?jǐn)?shù)達到一定程度,等級提升,分?jǐn)?shù)暫定為每1000升一級。4.9 暫停退出游戲的友好性在于能考慮用戶的需要,隨時可以暫停/繼續(xù)游戲,在不愿繼續(xù)游戲時退出游戲。本程序可以在用戶需要的時候響應(yīng)Esc按鍵,提示是否退出游戲,如果不做選擇即可暫停游戲,等待選擇。程序調(diào)試經(jīng)過調(diào)試和修改,程序完全實現(xiàn)設(shè)計要求,成功

16、模擬了俄羅斯方塊的運行過程和游戲效果,只是界面略微簡陋,但已從程序?qū)用嫔蠈崿F(xiàn)了游戲,達到了這次實訓(xùn)的要求和目的。程序正常生成方塊,根據(jù)速度值每隔一定時間自動下落,如有操作按鍵按下,根據(jù)按鍵實現(xiàn)位移和變形。當(dāng)方塊滿一行后,可以消除該行,同時記錄分?jǐn)?shù)和等級。按下Esc鍵紅色提示信息正常顯示,可以響應(yīng)Y,N鍵決定是否退出游戲4.10 軟件使用說明打開俄羅斯方塊游戲后,通過控制方向區(qū)域的、“r'、“一”、“一”來控制,鍵代表變形轉(zhuǎn)換,”廠、”一”、“右”均代表方向鍵,"Q'代表退出游戲鍵。若想暫停游戲,可通過“S”鍵,當(dāng)初來詢問框是,可不做選擇,則可達到暫停的效果第五章源代碼

17、源程序代碼(詳細(xì)的注釋)#include<windows.h>#include<stdio.h>#include<stdlib.h>#include<time.h>#include<conio.h>classConsolepublic:Console()hStdOutput=INVALID_HANDLE_VALUE;hStdError=INVALID_HANDLE_VALUE;boolOpen(void)hStdOutput=GetStdHandle(STD_OUTPUT_HANDLE);hStdError=GetStdHandle(

18、STD_ERROR_HANDLE);returnINVALID_HANDLE_VALUE!=hStdOutput&&INVALID_HANDLE_VALUE!=hStdError;inlineboolSetTitle(char*title)/設(shè)置標(biāo)題returnTRUE=SetConsoleTitle(title);boolRemoveCursor(void)/去處光標(biāo)CONSOLE_CURSOR_INFOcci;if(!GetConsoleCursorInfo(hStdOutput,&cci)returnfalse;cci.bVisible=false;if(!Set

19、ConsoleCursorInfo(hStdOutput,&cci)returnfalse;if(!GetConsoleCursorInfo(hStdError,&cci)returnfalse;cci.bVisible=false;if(!SetConsoleCursorInfo(hStdError,&cci)returnfalse;returntrue;boolSetWindowRect(shortx,shorty)/設(shè)置窗體尺寸SMALL_RECTwrt=0,0,x,y;if(!SetConsoleWindowInfo(hStdOutput,TRUE,&w

20、rt)returnfalse;if(!SetConsoleWindowInfo(hStdError,TRUE,&wrt)returnfalse;returntrue;boolSetBufSize(shortx,shorty)/設(shè)置緩沖尺寸COORDcoord=x,y;if(!SetConsoleScreenBufferSize(hStdOutput,coord)returnfalse;if(!SetConsoleScreenBufferSize(hStdError,coord)returnfalse;returntrue;boolGotoXY(shortx,shorty)/移動光標(biāo)CO

21、ORDcoord=x,y;if(!SetConsoleCursorPosition(hStdOutput,coord)returnfalse;if(!SetConsoleCursorPosition(hStdError,coord)returnfalse;returntrue;boolSetColor(WORDcolor)/設(shè)置前景色/背景色if(!SetConsoleTextAttribute(hStdOutput,color)returnfalse;if(!SetConsoleTextAttribute(hStdError,color)returnfalse;returntrue;bool

22、OutputString(constchar*pstr,size_tlen=0)/輸出字符串DWORDn=0;returnTRUE=WriteConsole(hStdOutput,pstr,len?len:strlen(pstr),&n,NULL);boolOutputStringNoMove(shortx,shorty,constchar*pstr,size_tlen=0)/輸出字符串COORDcoord=x,y;DWORDn=0;returnTRUE=WriteConsoleOutputCharacter(hStdOutput,pstr,len?len:strlen(pstr),c

23、oord,&n);private:HANDLEhStdOutput;HANDLEhStdError;constcharbg=""|-negti:F800000constcharbk7444=(0,1,1.0,1,1,0.0,0,0,0.0,0,0,0.0),1,0,0,0,1,1,0.0,0,1,0.0,0,0,0.0,0,1,1.0,1,1,0.0,0,0,0.0,0,0,0.0,1,0,0,0,1,1,0.0,0,1,0.0,0,0,0.0,1,1,0,0,0,1,1.0,0,0,0.0,0,0,0.0,0,1,0.0,1,1,0.0,1,0,0.0,0,0,0

24、.0,1,1,0,0,0,1,1.0,0,0,0.0,0,0,0.0,0,1,0.0,1,1,0.0,1,0,0.0,0,0,0.0,1,1,1,0,1,0,0.0,0,0,0.0,0,0,0.0,1,0,0,0,1,0,0.0,1,1,0.0,0,0,0.0,0,0,1.0,1,1,1.0,0,0,0.0,0,0,0.0,1,1,0,0,0,1,0.0,0,1,0.0,0,0,0.0,1,1,1,0,0,0,1.0,0,0,0.0,0,0,0.0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0

25、,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,01,1,1,1,0,0,0,0,0,0,0,

26、0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0;constWORDCOLOR_A=FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY;/運動中的顏色constWORDCOLOR_B=FOREGROUND_RED;/固定不動的顏色constWORDCOLOR_C=FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE;/空白處的顏色intsc

27、ore=0,level=0;chardata1911=0;intnext=-1;intx=4,y=-2,c=-1,z=0;/x坐標(biāo),坐標(biāo),當(dāng)前方塊,方向Consolecsl;/定義控制臺對象voidDrawScoreLevel(void)/繪制得分chartmp6;sprintf(tmp,"%05d",score);csl.OutputStringNoMove(31,19,tmp,5);sprintf(tmp,"%1d",level);csl.OutputStringNoMove(35,15,tmp,1);voidDrawNext(void)/繪制&qu

28、ot;next框"中的圖形for(inti=0;i<2;+i)for(intj=0;j<4;+j)csl.OutputStringNoMove(28+j*2,10+i,bknext0ij=0?"":"2);voidDrawOver(void)/游戲結(jié)束csl.OutputStringNoMove(28,10,"GAME");csl.OutputStringNoMove(28,11,"OVER");voidDraw(WORDcolor)for(inti=0;i<4;+i)if(y+i<0|y+

29、i>=19)continue;for(intj=0;j<4;+j)if(bkczij=1)csl.SetColor(color);csl.GotoXY(2+x*2+j*2,1+y+i);csl.OutputString("",2);boolIsFit(intx,inty,intc,intz)/給定的x,y,c,z是否可行for(inti=0;i<4;+i)for(intj=0;j<4;+j)if(bkczij=1)if(y+i<0)continue;if(y+i>=19|x+j<0|x+j>=11|datay+ix+j=1)r

30、eturnfalse;returntrue;voidRemoveRow(void)/消行constcharFULLLINE=1,1,1,1,1,1,1,1,1,1,1;intlinecount=0;for(inti=0;i<19;+i)if(0=memcmp(datai,FULLLINE,11)+linecount;for(intm=0;m<11;+m)for(intn=i;n>1;-n)datanm=datan-1m;csl.SetColor(datanm=1?COLOR_B:COLOR_C);csl.GotoXY(2+m*2,1+n);csl.OutputString(&

31、quot;",2);data0m=0;csl.OutputStringNoMove(2+m*2,1,"",2);chardata1911=0;if(linecount=0)return;int_score=0;switch(linecount)case 1: _score=100;break;case 2: _score=300;break;case 3: _score=700;break;case 4: _score=1500;break;score+=_score;if(score>99999)score=99999;level=score/10000;

32、DrawScoreLevel();voidMoveTrans(void)/逆時針翻轉(zhuǎn)if(IsFit(x,y,c,(z+1)%4)Draw(COLOR_C);z=(z+1)%4;Draw(COLOR_A);voidMoveLeft(void)/向左移if(IsFit(x-1,y,c,z)Draw(COLOR_C);-x;Draw(COLOR_A);voidMoveRight(void)/向右移if(IsFit(x+1,y,c,z)Draw(COLOR_C);+x;Draw(COLOR_A);voidMoveDown(void)/向下移if(IsFit(x,y+1,c,z)Draw(COLOR_C);+y;Draw(COLOR_A);elseif(y!=-2)/觸底Draw(COLOR_B);for(inti=0;i<4;+i)if(y+i<0)continue;for(intj=0;j<4;+j)if(bkczij=1)datay+i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論