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

正文內(nèi)容

java俄羅斯方塊畢業(yè)論文正文-文庫(kù)吧

2025-06-13 08:18 本頁(yè)面


【正文】 語(yǔ)言,出于安全穩(wěn)定性的考慮,去除了C++中不容不得易理解和掌握的部分,如最典型的指針操作等,降低了學(xué)習(xí)的難度;同時(shí)Java還有一個(gè)特點(diǎn)就是它的基本語(yǔ)法部分與C語(yǔ)言幾乎一模一樣。這樣,無(wú)論是學(xué)過Java再學(xué)C,還是已經(jīng)掌握了C語(yǔ)言再業(yè)學(xué)Java,都會(huì)感到易于入門。面向?qū)ο笫且环N認(rèn)識(shí)世界的方法,是一種程序設(shè)計(jì)方法。面向?qū)ο蟮挠^點(diǎn)認(rèn)為,客觀世界是由各種各樣的實(shí)體,即對(duì)象組成的。每種對(duì)象都有自己的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同對(duì)象間的相互聯(lián)系和相互作用就構(gòu)成了各種不同的系統(tǒng),并進(jìn)而構(gòu)成整個(gè)客觀世界。按照這樣的思想設(shè)計(jì)程序,就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。面向?qū)ο蟮某绦蛟O(shè)計(jì)吸取了結(jié)構(gòu)化程序設(shè)計(jì)的先進(jìn)思想,并把它們同幾個(gè)支持用戶用新方法進(jìn)行程序設(shè)計(jì)的有力概念結(jié)合在一起。所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一般都包含三個(gè)概念:封裝、多態(tài)性和繼承性。這種方法要求語(yǔ)言必須具備抽象、封裝、繼承和多態(tài)性這幾個(gè)關(guān)鍵要素。面向?qū)ο蟮某绦蛟O(shè)計(jì),是通過數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對(duì)程序進(jìn)行模塊化的一種程序設(shè)計(jì)方法,這些模塊可以被用作樣板,在需要時(shí)再建立其副本。C++和Java在面向?qū)ο筮@方面比VB要強(qiáng),所以我排除了用VB做的可能性。但是C++主觀上在校期間學(xué)校并沒有這方面的授課內(nèi)容,雖然自學(xué)了一些內(nèi)容,對(duì)C++也有一定了解,但是若用C++實(shí)現(xiàn),必定是基于windows應(yīng)用程序的Visual C++設(shè)計(jì),對(duì)于windows編程,我還有待提高,而我對(duì)JAVA的掌握,相對(duì)而言,比較熟悉,綜合考慮,決定采用Java語(yǔ)言編寫俄羅斯方塊。沈陽(yáng)工程學(xué)院畢業(yè)論文 第4章 概要設(shè)計(jì)第4章 概要設(shè)計(jì) 游戲設(shè)計(jì)所要遵循的規(guī)范一個(gè)良好的程序,在編寫之前,必須要制定各種編寫規(guī)范,以便組內(nèi)各成員協(xié)調(diào)工作。當(dāng)然,本游戲只是一個(gè)小程序,過多的規(guī)范制定顯得沒有必要,但是,也必須制定一個(gè)對(duì)于變量的命名規(guī)則,這有利于設(shè)計(jì)出一個(gè)可讀性高的程序。本程序變量的命名規(guī)則為:所有變量一律使用相應(yīng)的英文單詞命名如果同一類中需要?jiǎng)?chuàng)建多個(gè)同一類型,功能相似的變量,變量的前綴應(yīng)使用統(tǒng)一的英文單詞,后綴為下劃線“_”加數(shù)字。比如,從JButton對(duì)象創(chuàng)建開始按鈕,可以命名為:startbutton。再如,創(chuàng)建多個(gè)道具按鈕,可以命名為toolbutton_1,toolbutton_2等等。方法命名盡量使用能夠描述本方法功能的英文單詞比如,游戲初始化可以用gameinitial。類名字命名也應(yīng)當(dāng)使用能夠描述本類功能的英文單詞。如方塊類,可以用class block。 游戲總體設(shè)計(jì)分析Java為純面向?qū)ο螅∣bjectOriented,OO)的程序語(yǔ)言,它的諸多優(yōu)點(diǎn)在此就不作論述了。從面向?qū)ο蟮挠^念出發(fā),本程序主要可分為以下幾個(gè)模塊:l 客戶端GUI模塊l 方塊及地圖數(shù)據(jù)模塊l 音頻文件播放模塊l 道具使用模塊l 網(wǎng)絡(luò)傳輸模塊分析對(duì)象的技巧在于它的功能的擴(kuò)展性及維護(hù)效率。試想,如果因?yàn)橥獠凯h(huán)境或者用戶需求的變化需要對(duì)程序進(jìn)行功能擴(kuò)展或者維護(hù),就要對(duì)代碼作大幅度的更動(dòng)甚至重寫,這樣就失去了面向?qū)ο蟮膬?yōu)勢(shì),所以在本程序分析時(shí)將獨(dú)立性高的模塊作為一個(gè)對(duì)象,以提高程序的可擴(kuò)展性和可維護(hù)性。 各模塊的算法設(shè)計(jì) “客戶端控制器”是指游戲界面上顯示游戲相關(guān)信息及排布游戲控件的面板。游戲客戶端控制器上集合了游戲的各種事件處理,包括游戲定時(shí)控制,鍵盤控制,道具控制,音樂播放,選擇網(wǎng)絡(luò)對(duì)戰(zhàn)等各種控制命令。本模塊是程序的主模塊,其它四個(gè)模塊都由本模塊進(jìn)行控制。1 客戶端接口的結(jié)構(gòu),: 關(guān)客戶端控制器程 序 運(yùn) 行網(wǎng) 絡(luò)對(duì) 戰(zhàn)背景音 樂游戲暫 停道具使 用游戲開始 客戶端結(jié)構(gòu)圖2 客戶端接口的實(shí)現(xiàn)一個(gè)程序,在追求程序性能的同時(shí),應(yīng)該同時(shí)注重GUI的美觀度,基于此,本游戲應(yīng)該采用JAVA中swing組件包,swing組件是一組完全由JAVA語(yǔ)言編寫的輕量級(jí)組件,沒有本地代碼,不依賴本機(jī)操作系統(tǒng)的支持,所以swing比AWI具有更強(qiáng)的實(shí)用性,比起AWI組件,swing組件在美觀度和控制性能方面具有如下幾方面的優(yōu)點(diǎn):可插入的外觀感覺在AWI組件中,猶豫控制組件外形惡對(duì)等類與具體平臺(tái)相關(guān),使得AWI組件總是只有與本機(jī)相關(guān)的單一的Lamp。F。swing對(duì)PLamp。F的支持改變了單一圖形界面的觀感,即實(shí)現(xiàn)了在任意平臺(tái)上運(yùn)行同一個(gè)swing程序能有不同惡Lamp。F。變成人員可以在GUI程序設(shè)計(jì)中加入相應(yīng)的開關(guān),使得程序運(yùn)行時(shí)可以根據(jù)喜好選擇不同的Lamp。F,呈現(xiàn)不同個(gè)性化界面。設(shè)置邊框可以使用相應(yīng)的方法為swing組件設(shè)置一個(gè)或多個(gè)邊框。Swing中提供了各種各樣的邊框供用戶選用,也能夠給通過變成人員的組合來(lái)設(shè)計(jì)個(gè)性邊框。充分利用邊框設(shè)計(jì),可以協(xié)助布局管理器對(duì)組件進(jìn)行合理的布局。使用圖標(biāo)此特性使得swing組件較之AWI組件具有更強(qiáng)的外觀感受。與AWT組件不同,許多swing組件如按鈕、標(biāo)簽,不僅可以使用文字,還可以使用圖標(biāo)來(lái)加強(qiáng)外觀效果。支持鍵盤操作在swing組件中,使用Jponent類的registerKeyboardAction方法,能使用戶通過鍵盤操作來(lái)替代鼠標(biāo)驅(qū)動(dòng)GUI上swing組件的相應(yīng)動(dòng)作??纱嫒⌒灾С炙衧wing組件都實(shí)現(xiàn)了可存取性接口,提供對(duì)可存取性的支持,使得輔助功能如屏幕閱讀器、語(yǔ)音識(shí)別系統(tǒng),能十分方便地從swing組件中得到信息。MVC體系結(jié)構(gòu)Swing組件設(shè)置三個(gè)通訊對(duì)象:模型、視圖和控件,并將模型與視圖奮力開來(lái),這樣可以方便用戶直接通過模型管理數(shù)據(jù),實(shí)現(xiàn)基于一種模型的多種視圖處理?;趕wing組件的優(yōu)點(diǎn),結(jié)合本程序的設(shè)計(jì)目標(biāo),程序的界面將使用swing組件實(shí)現(xiàn)。這是俄羅斯方塊游戲最基本的功能模塊,本游戲的設(shè)計(jì)思想是只要有客戶端控制器及方塊地圖數(shù)據(jù)模塊,就能實(shí)現(xiàn)游戲的基本功能。本模塊其實(shí)可以分開為方塊和地圖兩個(gè)模塊,但考慮到二者聯(lián)系緊密,需要共享數(shù)據(jù)結(jié)構(gòu),屬于公共耦合,耦合性過高,將二者分開也有悖于作者設(shè)計(jì)的游戲算法,增加了程序的編寫難度,故把它們并作了一個(gè)對(duì)象。1.方塊數(shù)據(jù)方塊數(shù)據(jù)存儲(chǔ)了七種不同形態(tài)的方塊,以及每個(gè)方塊的四種形態(tài),可用一個(gè)7x4x4x4的四維數(shù)組表示,例如,定義一個(gè)四維數(shù)組block[7][4][4][4],數(shù)組block的第一維表示七種不同形態(tài)的方塊,第二維代表方塊的四種不同翻轉(zhuǎn)狀態(tài)。數(shù)組的第三維和第四維代表某一種形態(tài)的方塊的某一狀態(tài)。假定,block[0][0][i][j]的值如以下:1,1,0,0 0,1,0,0 0,1,0,0 0,0,0,0則,block[0][0][i][j]代表“7”字型的方塊。當(dāng)方塊翻轉(zhuǎn)時(shí),只需改變第二維的下標(biāo)即可,即,block[0][0][i][j]變?yōu)閎lock[0][1][i][j]。而如果更改方塊形態(tài),就改變數(shù)組第一維坐標(biāo)。 2.地圖數(shù)據(jù)本游戲的游戲地圖為25x15格,故應(yīng)當(dāng)用一個(gè)25行15列的二維數(shù)組存儲(chǔ)游戲地圖數(shù)據(jù),但是考慮到本游戲嵌入了方塊越界自動(dòng)糾正功能,而方塊越界,實(shí)際上就是游戲地圖數(shù)組越界。假定,方塊數(shù)據(jù)有以下數(shù)據(jù)模式,代表長(zhǎng)條形的一種方塊:0,0,0,10,0,0,10,0,0,10,0,0,1當(dāng)以上數(shù)據(jù)模式所代表的方塊處在游戲的左邊界區(qū),并且發(fā)生翻轉(zhuǎn)時(shí),方塊可能翻出游戲地圖外,在這種情況下,就發(fā)生了游戲地圖數(shù)組越界,JAVA異常處理系統(tǒng)會(huì)拋出ArrayIndexOutOfBoundsException,為避免這種情況的發(fā)生,游戲地圖數(shù)組應(yīng)當(dāng)適當(dāng)增大,故本游戲?qū)⒌貓D數(shù)組長(zhǎng)度和寬度各擴(kuò)大了三個(gè)單位,定義成為28x18模式的數(shù)組。3.建立游戲的坐標(biāo)系統(tǒng)俄羅斯方塊,最終是要將方塊繪到游戲地圖中,如何確定方塊在地圖上的位置,就需要一個(gè)方塊數(shù)組與游戲地圖數(shù)組的映射關(guān)系。建立一個(gè)合理的坐標(biāo)系統(tǒng),對(duì)于游戲的設(shè)計(jì)有莫大的方便。結(jié)合JAVA的坐標(biāo)系統(tǒng),綜合游戲設(shè)計(jì)上的考慮,本程序最終確定了將游戲地圖的左上角坐標(biāo)表示為(0,0),同樣,方塊在游戲地圖中表示為記錄方塊左上角在游戲地圖中的坐標(biāo)。4.對(duì)方塊數(shù)據(jù)和游戲數(shù)據(jù)的操作確定了方塊數(shù)據(jù)與地圖數(shù)據(jù)的映射關(guān)系,對(duì)方塊和游戲數(shù)據(jù)的操作就變得簡(jiǎn)便了。對(duì)方塊的操作包括方塊的左移、右移、下移等,當(dāng)方塊左移時(shí),只需將方塊數(shù)組左上角的坐標(biāo)往左方向移動(dòng)一個(gè)單位即可,同理,方塊右移、下移時(shí),只需將坐標(biāo)往右、往下移動(dòng)一個(gè)單位。如果以X代表方塊左上角的橫坐標(biāo),以Y代表縱坐標(biāo),方塊左移,執(zhí)行的操作是X,方塊右移,執(zhí)行的操作是X++,方塊下落,執(zhí)行的操作是Y++。5.游戲繪圖俄羅斯方塊具有七種不同形態(tài)的方塊,而方塊又分別有正在下落和已經(jīng)落下固定兩種不同狀態(tài),如何在游戲地圖中實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)地繪制出七種不同形態(tài)的方塊,具有一定的挑戰(zhàn)性。經(jīng)過反復(fù)思考論證,本游戲決定采用不同的繪制模式來(lái)分別實(shí)現(xiàn)繪制動(dòng)態(tài)和靜態(tài)方塊。遍歷方塊數(shù)組繪制動(dòng)態(tài)方塊假定調(diào)用Graphics類中的fill3DRect(int x,int y,int width,int height,Boolean raised)方法繪制方塊,再假定方塊數(shù)組左上角在地圖中的坐標(biāo)為x和y,則繪制動(dòng)態(tài)方塊可采用如下方式實(shí)現(xiàn)。for(int i=0。i=3。i++) for(int j=0。j=3。j++) if(Block[blocktype][turnstate][i][j]==1)((y+j)*width,(x+i)*width,width,width,raised)。這種繪制方式的原理是每一次繪制一個(gè)單位長(zhǎng)度的正方形格子,在將這些格子組合成某一種的形態(tài)方塊。這里面,某一種形態(tài)的方塊是由方塊數(shù)組中的參數(shù)i和j決定的,具體是哪種形態(tài)的方塊,方塊的哪一種翻轉(zhuǎn)狀態(tài),是由參數(shù)blocktype和turnstate決定的。而參數(shù)y+j表示的當(dāng)前格子的左上角在游戲地圖中的橫坐標(biāo),x+i表示的是小格子的縱坐標(biāo)。遍歷游戲地圖數(shù)組實(shí)現(xiàn)墜下方塊的消行繪制當(dāng)墜下的方塊有滿行需要重新繪制時(shí),需要進(jìn)行消行繪制。首先,可用一個(gè)數(shù)值代表游戲地圖數(shù)組的某一個(gè)區(qū)域是否有方塊填充,假定這個(gè)數(shù)值是2,即如果地圖數(shù)組中某一個(gè)元素的值為2,則表示這個(gè)元素所代表的地圖區(qū)域存在方塊。進(jìn)行消行繪制時(shí)需要判斷地圖數(shù)組的某一行是否全為2,如果全為2,則可以認(rèn)為這行被方塊填滿,需要進(jìn)行消行,然后再繼續(xù)往下判斷下一行,直到所有滿行被消除為止。開始結(jié)束否地圖數(shù)組某一行是否全為2是消去這一行 消行流程圖音頻文件的播放涉及到IO操作,不管是何種系統(tǒng),對(duì)于IO操作,都是比較慢的,如果當(dāng)程序運(yùn)行到需要播放音效時(shí),再?gòu)奈募腥〉靡纛l數(shù)據(jù),然后播放,很可能會(huì)造成一種“卡”的感覺,影響用戶體驗(yàn)?;诖?,經(jīng)過反復(fù)論證,本游戲決定采用以剪輯的方式來(lái)播放音頻文件。JAVA語(yǔ)言中的剪輯Clip,是一種在播放之前就提前加載于內(nèi)存中的特殊的音頻數(shù)據(jù)流,當(dāng)需要用時(shí),只需直接從內(nèi)存中調(diào)出即可,省去了IO讀取所需的大量時(shí)間,而且剪輯播放完畢后,仍舊存儲(chǔ)在內(nèi)存中,對(duì)于游戲的背景音樂及音效這類需要反復(fù)多次播放的音頻,這種方式是非常有用的。單單采用剪輯還是不夠的,音頻文件的播放,應(yīng)當(dāng)另外開啟線程來(lái)控制,這樣既可以更方便地控制音頻的播放、暫停等操作,也不會(huì)程序執(zhí)行其它的操作。1.音效播放在游戲開始、暫停,方塊落下及消行時(shí)添加相應(yīng)的音效既可以提醒用戶發(fā)生某種變化,又能增強(qiáng)程序的表現(xiàn)效果。音效,相對(duì)來(lái)說(shuō)是比較小的音頻文件,對(duì)于音效,可選取wav格式的音頻文件,不但音頻質(zhì)量好,在系統(tǒng)支持、存儲(chǔ)性方面也占有優(yōu)勢(shì)。根據(jù)多線程及剪輯的思想,首先在程序初始化時(shí)應(yīng)該把音效載入內(nèi)存,游戲開始后開啟一個(gè)線程,當(dāng)滿足音效播放的條件時(shí),即播放音效,音效播放完畢后,應(yīng)當(dāng)將相應(yīng)的音頻文件的剪輯位置重新置為開始處。2.背景音樂播放同音效的播放,背景音樂的播放也應(yīng)當(dāng)采用剪輯的形式,以方便音樂的循環(huán)多次播放,同樣,背景音樂播放可能是貫穿于整個(gè)游戲過程,背景音樂的播放必須采用單獨(dú)的線程控制,以不影響程序執(zhí)行其它操作。因?yàn)楸尘耙魳凡捎脝为?dú)線程播放,這里面會(huì)出現(xiàn)一個(gè)問題,當(dāng)用戶選擇暫停背景音樂播放時(shí),背景音樂播放線程是進(jìn)入wait狀態(tài)還是以另一種方式實(shí)現(xiàn)暫停?如果背景音樂進(jìn)入wait狀態(tài),則當(dāng)用戶取消暫停播放時(shí),必須再創(chuàng)建一個(gè)線程去喚醒它,新建一個(gè)線程只是控制背景音樂播放,不免浪費(fèi)資源,而且也增加程序編寫難度??紤]到背景音樂極可能在玩家的整個(gè)游戲過程中都處在播放狀態(tài),當(dāng)暫停時(shí),玩家也隨時(shí)會(huì)取消暫停,故而在游戲結(jié)束之前,本程序會(huì)將背景音樂播放線程一直處在執(zhí)行狀態(tài),如果玩家暫停音樂播放,則讓線程轉(zhuǎn)去處理檢測(cè)玩家是否取消暫停,當(dāng)檢測(cè)到暫停取消后,繼續(xù)播放音樂。目前已經(jīng)存在的俄羅斯方塊游戲鮮有能夠使用道具的,開發(fā)一款能夠使用道具功能的俄羅斯方塊游戲具有一定挑戰(zhàn)度,因?yàn)榈谰叩拈_發(fā)不僅涉及到游戲策劃等創(chuàng)意性的內(nèi)容,也與圖形圖像處理等美工技術(shù)息息相關(guān),而作者對(duì)美工卻是不擅長(zhǎng)的,基于此,本游戲最初版本的道具可能只有一個(gè),但是為了將來(lái)版本提升的方便,本程序另外預(yù)留了三種道具的使用接口。本游戲一共設(shè)計(jì)了五種道具,旋轉(zhuǎn)方塊、炸彈、地雷、仙女、惡魔,這四種道具是程序現(xiàn)今或?qū)?lái)版本提升后要使用到的,暫時(shí),本游戲?qū)⒅粚?shí)現(xiàn)旋轉(zhuǎn)方塊和炸彈兩種道具。1.旋轉(zhuǎn)方塊旋轉(zhuǎn)方塊是一種增加游戲難
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1