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

正文內(nèi)容

俄羅斯方塊游戲開(kāi)發(fā)與設(shè)計(jì)畢業(yè)論文(參考版)

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

【正文】 由于我的學(xué)識(shí)有限,加之時(shí)間倉(cāng)促,文中不免有錯(cuò)誤和待改,不足之處,真誠(chéng)歡迎各位師長(zhǎng)、同學(xué)提出寶貴意見(jiàn)。在此過(guò)程中同學(xué)們也給予我很大幫助,感謝我的同學(xué)們。首先衷心感謝我的指導(dǎo)老師姜柳老師給予我的無(wú)微不至的關(guān)懷和細(xì)心的指導(dǎo)。 致 謝畢業(yè)設(shè)計(jì)是大學(xué)里的最后一堂課,從開(kāi)始進(jìn)入課題研究到論文順利完成的兩個(gè)周的時(shí)間里,我經(jīng)歷了大學(xué)期間最為難忘的一段時(shí)光。還有,圖像截屏傳輸時(shí)編譯器總是提示端口號(hào)已經(jīng)被占用,經(jīng)過(guò)檢查,原來(lái)是我每次截屏發(fā)送圖像數(shù)據(jù)時(shí),都重新構(gòu)造端口號(hào),這是因?yàn)樽兞慷x的錯(cuò)誤,將變量定義成全局變量,問(wèn)題就解決了。這一個(gè)月的開(kāi)發(fā)工作,讓我對(duì)JAVA的類庫(kù)有了個(gè)基本的了解,使我在以后的JAVA開(kāi)發(fā)工作中知道如何去查找自己所需要的API。還有,JAVA這門技術(shù),很多要用到的應(yīng)用程序接口,都被封裝在了某個(gè)類里邊,所以,學(xué)習(xí)JAVA,就是學(xué)會(huì)如何去用它已經(jīng)存在的某個(gè)接口,而不是去研究如何實(shí)現(xiàn)這個(gè)接口。先前,對(duì)于JAVA,基本上還停留在理論階段,但是通過(guò)這一個(gè)月的努力,完成了代碼超過(guò)數(shù)千行的俄羅斯方塊游戲,在JAVA學(xué)習(xí)方面,我能夠感覺(jué)到自己的進(jìn)步。 總結(jié)結(jié)束經(jīng)過(guò)一個(gè)月的努力,本游戲的開(kāi)發(fā)工作至此告一段落,游戲能夠正確運(yùn)行,雖然說(shuō)本游戲還只是一個(gè)初級(jí)產(chǎn)品,但是比起很多俄羅斯方塊游戲,它的功能算是比非常豐富的,界面也具有一定的美觀度,可以說(shuō)取得了初步性的成功。 測(cè)試結(jié)果測(cè)試過(guò)程中,本游戲發(fā)現(xiàn)了一些錯(cuò)誤,經(jīng)過(guò)修正,最后本游戲完全能夠正常運(yùn)行。系統(tǒng)測(cè)試的目的在于與系統(tǒng)的需求定義進(jìn)行比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。確認(rèn)測(cè)試也稱驗(yàn)收測(cè)試,其目標(biāo)是驗(yàn)證軟件的有效性。因?yàn)槭菑牡撞肯蛏辖Y(jié)合模塊,總能得到所需的下層模塊處理功能,所有不需要存根模塊。而寬度優(yōu)先的結(jié)合方法是沿軟件結(jié)構(gòu)水平地移動(dòng),把處于同一個(gè)控制層次上的所有模塊組裝起來(lái)。深度優(yōu)先策略是先組裝在軟件結(jié)構(gòu)的一條主控制通路上的所有模塊。自頂向下集成是從主模塊開(kāi)始,沿著程序的控制層次向下移動(dòng),逐漸把哥哥模塊結(jié)合起來(lái)。這個(gè)階段發(fā)現(xiàn)的問(wèn)題往往是需求說(shuō)明和軟件系統(tǒng)設(shè)計(jì)時(shí)產(chǎn)生的錯(cuò)誤。系統(tǒng)測(cè)試就是把經(jīng)過(guò)測(cè)試運(yùn)行正常的子系統(tǒng)組裝成完整的系統(tǒng)后再進(jìn)行測(cè)試。子系統(tǒng)測(cè)試是把經(jīng)過(guò)測(cè)試運(yùn)行正常的模塊放在一起形成子系統(tǒng)后再測(cè)試。單元測(cè)試的重點(diǎn)是模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、重要的執(zhí)行通路測(cè)試、出錯(cuò)處理通路測(cè)試、邊界條件測(cè)試。在這個(gè)測(cè)試過(guò)程中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)中的錯(cuò)誤。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例,即采用白盒測(cè)試技術(shù)。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。通常,軟件測(cè)試的過(guò)程可以劃分為單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試,本游戲?qū)⒁赃@四個(gè)步驟進(jìn)行測(cè)試。運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤是在執(zhí)行過(guò)程中指令試圖執(zhí)行不可能的動(dòng)作而導(dǎo)致的,必須糾正運(yùn)行時(shí)產(chǎn)生的錯(cuò)誤,這樣才能保證軟件運(yùn)行的可靠性。例如,當(dāng)本應(yīng)使用小于符號(hào)比較數(shù)值,但卻使用了大于符號(hào)時(shí),那么將返回不正確的結(jié)果。邏輯錯(cuò)誤 邏輯錯(cuò)誤通??赡苁菨撛诤碗y以檢測(cè)的。語(yǔ)法錯(cuò)誤可能導(dǎo)致不能繼續(xù)編寫代碼。語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤是經(jīng)常碰到的錯(cuò)誤。在程序調(diào)試過(guò)程中一定要耐心仔細(xì),一個(gè)細(xì)微的錯(cuò)誤將會(huì)導(dǎo)致整個(gè)功能不能實(shí)現(xiàn)會(huì)浪費(fèi)很多的時(shí)間來(lái)修改。測(cè)試的時(shí)間最好找一些與設(shè)計(jì)系統(tǒng)無(wú)關(guān)的人員,或者分析人員。3.程序的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤。進(jìn)行軟件測(cè)試主要作用有以下幾點(diǎn):1.軟件測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。:開(kāi)始分?jǐn)?shù)達(dá)到設(shè)定值Level自加1,結(jié)束當(dāng)前游戲并提示用戶已過(guò)關(guān)用戶確認(rèn)過(guò)關(guān)根據(jù)新的level得到新的定時(shí)器值,新的旋轉(zhuǎn)塊線程休眠值,隨機(jī)生成相應(yīng)數(shù)量的小方塊格子重新初始化游戲結(jié)束圖 通關(guān)流程圖沈陽(yáng)工程學(xué)院畢業(yè)論文 第6章 游戲測(cè)試第6章 游戲測(cè)試 測(cè)試的意義及注意事項(xiàng)軟件測(cè)試是軟件工程中及其重要的一個(gè)環(huán)節(jié),目的是保證軟件的質(zhì)量。就如上面隨機(jī)生成數(shù)值范圍0到6的blocktype值,這里應(yīng)該隨機(jī)生成數(shù)值范圍0到14的橫坐標(biāo)值,每一行都應(yīng)該生成七個(gè)這樣的橫坐標(biāo)值,一行生成完之后再繼續(xù)往上一行,直到把所要求的行數(shù)全部填充指定數(shù)量的隨機(jī)小方塊為止。4.在游戲底部隨機(jī)生成一定數(shù)量的小正方形塊障礙物的隨機(jī)生成也比較容易實(shí)現(xiàn)。2.加快方塊下落速度可以用一個(gè)變量記錄當(dāng)前游戲的關(guān)數(shù),假定定義整型變量level代表游戲的關(guān)數(shù),每一次,分?jǐn)?shù)達(dá)到設(shè)定值后,level要自加1,重新初始化游戲時(shí),應(yīng)該根據(jù)這個(gè)level得到新的定時(shí)器休眠時(shí)間值,方塊下落的速度也就隨之改變了。升入高一級(jí)別的關(guān)卡后,游戲難度會(huì)隨之增加,表現(xiàn)在方塊下落的速度會(huì)加快,旋轉(zhuǎn)方塊出現(xiàn)的幾率會(huì)提高,在游戲的底部會(huì)生成一定數(shù)量的小正方形方塊。但是,這里面又會(huì)遇到一個(gè)問(wèn)題,因?yàn)椴⒉皇撬蟹綁K所占的行數(shù)都一樣,方塊落下后到底該檢測(cè)多少行呢?考慮到方塊落下后最多占據(jù)四行,以及計(jì)算機(jī)運(yùn)算的高速性,可以設(shè)定每一次方塊落下后都往下檢測(cè)四行。這時(shí)候,應(yīng)該從長(zhǎng)條形的方塊占據(jù)的第一行開(kāi)始檢測(cè),不管期間是否有消行,都必須將長(zhǎng)條形的方塊所占據(jù)的四行全部檢測(cè)完為止。消去一行后,要繼續(xù)向下檢測(cè),如果下一行是滿行,消除,否則再往下檢測(cè),一直將落下的方塊所占的行數(shù)全部檢測(cè)完為止。利用這個(gè)方法,可以消除滿行。同樣,方塊在邊界處時(shí),翻轉(zhuǎn)后不僅可能翻出地圖外,還可能發(fā)生數(shù)組越界,當(dāng)然,只需要將地圖數(shù)組定義得大一些,就能夠避免數(shù)組越界錯(cuò)誤,對(duì)于方塊越界,如果在它的另一邊有足夠空間,那么,就應(yīng)該把方塊往另一個(gè)方向移動(dòng)適當(dāng)?shù)膯挝?,糾正方塊越界錯(cuò)誤。據(jù)此,我們可以列出方塊翻轉(zhuǎn)的條件判定表,: 方塊翻轉(zhuǎn)條件判定表12345678所有條件落下TFFFFFFF田字形方塊T 長(zhǎng)條形方塊1x4形態(tài)TT4x1形態(tài)T其它五種方塊2x3形態(tài)TT3x2形態(tài)T第y行, x、x+3列空TF第y、y+1行x、x+2列空TF所有動(dòng)作翻轉(zhuǎn)√√√√√不能翻轉(zhuǎn)√√√2.翻轉(zhuǎn)越界糾正由上述判定表可以看出,只要方塊翻轉(zhuǎn)后所處的空間足夠,方塊就能夠翻轉(zhuǎn),但是,如果方塊翻轉(zhuǎn)后所處的空間不足夠,而在它的另一邊卻有足夠的空間呢?比如,一個(gè)方塊在它左邊正好差一個(gè)格子的空間才能夠翻轉(zhuǎn),但是它的右邊恰好有一個(gè)格子的空間,這種情況,如果方塊不能夠翻轉(zhuǎn),就不方便用戶操作,如果能夠翻轉(zhuǎn),就會(huì)發(fā)生越界,將已經(jīng)存在的方塊擠占掉。假定方塊數(shù)組的橫縱坐標(biāo)是x和y,那么,這個(gè)位置就是,長(zhǎng)條形的方塊翻轉(zhuǎn)后所處的那一行是游戲地圖的第y行,所占的列是第x到x+3列,長(zhǎng)條形和田字形以外的五種方塊翻轉(zhuǎn)后的所占的行數(shù)是游戲地圖的第y和第y+1行,所占的列是第x到x+2列。可以確定的是,無(wú)論方塊怎么翻轉(zhuǎn),都處在方塊數(shù)組中,也就是說(shuō)方塊必定是在游戲地圖中某一4x4個(gè)格子的空間范圍內(nèi)。第一種情況是方塊落下去后不能翻轉(zhuǎn);第二種情況是對(duì)豎直狀態(tài)出現(xiàn)的長(zhǎng)條形的方塊進(jìn)行翻轉(zhuǎn)判定;第三種情況是對(duì)除長(zhǎng)條形和田字形之外的其它五種以橫向占兩個(gè)格子的狀態(tài)出現(xiàn)的方塊進(jìn)行翻轉(zhuǎn)判定。根據(jù)觀察,不難發(fā)現(xiàn),七種形態(tài)的方塊,長(zhǎng)條形的方塊如果以橫條的形態(tài)下落,則只有能夠下落,就能翻轉(zhuǎn),如果以豎條的形態(tài)下落,那么它翻轉(zhuǎn)后所處的位置必須要有4x1個(gè)格子的空間才能夠翻轉(zhuǎn);對(duì)于田字形的方塊,只有能夠繼續(xù)下墜,就一定能夠翻轉(zhuǎn),所以田子型的方塊只要沒(méi)有落下,就一直能夠翻轉(zhuǎn);而其它五種形態(tài)的方塊,又有一個(gè)共同點(diǎn),就是它們都有兩種翻轉(zhuǎn)狀態(tài)橫向占三個(gè)格子的空間,豎直方向占兩個(gè)空間,另外兩種翻轉(zhuǎn)狀態(tài)橫向占兩個(gè)格子的空間,豎直方向占三個(gè)格子空間,如果他們是以橫向占三個(gè)格子的狀態(tài)下落,那么只要能下落,就一定能夠翻轉(zhuǎn),如果是以橫向兩個(gè)格子的狀態(tài)下落,那么在翻轉(zhuǎn)后,周圍必須要有3x2個(gè)格子的空間。對(duì)于第二種情況,在每次方塊翻轉(zhuǎn)前,必須首先計(jì)算出方塊周圍的空間,如果空間允許則翻轉(zhuǎn),否則,不能翻轉(zhuǎn)。1.方塊翻轉(zhuǎn)判定如上所述,在兩種情況下一種是方塊落下去固定住以后,第二種是周圍的空間不允許它進(jìn)行翻轉(zhuǎn)。方塊翻轉(zhuǎn)的另一個(gè)問(wèn)題就是,當(dāng)方塊下落過(guò)程中,左右兩邊都有方塊,周圍的空間不能再容許它翻轉(zhuǎn),往往很多游戲沒(méi)有注意到這一點(diǎn),這就導(dǎo)致,方塊翻轉(zhuǎn)之后把原來(lái)存在的方塊給擠掉了,這個(gè)問(wèn)題本質(zhì)上也是翻轉(zhuǎn)越界。綜合以上幾種情況,我們可以列出方塊移動(dòng)條件判定表,:表 方塊移動(dòng)條件判定表12345678條件是否有阻隔TTTTTTTFx+j=0||gamearea[y+i][x+j+1]=2TFTTTFTx+j=14||gamearea[y+i][x+j1]=2FTFTFTTy+i=24||gamearea[y+i+1][x+j]=2FFFFTTT動(dòng)作左移動(dòng)√√√右移動(dòng)√√√√下移動(dòng)√√√√√大多數(shù)的俄羅斯方塊游戲的翻轉(zhuǎn)判定條件都比較簡(jiǎn)單,即方塊處在邊界處時(shí)就不能再翻轉(zhuǎn),因?yàn)檫@種時(shí)候翻轉(zhuǎn)會(huì)發(fā)生數(shù)組越界錯(cuò)誤。這又分為兩種情況,一種是要墜下的地方還沒(méi)有方塊,這個(gè)時(shí)候,只要可以記錄下方塊數(shù)組中最后出現(xiàn)1的那一行,假定那是第i行,這樣,只要y+i等于24,就可以認(rèn)定方塊已經(jīng)落到游戲地圖的底部,不能再繼續(xù)下落。同理,當(dāng)方塊到達(dá)右邊界不能移動(dòng)時(shí),我們可以從方塊數(shù)組的右邊開(kāi)始檢測(cè),記錄下首先出現(xiàn)1的那列的值,這個(gè)時(shí)候,x+j一定是等于14的。如果方塊的橫坐標(biāo)等于0,方塊就不能再移動(dòng),那么方塊數(shù)組的第一列至少有一個(gè)值為1,這種情況比較簡(jiǎn)單,但是,如果方塊數(shù)組的第一列全為0時(shí),也就是說(shuō),當(dāng)方塊數(shù)組有1的那列碰到邊界時(shí),方塊才不能移動(dòng),這個(gè)時(shí)候,首次出現(xiàn)1的那列的橫坐標(biāo)為0,而方塊數(shù)組的橫坐標(biāo)肯定已經(jīng)小于0了。確定方塊移動(dòng)的規(guī)則后,接下來(lái)就是如何將這種規(guī)則用算法表示的問(wèn)題了。方塊翻轉(zhuǎn)也只需要改變方塊數(shù)據(jù)第二維turnstate的值,然后重新繪制方塊即可。在得到新方塊時(shí),只需要將NEXT方塊的blocktype值賦給新方塊的blocktype,將NEXT方塊的color值賦給新方塊的color,然后再改寫NEXT方塊的blocktype和color,這個(gè)問(wèn)題就解決了。剩下的任務(wù)就是怎么將現(xiàn)在的NEXT方塊變成下一次出現(xiàn)的新方塊的問(wèn)題。3.如何得到一個(gè)新方塊在隨機(jī)出一個(gè)新的blocktype值后,要得到新方塊就變得非常簡(jiǎn)單了,只需要將blocktype值傳遞給方塊數(shù)組的第一維,同時(shí)把隨機(jī)出的Color對(duì)象也傳遞過(guò)去,這樣,就可以用得到的顏色畫出指定形狀的方塊了。所以,在構(gòu)造顏色時(shí),我們可以分別給紅、綠、藍(lán)隨機(jī)出一個(gè)不同的顏色值。為了達(dá)到這個(gè)目的,在每次構(gòu)造一個(gè)新方塊時(shí),就需要從顏色庫(kù)中構(gòu)造一個(gè)新顏色。對(duì)于色彩值的得到,也可以用上面的方法,比如可以預(yù)先定義幾種顏色,然后隨機(jī)得到某一個(gè)數(shù),這個(gè)數(shù)代表其中一種顏色,但是這樣游戲的色彩還是顯得有些單調(diào)。所以每次要得到新方塊時(shí),只需調(diào)用一次這個(gè)方法,得到一個(gè)01的雙精度浮點(diǎn)數(shù),然后把這個(gè)數(shù)乘以一個(gè)稍大的整數(shù),比如1000,得到的結(jié)果除以7,然后取余,最后將余數(shù)取整,取整后的結(jié)果就是一個(gè)大于等于0,小于等于6的blocktype值了。即,0=blocktype=6那么,當(dāng)方塊落下需要得到新方塊時(shí),只需隨機(jī)得到一個(gè)blocktype值,然后再把這個(gè)blocktype值賦給方塊數(shù)組的第一維即可。由概要設(shè)計(jì)中可以得出分析,可以定義一個(gè)變量,代表新方塊的模型。方塊是有模型和顏色的,在得到一個(gè)方塊前,還得先得到要出現(xiàn)的方塊的模型和顏色,然后才能在畫布中繪制出指定模型、指定顏色的方塊。:否是是是否移動(dòng)方塊游戲是否結(jié)束方塊是否能夠移動(dòng)游戲開(kāi)始初始化屏幕移動(dòng)后是否越界否是方塊是否已落下否是否是否能夠消行是是產(chǎn)生新方塊,并產(chǎn)生新的NEXT方塊越界自動(dòng)糾正否計(jì)算得分Notify音效播放線程,進(jìn)入wait狀態(tài)播放滿行消除音效Notify方塊控制線程,進(jìn)入wait狀態(tài)Notify音效播放線程,進(jìn)入wait狀態(tài)播放墜下音 效Notify方塊控制線程,進(jìn)入wait狀態(tài)分?jǐn)?shù)是否達(dá)到設(shè)定值升級(jí)到下一關(guān)刪除滿行接受控制信息開(kāi)始結(jié)束 方塊和地圖數(shù)據(jù)模塊流程圖 得到方塊,游戲中得到方塊分兩種,一是當(dāng)方塊落下后得到一個(gè)新方塊,顯示在游戲地圖中,接著得到一個(gè)NEXT方塊,顯示在NEXT方塊畫布中。
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1