freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

俄羅斯方塊課程設(shè)計(jì)-文庫(kù)吧

2025-06-01 01:12 本頁(yè)面


【正文】 程變化無(wú)窮,俄羅斯方塊游戲現(xiàn)在基本上是每個(gè)手機(jī)必備的游戲,種類(lèi)千變?nèi)f化,多種多樣。 第二章 課程設(shè)計(jì)的目的與要求 本課程是一個(gè)綜合性的實(shí)踐教學(xué)環(huán)節(jié),其目的在于促進(jìn)學(xué)生復(fù)習(xí)和鞏固計(jì)算機(jī)軟件設(shè)計(jì)知識(shí),加深對(duì)軟件設(shè)計(jì)方法、軟件設(shè)計(jì)技術(shù)和設(shè)計(jì)思想的理解,并能運(yùn)用所學(xué)知識(shí)進(jìn)行開(kāi)發(fā)。希望通過(guò)本課程設(shè)計(jì)中簡(jiǎn)單系統(tǒng)的開(kāi)發(fā),使學(xué)生掌握軟件設(shè)計(jì)的基本方法和基本的流程,提高學(xué)生的綜合應(yīng)用能力。要求用VC++編寫(xiě)與實(shí)現(xiàn)俄羅斯方塊。要求包括系統(tǒng)的需求分析;系統(tǒng)總框圖及每個(gè)模塊的設(shè)計(jì)分析;算法的設(shè)計(jì)與實(shí)現(xiàn);游戲的內(nèi)部實(shí)現(xiàn);游戲區(qū)域繪畫(huà)的實(shí)現(xiàn);系統(tǒng)存在的問(wèn)題及錯(cuò)誤處理;列出所有定義的函數(shù)及說(shuō)明;附上源程序; 第三章 程序需求分析 功能需求隨機(jī)給出不同的形狀下落填充給定的區(qū)域,若填滿(mǎn)一條便消掉,記分,設(shè)計(jì)不同的游戲難度,即方塊下落的速度不同,若在游戲中各形狀填滿(mǎn)了給定區(qū)域?yàn)檩斦摺?方塊及各種變換需求本游戲需要七種方塊,而每種方塊還可以進(jìn)行旋轉(zhuǎn)。每種方塊每行每列最多只有4個(gè)小方塊??梢詫⑺鼈兎旁谝粋€(gè)n*m的區(qū)域內(nèi),該區(qū)域可以看做是有許多個(gè)等面積小方塊構(gòu)成的區(qū)域,而這些區(qū)域的狀態(tài)只有兩種,被方塊占據(jù)或空閑。因此,對(duì)于整個(gè)游戲區(qū)域的空間是被占據(jù)或空閑,可以用一位數(shù)來(lái)標(biāo)識(shí)。對(duì)于七種方塊和它們旋轉(zhuǎn)后的形態(tài)我們可以用不同的標(biāo)識(shí)進(jìn)行標(biāo)記。對(duì)于旋轉(zhuǎn),游戲中所有方塊都是按照逆時(shí)針旋轉(zhuǎn)的規(guī)則進(jìn)行的,而且在旋轉(zhuǎn)過(guò)程中它們不會(huì)因?yàn)樾D(zhuǎn)而下降,總會(huì)保持在同一高度。任何方塊經(jīng)過(guò)一個(gè)旋轉(zhuǎn)周期還會(huì)變回原型。 操作需求 向上鍵 產(chǎn)生方塊旋轉(zhuǎn)操作,方塊并非任何情況都能旋轉(zhuǎn),如果旋轉(zhuǎn)后與小方塊矩陣顯示的方塊有沖突或超出邊界是,均不發(fā)生旋轉(zhuǎn)。因此首先要判斷是否有足夠的空間進(jìn)行旋轉(zhuǎn)。然后是旋轉(zhuǎn)是否旋轉(zhuǎn)。 向下鍵產(chǎn)生方塊加速下落操作,如果方塊已經(jīng)達(dá)到游戲區(qū)域底部或者有其他方塊遮擋,則方塊停止下降。 向右鍵產(chǎn)生下落方塊右移操作。首先要判斷此方塊是否能夠發(fā)生右移,當(dāng)越界或被其他顯示方塊阻擋時(shí),則不能右移。 第四章 詳細(xì)設(shè)計(jì) 主要功能設(shè)計(jì) 根據(jù)分析,俄羅斯方塊這個(gè)程序一共要實(shí)現(xiàn)如下幾個(gè)功能,開(kāi)始游戲(F8)、游戲的暫停\繼續(xù)(S)和退出游戲(Q)。其中游戲控制最為主要和重要,它控制著整個(gè)游戲的畫(huà)面和有關(guān)數(shù)據(jù)的操作,是游戲的核心部分。暫停和退出功能做成一體,在退出的提示下不做任何操作即可實(shí)現(xiàn)暫停的功能。 程序流程圖 根據(jù)分析后的程序結(jié)構(gòu)圖設(shè)計(jì)出相應(yīng)的流程圖。俄羅斯方塊的內(nèi)容主要包括游戲開(kāi)始,畫(huà)背景和邊框,顯示分?jǐn)?shù)等級(jí)和下一個(gè)方塊的預(yù)覽圖;根據(jù)速度沒(méi)隔一定時(shí)間方塊自動(dòng)下落,當(dāng)有按鍵操作時(shí),根據(jù)相應(yīng)按鍵執(zhí)行動(dòng)作,每次動(dòng)作前要判斷是否動(dòng)作可以執(zhí)行。下落方塊滿(mǎn)一行時(shí),消去該行,根據(jù)消去行數(shù)得到相應(yīng)分?jǐn)?shù)。分?jǐn)?shù)達(dá)到一定程度,等級(jí)提升,速度加快。同時(shí)可以響應(yīng)Esc按鍵,提示是否退出程序。 游戲界面 俄羅斯方塊的游戲界面包括游戲區(qū)域邊框、下落方塊繪制、右部計(jì)分和預(yù)覽圖顯示等。 游戲區(qū)域邊框的繪制比較簡(jiǎn)單,循環(huán)中確定光標(biāo)的位置輸出特定字符,即可完成邊框繪制。游戲區(qū)方塊的繪制,循環(huán)從數(shù)據(jù)數(shù)組中依次讀出數(shù)據(jù),根據(jù)讀到的數(shù)據(jù)顯示“□”,最后組成方塊的形狀,完成方塊的繪制。計(jì)分和預(yù)覽圖部分先畫(huà)出一個(gè)矩形區(qū)域,然后控制光標(biāo)在其中顯示分?jǐn)?shù)、等級(jí)、預(yù)覽圖和提示信息。 生成方塊 本程序中生成的方塊有7種形狀,每一種方塊以shapeindex標(biāo)記,在程序運(yùn)行生成方塊時(shí),調(diào)用shapeindex=rand()%5+1。語(yǔ)句,確定當(dāng)前要顯示的是哪一個(gè)方塊形狀。而在實(shí)際運(yùn)行中,第一次需要調(diào)用兩次生成方塊函數(shù)make(),將先產(chǎn)生的賦給游戲當(dāng)前方塊,第二個(gè)賦給預(yù)覽圖方塊。以后每次產(chǎn)生一個(gè)方塊,把預(yù)覽方塊賦給當(dāng)前方塊,把新產(chǎn)生的賦給預(yù)覽方塊。 方塊變形 俄羅斯方塊的特點(diǎn)就在于通過(guò)方塊的變形拼滿(mǎn)整行來(lái)消去該行方塊從而使游戲可以繼續(xù)下去,很難想象不能變形的俄羅斯方塊是什么樣子。而變形的過(guò)程就是根據(jù)當(dāng)前方塊形狀改變方塊的相對(duì)位置,這樣就可以改變方塊的形狀了。在程序中每當(dāng)按下“↑”鍵,程序判斷可以變形后,根據(jù)當(dāng)前方塊的形狀序號(hào)shapeindex和變化形狀序號(hào)changeindex調(diào)用相應(yīng)的方塊數(shù)值賦給draw()函數(shù),通過(guò)刷新重畫(huà)就可以顯示變化后的方塊了。 方塊顯示以上方塊的操作都是數(shù)據(jù)層面的操作,而真正要在游戲窗口中看到數(shù)據(jù)的變化,還必須把方塊不斷的繪制出來(lái)。這就是draw()函數(shù)的作用。把當(dāng)前運(yùn)動(dòng)的方塊對(duì)應(yīng)節(jié)點(diǎn)存儲(chǔ)在一個(gè)4*4數(shù)組里,變形和生成方塊的過(guò)程就是更新該數(shù)組數(shù)據(jù)的過(guò)程。然后在draw()函數(shù)里檢測(cè)數(shù)組的各個(gè)值,并控制光標(biāo)跳到一定位置,畫(huà)出“□”組成方塊。 障礙判斷障礙判斷,就是在方塊運(yùn)動(dòng)中或者變形中判斷周?chē)欠裼姓系K阻礙下落、移位、變形。當(dāng)方塊下落遇到下面有方塊或者到達(dá)下邊界則應(yīng)停止下落并記錄數(shù)據(jù),存入背景數(shù)據(jù)數(shù)組。變形時(shí)應(yīng)判斷這個(gè)變形是否可以進(jìn)行,如果有障礙則不能變形。例如當(dāng)方塊達(dá)到右邊界,而若變形則會(huì)越過(guò)邊界,那么這個(gè)變形的命令是不應(yīng)執(zhí)行的。所有這些判斷都由meet()函數(shù)進(jìn)行,根據(jù)是否有障礙返回1或0,再由其他函數(shù)接收?qǐng)?zhí)行相應(yīng)操作。 消行計(jì)分 游戲玩家拼滿(mǎn)一行后,程序消去滿(mǎn)行,并計(jì)分。中當(dāng)一個(gè)方塊下落停止后,程序檢查方塊是否充滿(mǎn)了游戲區(qū)域,如果是結(jié)束游戲。不是,則判斷是否構(gòu)成消行條件,從下落方塊的最低點(diǎn)依次向上檢查是否可以消行,根據(jù)消去行數(shù)分?jǐn)?shù)增加。分?jǐn)?shù)達(dá)到一定程度,等級(jí)提升,分?jǐn)?shù)暫定為每1000升一級(jí)。 暫停退出游戲的友好性在于能考慮用戶(hù)的需要,隨時(shí)可以暫停/繼續(xù)游戲,在不愿繼續(xù)游戲時(shí)退出游戲。本程序可以在用戶(hù)需要的時(shí)候響應(yīng)Esc按鍵,提示是否退出游戲,如果不做選擇即可暫停游戲,等待選擇。程序調(diào)試經(jīng)過(guò)調(diào)試和修改,程序完全實(shí)現(xiàn)設(shè)計(jì)要求,成功模擬了俄羅斯方塊的運(yùn)行過(guò)程和游戲效果,只是界面略微簡(jiǎn)陋,但已從程序?qū)用嫔蠈?shí)現(xiàn)了游戲,達(dá)到了這次實(shí)訓(xùn)的要求和目的。程序正常生成方塊,根據(jù)速度值每隔一定時(shí)間自動(dòng)下落,如有操作按鍵按下,根據(jù)按鍵實(shí)現(xiàn)位移和變形。當(dāng)方塊滿(mǎn)一行后,可以消除該行,同時(shí)記錄分?jǐn)?shù)和等級(jí)。按下Esc鍵紅色提示信息正常顯示,可以響應(yīng)Y,N鍵決定是否退出游戲 軟件使用說(shuō)明 打開(kāi)俄羅斯方塊游戲后,通過(guò)控制方向區(qū)域的“↑”、“↓”、“←”、“→”來(lái)控制,“↑”鍵代表變形轉(zhuǎn)換,“↓”、“←”、“右”均代表方向鍵,“Q”代表退出游戲鍵。若想暫停游戲,可通過(guò)“S”鍵,當(dāng)初來(lái)詢(xún)問(wèn)框是,可不做選擇,則可達(dá)到暫停的效果 第五章 源代碼源程序代碼(詳細(xì)的注釋?zhuān)?include include include include include class Console{public: Console() { hStdOutput = INVALID_HANDLE_VALUE。 hStdError = INVALID_HANDLE_VALUE。 } bool Open( void ) { hStdOutput = GetStdHandle( STD_OUTPUT_HANDLE )。 hStdError = GetStdHandle( STD_ERROR_HANDLE )。 return INVALID_HANDLE_VALUE!=hStdOutput amp。amp。 INVALID_HANDLE_VALUE!=hStdError。 } inline bool SetTitle( char* title ) // 設(shè)置標(biāo)題 { return TRUE==SetConsoleTitle(title)。 } bool RemoveCursor( void ) // 去處光標(biāo) { CONSOLE_CURSOR_INFO cci。 if( !GetConsoleCur
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1