版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)論文java俄羅斯方塊游戲</p><p><b> 摘 要</b></p><p> 在現(xiàn)今電子信息高速發(fā)展的時代,電子游戲已經(jīng)深入人們的日常生活,成為老少皆宜的娛樂方式。但是游戲設(shè)計結(jié)合了日新月異的技術(shù),在一個產(chǎn)品中整合了復(fù)雜的設(shè)計、藝術(shù)、聲音和軟件,所以并不是人人皆知。直到今天,在中國從事游戲設(shè)計的人仍然很少,但是游戲行業(yè)的發(fā)
2、展之快,遠(yuǎn)超如家電、汽車等傳統(tǒng)行業(yè),也正因為如此,游戲人才的教育、培養(yǎng)遠(yuǎn)落后于產(chǎn)業(yè)的發(fā)展。</p><p> 俄羅斯方塊是個老幼皆宜的小游戲,它實現(xiàn)由四塊正方形的色塊組成,然后存儲在一個數(shù)組的四個元素中,計算機(jī)隨機(jī)產(chǎn)生不同七種類型的方塊,根據(jù)計算機(jī)時鐘控制它在一定的時間不停的產(chǎn)生,用戶根據(jù)鍵盤的四個方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,(控制鍵的實現(xiàn)是由鍵盤的方向鍵的事件處理實現(xiàn))。然后程序根據(jù)這七種方塊堆疊成
3、各種不同的模型。</p><p> 論文描述了游戲的歷史,開發(fā)此游戲的環(huán)境,游戲開發(fā)的意義。遵循軟件工程的知識,從軟件問題定義開始,接著進(jìn)行可行性研究、需求分析、概要設(shè)計、詳細(xì)設(shè)計,最后對軟件進(jìn)行了測試,整個開發(fā)過程貫穿軟件工程的知識體系。</p><p> 此次設(shè)計在Microsoft Windows XP系統(tǒng)下,以Java為開發(fā)語言,在eclipse開發(fā)平臺上進(jìn)行游戲的設(shè)計與實踐。
4、</p><p> 關(guān)鍵詞:游戲設(shè)計;算法;數(shù)組;事件</p><p><b> 引 言</b></p><p> 游戲是人們活動中一項非常重要的內(nèi)容,有人認(rèn)為如果哪一天人類對所有的游戲都失去興趣,恐怕世界的末日就要到了。電腦對游戲的貢獻(xiàn)有目共睹,現(xiàn)在摸過電腦的人很少有沒玩過電腦游戲的,喜歡游戲的人也很少有不玩電腦的。</p&
5、gt;<p> 俄羅斯方塊是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它曾經(jīng)造成的轟動與造成的經(jīng)濟(jì)價值可以說是游戲史上的一件大事。這款游戲最初是由蘇聯(lián)的游戲制作人Alex Pajitnov制作的,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個俄羅斯方塊時代。究其歷史,俄羅斯方塊最早還是出現(xiàn)在PC機(jī)上,而我國的用戶都是通過紅白機(jī)了解、喜歡上它的?,F(xiàn)在聯(lián)眾又將重新掀起這股讓人沉迷的俄羅斯
6、方塊風(fēng)潮。對一般用戶來說,它的規(guī)則簡單,容易上手,且游戲過程變化無窮,而在"聯(lián)眾俄羅斯方塊"中,更有一些聯(lián)眾網(wǎng)絡(luò)游戲所獨有的魅力――有單機(jī)作戰(zhàn)與兩人在線對戰(zhàn)兩種模式,用戶可任選一種進(jìn)行游戲。網(wǎng)絡(luò)模式還增加了積分制,使用戶既能感受到游戲中的樂趣,也給用戶提供了一個展現(xiàn)自己高超技藝的場所。</p><p> 俄羅斯方塊游戲可以說是隨計算機(jī)的發(fā)展而發(fā)展,并不斷推陳出新演變出各種類似游戲, 深受廣大
7、玩家喜愛。這個游戲有的簡單, 有的復(fù)雜, 但其根本原理是一樣的都是對運(yùn)動的方塊進(jìn)行組合, 來訓(xùn)練玩家的反應(yīng)能力。談到游戲軟件, 大多數(shù)人都認(rèn)為其神妙莫測, 高不可及。而一般游戲軟件也確實具有很高的技術(shù)難度, 隨著開發(fā)工具及軟件開發(fā)方法學(xué)的不斷發(fā)展, 動手開發(fā)游戲也不是十分困難的。俄羅斯方塊游戲是一種古老而又有趣的游戲, 游戲軟件不計其數(shù), 網(wǎng)上就有好多關(guān)于實現(xiàn)的復(fù)雜算法和設(shè)計, 其難度讓一般初學(xué)者望而卻步。本文利用數(shù)組作為方塊的數(shù)據(jù)結(jié)構(gòu)
8、,提出一種用JAVA語言實現(xiàn)的簡易方法, 對初學(xué)者可仿此開發(fā)類似游戲, 并了解游戲軟件的設(shè)計與開發(fā)過程。</p><p><b> 1.緒論</b></p><p> 1.1 電子游戲及其分類</p><p> 電子游戲,也就是運(yùn)行在家用電腦、家用電子游戲機(jī)或是掌中寶游戲機(jī)及街機(jī)上的電子游戲程序。電子游戲是一種結(jié)合劇情故事、美術(shù)、音樂、
9、動畫、程序等技術(shù)于一身的互動型娛樂軟件,涉及到多個行業(yè)。 </p><p> 從電子游戲的分類來看,有著多種分類方式。傳統(tǒng)的游戲分類是按照游戲類型,將其分為即時戰(zhàn)略游戲、第一人稱射擊游戲、角色扮演游戲、策略型游戲等類別。根據(jù)游戲運(yùn)行平臺的不同,可將電子游戲分為游戲機(jī)游戲、單機(jī)版PC 游戲、互動電視游戲、在線游戲和手機(jī)游戲。此外,韓國政府將電子游戲業(yè)分為家用游戲機(jī)游戲、單機(jī)版PC 游戲、網(wǎng)絡(luò)游戲和街機(jī)游戲四大類。
10、考慮到中韓游戲業(yè)比較接近,論文采用韓國的分類標(biāo)準(zhǔn)?!熬W(wǎng)絡(luò)游戲”也就是人們一般所指的“在線游戲”,是指通過互聯(lián)網(wǎng)進(jìn)行的電腦游戲,通過人與人之間的互動達(dá)到交流、娛樂和休閑的目的。在互聯(lián)網(wǎng)(局域網(wǎng))技術(shù)出現(xiàn)之前,電子游戲都可以歸于單機(jī)版游戲,即“人機(jī)對戰(zhàn)”游戲,或最多是雙人對戰(zhàn)游戲。而隨著互聯(lián)網(wǎng)技術(shù)的出現(xiàn),通過連接游戲服務(wù)器,上百、上千、乃至上萬的游戲玩家同時連線娛樂成為了現(xiàn)實,這就大大增加了游戲的互動性、真實性,豐富了電子游戲的內(nèi)涵。從網(wǎng)絡(luò)
11、游戲的分類來看,目前業(yè)界還沒有一個比較統(tǒng)一規(guī)范的分類。隨著計算機(jī)設(shè)備和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子游戲在全球得到了迅猛的發(fā)展,取得了巨大的成功,已成為當(dāng)今世界上不可缺少的精神糧食。</p><p> 1.2 電子游戲發(fā)展現(xiàn)狀</p><p> 1.2.1 電子游戲在國外的發(fā)展現(xiàn)狀</p><p> 電子游戲是最初產(chǎn)生于美國,1971年,一個還在MIT就讀的學(xué)生設(shè)計了世
12、界上第一個業(yè)務(wù)用游戲機(jī),這個街機(jī)游戲的名字叫《電腦空間》??梢哉f時至今日,電子游戲仍然是外國的天下。</p><p> 美國至今仍是世界第一大游戲市場,它遵循的是以發(fā)行商為主的產(chǎn)業(yè)開發(fā)鏈模式,根據(jù)美國市場調(diào)查公司NPD Group調(diào)查統(tǒng)計,美國2004年游戲總銷售金額(包括家用、掌上型主機(jī)及軟件)為99億美元,占了全球游戲市場的45%。其中游戲軟件銷售的具體數(shù)字是:視頻游戲軟件的銷售額達(dá)52億美元(1.6億套)
13、,PC游戲軟件銷售額達(dá)11億美元(4500萬套),掌機(jī)游戲銷售額達(dá)10億美元(4230萬套)。2004年一共大約有2.48億套游戲售出。據(jù)估計,美國每個家庭平均購買過2部游戲[3]。</p><p> 日本近20年來瘋狂賺電子游戲的錢。從上世紀(jì)60年代初的街機(jī),到六七十年代之間的家用游戲機(jī),再到八九十年代的掌上游戲機(jī),日本經(jīng)過30多年的耕耘,終于把電子游戲這棵“搖錢樹”,培育成第一時尚娛樂產(chǎn)業(yè),壟斷全球業(yè)界長達(dá)
14、10余年。對于日本來說,電玩業(yè)已是國家經(jīng)濟(jì)的重要支柱之一,在GDP中占有1/5的舉足輕重地位。日本游戲業(yè)在最輝煌的1998年,曾經(jīng)占領(lǐng)全球電子游戲市場硬件90%以上,軟件50%以上。</p><p> 韓國號稱世界上網(wǎng)絡(luò)游戲產(chǎn)業(yè)最發(fā)達(dá)國家之一。迄今為止,國內(nèi)網(wǎng)絡(luò)游戲市場有超過60%的產(chǎn)品來自韓國游戲軟件開發(fā)商,韓國網(wǎng)絡(luò)游戲使國內(nèi)很多游戲運(yùn)營公司在游戲營銷市場或股票資本市場上獲得了巨大的成功。 韓國游戲市場的發(fā)展
15、不是偶然,韓國政府不僅給游戲產(chǎn)業(yè)以正確的定位和引導(dǎo),更是將其和本國經(jīng)濟(jì)發(fā)展緊密地聯(lián)系到一起,做了很多市場培育方面的工作。韓國政府認(rèn)識到,靠重型工業(yè)來支撐全國經(jīng)濟(jì)的做法是片面的,于是將IT、娛樂產(chǎn)業(yè)視為新的經(jīng)濟(jì)增長點,開始大力扶持。從那時起,科技含量極高而能源消耗極低的游戲制作及相關(guān)產(chǎn)業(yè)擔(dān)負(fù)起了“富國興邦”的重?fù)?dān)。由文化觀光部出面組建韓國游戲支援中心,向韓國游戲產(chǎn)業(yè)提供從資金到技術(shù)上的多方面支援;成立游戲投資聯(lián)盟,政府每年向游戲產(chǎn)業(yè)投入的
16、資金多達(dá)500億韓元,并為游戲企業(yè)提供長期的低息貸款;設(shè)立信息化基金和文化產(chǎn)業(yè)基金,為游戲產(chǎn)業(yè)服務(wù);對指定的風(fēng)險企業(yè)實行各種稅制優(yōu)惠政策,減少甚至免除游戲企業(yè)的稅務(wù)負(fù)擔(dān);建設(shè)游戲產(chǎn)業(yè)基地以扶持中小游戲企業(yè)的發(fā)展;對從事游戲產(chǎn)業(yè)的高科技人才免除兩年的兵役。 在韓國,從制作到運(yùn)營,一個網(wǎng)絡(luò)游戲公司起步門檻較低,主要得益于政府實行的援助計劃。此外,在有</p><p> 1.2.2 電子游戲在國內(nèi)的發(fā)展現(xiàn)狀</
17、p><p> 與電子游戲發(fā)達(dá)的國家相比,我國在電子游戲方面還存在比較大的差距。目前,我國游戲市場正處于發(fā)展階段,但市場上的游戲軟件主要來自日本、美國、韓國等地,但由本土游戲制作人開發(fā)創(chuàng)作的游戲正在高速增加,國產(chǎn)原創(chuàng)的游戲即將成為游戲的主流。</p><p> 中國的游戲產(chǎn)業(yè)經(jīng)過80年代初期臺灣廠商的探索至90年代,開始了自己的研發(fā)、發(fā)行的歷程,直至網(wǎng)絡(luò)游戲的風(fēng)行,讓中國的網(wǎng)絡(luò)游戲開始有了飛
18、速的發(fā)展。 1983年,智冠科技有限公司在中國臺灣成立,為全球第一家簽訂授權(quán)重制中文版產(chǎn)品代理銷售合約的公司,2000年智冠在臺灣股票上市, 2002年其控股的中華網(wǎng)龍在臺灣上市。</p><p> 1996年底,UBI SOFT上海分公司暨上海育碧電腦軟件有限公司成立。同年,全球游戲軟件領(lǐng)軍企業(yè)EA在中國上海成立辦事處。1997年,由尚洋公司制作的《血獅》正式上市。 1997年,北京新天地互動多媒體技術(shù)有限公
19、司成立,該公司引進(jìn)了《古墓麗影III》(TombRaider III)、《盟軍敢死隊》等著名歐美游戲,并在1999年在中國率先掀起“游戲軟件價格革命”,全面推行50元的價格體系,從此正版游戲價格開始貼近大眾消費者。 1999年,業(yè)內(nèi)估算中國電腦游戲市場(正版)約1.5億元人民幣。 2000年,大陸華彩軟件代理發(fā)行第一款中文MMORPG《萬王之王》正式推出,該游戲于1999年在臺灣發(fā)行,由臺灣雷爵資訊(Lager)開發(fā)。也在2000年,繼
20、《萬王之王》、《石器時代》、《網(wǎng)絡(luò)三國》在臺灣上市之后,游戲桔子推出了《天堂》,游戲桔子成立于1995年,1999年以《便利店》在臺灣奠定了地位?!短焯谩愤@款由韓國著名游戲公司Ncsoft研發(fā)的網(wǎng)絡(luò)游戲不但在本國大獲成功,也在臺灣再次奪冠。 2001年初,北京華義在中國大陸地區(qū)正式推出了《石器時代》,華義國際股份有限公司于1993年在臺北成立,</p><p> 2005年1月21日,中央電視臺報道:我國網(wǎng)絡(luò)游
21、戲產(chǎn)業(yè)當(dāng)年增加了50%,今后幾年都將以50%以上的速度增長;第一屆中國網(wǎng)絡(luò)游戲年會報道:中國國內(nèi)網(wǎng)絡(luò)游戲2004年規(guī)模達(dá)24.7億元,2009年規(guī)模將達(dá)到109.6億元。</p><p><b> 2.可行性研究</b></p><p><b> 2.1 設(shè)計目的</b></p><p> 通過本游戲的設(shè)計,綜合自己
22、在校期間所學(xué)的理論知識,設(shè)計開發(fā)俄羅斯方塊游戲,使自己熟悉應(yīng)用系統(tǒng)的開發(fā)過程,培養(yǎng)獨立思考能力,檢驗學(xué)習(xí)效果和動手能力,初步掌握軟件工程的系統(tǒng)理論,初步掌握MVC這種設(shè)計模式,進(jìn)一步鞏固和加強(qiáng)自身對j2se基礎(chǔ)知識的理解,提高自己的編程水平,從而達(dá)到理論與實踐相結(jié)合的目的。</p><p> 2.2 軟件問題定義</p><p> 基本要求:本游戲開發(fā)的總體任務(wù)是實現(xiàn)游戲的可操作性,以
23、及界面的美觀性。整個開發(fā)過程遵循軟件工程規(guī)范,采用JAVA GUI編程來實現(xiàn)界面以及事件的控制,用戶根據(jù)鍵盤的四個方向鍵控制翻轉(zhuǎn)、向左、向右和向下操作,通過菜單欄中的相應(yīng)菜單選項實現(xiàn)游戲的開始、結(jié)束、變換方塊、積分以及等級的功能。</p><p> 目標(biāo):通過本游戲的開發(fā),主要實現(xiàn)游戲的可操作性以及美觀性,同時使自己對JAVA語言的了解更進(jìn)一層,為將來的實際工作打下堅實的基礎(chǔ)。</p><p
24、> 條件、假定和限制:由于知識以及能力的限制,本游戲所實現(xiàn)的功能不夠強(qiáng)大,可對本游戲進(jìn)行改善,從而增強(qiáng)游戲的功能。</p><p> 可行性研究的方法:通過研究分析俄羅斯方塊所具備的能力及實現(xiàn)的方法、確定主體結(jié)構(gòu)。利用現(xiàn)階段我所能達(dá)到的能力,以最簡潔、最容易的辦法,邊開發(fā)邊測試邊修改,實現(xiàn)一個初級游戲軟件。</p><p> 評價尺度:由于本軟件是一個初級產(chǎn)品,對其要求不是太苛
25、刻,所以能夠達(dá)到俄羅斯游戲的一般功能即可。</p><p><b> 2.3 可行性分析</b></p><p> 技術(shù)可行性:開發(fā)本游戲的編程語言有多種,考慮到自身對語言的掌握程度,選擇JAVA語言進(jìn)行游戲的開發(fā),采用JAVA GUI編程來實現(xiàn)界面以及事件的控制。</p><p> 經(jīng)濟(jì)可行性:本游戲的開發(fā)旨在完成畢業(yè)設(shè)計,不注重直接的
26、經(jīng)濟(jì)效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟(jì)要求也不高,只要有一臺能運(yùn)行相應(yīng)JAVA程序的電腦便可,所以不用考慮到經(jīng)濟(jì)問題。</p><p> 社會可行性:本游戲的開發(fā)主要為了完成畢業(yè)設(shè)計,開發(fā)的主體是個人,不存在法律上的侵權(quán)行為,也不會為社會造成影響,這方面是完全可行的。</p><p><b> 3.需求分析</b></p>
27、<p><b> 3.1 引言</b></p><p> 對軟件需求分析就是通過調(diào)查研究,建立系統(tǒng)的數(shù)據(jù)模型、功能模型、行為模型,用戶和開發(fā)人員在“系統(tǒng)必須做什么”這個問題上實現(xiàn)相互理解,達(dá)到共識,從而形成雙方認(rèn)可的軟件產(chǎn)品的需求規(guī)格說明書。這樣有益于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程中的控制與管理,便于采用工程方法開發(fā)軟件,提高軟件的質(zhì)量,便于開發(fā)人員、維護(hù)人
28、員、管理人員之間的交流、協(xié)作,并作為工作成果的原始依據(jù),并且在向潛在用戶傳遞軟件功能、性能需求,使其能夠判斷該軟件是否與自己的需求相關(guān)。</p><p><b> 3.2 游戲需求</b></p><p> 28種狀態(tài)的方塊隨機(jī)產(chǎn)生,自由下落,落下時可由玩家用上、下、左、右控制鍵控制翻轉(zhuǎn)和移動,以便以玩家所需要的形態(tài)和位置落下。如果落下時,方塊的方格能填滿某一行,
29、則這一行可消去。消去一行后,游戲可給玩家加分,若由存在空格的方塊填滿整個窗口,則游戲失敗。游戲功能需求如下:</p><p> 游戲界面需求:設(shè)計良好的游戲界面可以讓玩家充分感受到游戲帶來的娛樂性,游戲的背景色是黑色,方塊用藍(lán)色顏色,在一定的區(qū)域內(nèi)運(yùn)動和變形,落下后的障礙物用黃色顯示,這樣看起來會有一定的美感。</p><p> 游戲形狀需求:用數(shù)組作為存儲方塊28種狀態(tài)的數(shù)據(jù)結(jié)構(gòu),即
30、長條形、Z字形、反Z形、田字形、7字形、反7形、T字型,各個方塊要能實現(xiàn)它的變形,可設(shè)為順時針或逆時針變形,一般為逆時針。</p><p> 鍵盤處理事件需求:方塊下落時,可通過鍵盤方向鍵(上、下、左、右鍵)對該方塊進(jìn)行向上(變形),向下(加速)、向左、向右移動。</p><p> 鼠標(biāo)處理事件需求:通過點擊菜單欄中相應(yīng)的菜單項,可以實現(xiàn)游戲的開始、結(jié)束,方塊形狀的變換,分?jǐn)?shù)、等級的顯
31、示,以及游戲幫助等功能。</p><p> 顯示需求:當(dāng)不同的方塊填滿一行時可以消行,剩余方塊向下移動并統(tǒng)計分?jǐn)?shù)。當(dāng)達(dá)到一定分?jǐn)?shù)的時候,會增加相應(yīng)的等級。</p><p><b> 3.3 軟硬件需求</b></p><p> 操作系統(tǒng):Microsoft Windows XP Professional Service Pack 2<
32、;/p><p><b> 內(nèi)存:512M</b></p><p><b> 硬盤:80G</b></p><p><b> CPU:賽揚(yáng)2.8</b></p><p> 交互工具:鍵盤/鼠標(biāo)</p><p> 顯示器:VGA顯示器</p>
33、;<p> JDK版本:jdk1.6.0.02</p><p> Eclipse版本:eclipse-SDK-3.4-win32</p><p><b> 3.4 接口控制</b></p><p> 本游戲通過鍵盤進(jìn)行操作,在Windows的操作系統(tǒng)下,利用鍵盤的上、下、左、右鍵對方塊進(jìn)行移動變形,要使用鍵盤的接口事件。&
34、lt;/p><p><b> 3.5 方案論證</b></p><p> 學(xué)?,F(xiàn)已開設(shè)的課程有C語言、C++,java,自己本身自學(xué)了Java,通過網(wǎng)上以及圖書館的資料,知道可以通過C,C++,VB,Delphi,Java實現(xiàn)俄羅斯方塊游戲的設(shè)計。下面簡單介紹下VB、C++、Java各自的優(yōu)點:</p><p> 3.5.1 VB的優(yōu)點<
35、;/p><p> 全稱Visual Basic,它是以Basic語言作為其基本語言的一種可視化編程工具。在中國乃至全世界都能看到它的身影,它曾是在中國最為流行的編程工具,到現(xiàn)在還占 據(jù)著非常重要的地位,對于它的好壞大家都有一定的了解,VB作為一種較早出現(xiàn)的開發(fā)程序以其容易學(xué)習(xí),開發(fā)效率較高,具有完善的幫助系統(tǒng)等優(yōu)點曾影響了好 幾代編程人員,但是由于VB不具備跨平臺這個特性,從而也決定了VB在未來的軟件開發(fā)中將會逐漸
36、地退出其歷史舞臺;它對組件技術(shù)的支持是基于COM和 ActiveX,對于組件技術(shù)不斷完善發(fā)展的今天,它也顯出了它的落后性;同時VB在進(jìn)行系統(tǒng)底層開發(fā)的時候也是相對復(fù)雜的,調(diào)用API函數(shù)需聲明,調(diào)用 不方便,不能進(jìn)行DDK編程,不可能深入Ring0編程,不能嵌套匯編;而且面向?qū)ο蟮奶匦圆?;網(wǎng)絡(luò)功能和數(shù)據(jù)庫功能也沒有非常突出的表現(xiàn),綜上所 述,VB作為一種可視化的開發(fā)工具由于其本身的局限性,導(dǎo)致了它在未來軟件開發(fā)中逐步被其他工具所代替。&l
37、t;/p><p> 3.5.2 C++的優(yōu)點</p><p> C++是對C語言的擴(kuò)充,擴(kuò)充的絕大部分來自著名語言中的最佳特性:從SIMULA 67中吸取了類,從ALGOL 68中吸取了運(yùn)算符一名多用、引用和在分程序中任何地方說明變量,綜合了Ada的類屬和Clu的模塊特點,從BCPL中吸取異常處理,從BCPL中吸取了用//表示注釋。</p><p> C++保持了
38、C的緊湊、靈活、高效和易移植強(qiáng)的優(yōu)點,它對數(shù)據(jù)抽象的支持主要在于類概念和機(jī)制,對面向?qū)ο箫L(fēng)范的支持主要通過虛擬函數(shù)。C++既有數(shù)據(jù)抽象和面向?qū)ο竽芰ΓZ言運(yùn)行性能高多,加上C語言的普及,而從C至C++的過渡較為平滑,以及C++與C的兼容程度可使數(shù)據(jù)巨大的C程序能方便地在C++環(huán)境中重用。</p><p> 盡管C++當(dāng)初的設(shè)計本意是幫助管理大型程序,但其用途并不僅限于此。C++的面向?qū)ο蟮奶匦钥捎行У赜糜趯嶋H的
39、程序設(shè)計工作。C++常常用于設(shè)計編輯器、數(shù)據(jù)庫、個人文件系統(tǒng)以及通訊程序等。而且,由于C++共享C的效率,所以用C++可以構(gòu)成很多高性能的系統(tǒng)軟件。</p><p> 3.5.3 Java的優(yōu)點</p><p><b> (1) 安全性 </b></p><p> Java是一種安全的網(wǎng)絡(luò)編程語言,不支持指針類型,一切對內(nèi)存的訪問都必須通
40、過對象的實例來實現(xiàn)。這樣能夠防止他人使用欺騙手段訪問對象的私有成員,也能夠避免在指針操作中易產(chǎn)生的錯誤。</p><p> 此外,Java的安全性體現(xiàn)在多個層次上:在編譯層,有語法檢查;在解釋層,有字節(jié)碼校驗器,可進(jìn)行代碼段格式測試和規(guī)則檢查、訪問權(quán)限和類型轉(zhuǎn)換合法性檢查、操作數(shù)堆棧的上溢和下溢檢測、代碼參數(shù)類型合法性檢查等;在平臺層上,通過配置策略,可設(shè)定訪問資源域,無須區(qū)分本地或遠(yuǎn)程。</p>
41、<p> (2) 可移植性 </p><p> Java具備有很好的移植性,這主要得益于它與平臺無關(guān)的特性。同時,Java的類庫中也實現(xiàn)了與平臺無關(guān)的接口,這使得這些類庫也能移植。同時,Java編譯器主要是由Java本身來實現(xiàn)的,Java的運(yùn)行系統(tǒng)(解釋器)由標(biāo)準(zhǔn)C語言實現(xiàn),因而整個Java系統(tǒng)都具有可移植性。 </p><p> (3) 多線程機(jī)制 </p&g
42、t;<p> Java具有多線程機(jī)制,這使得應(yīng)用程序能夠并行地執(zhí)行。它的同步機(jī)制也保證了對共享數(shù)據(jù)的共享操作,而且線程具有優(yōu)先級的機(jī)制,有助于分別使用不同線程完成特定行為,也提高了交互的實時響應(yīng)能力。Java的多線程技術(shù)使網(wǎng)上實時交互實現(xiàn)很容易,從而為解決網(wǎng)上大數(shù)量的客戶訪問提供了技術(shù)基礎(chǔ)。</p><p><b> (4) 跨平臺</b></p><
43、p> 通常,在Windows下編寫的程序是不能直接拿到UNIX上運(yùn)行的,因為程序的執(zhí)行最終必須轉(zhuǎn)換成為計算機(jī)硬件的機(jī)器指令來執(zhí)行,專門為某種計算機(jī)硬件和操作系統(tǒng)編寫的程序是不能夠直接放到其他類型的計算機(jī)硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計算機(jī)上運(yùn)行,就要求程序設(shè)計語言能夠跨越各種軟件和硬件平臺,而Java恰恰滿足了這一需求。Java編譯器能夠產(chǎn)生一種與計算機(jī)體系結(jié)構(gòu)無關(guān)的字節(jié)指令,只要安裝了Java虛擬機(jī),J
44、ava就可以在相應(yīng)的處理機(jī)上執(zhí)行。</p><p> 3.5.4 方案的選擇</p><p> 面向?qū)ο蟮某绦蛟O(shè)計吸取了結(jié)構(gòu)化程序設(shè)計的先進(jìn)思想,并把它們同幾個支持用戶用新方法進(jìn)行程序設(shè)計的有力概念結(jié)合在一起。</p><p> 所有面向?qū)ο蟮某绦蛟O(shè)計語言一般都包含三個概念:封裝、多態(tài)性和繼承性。</p><p> 這種方法要求語言必
45、須具備抽象、封裝、繼承和多態(tài)性這幾個關(guān)鍵要素。</p><p> 面向?qū)ο蟮某绦蛟O(shè)計,是通過數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對程序進(jìn)行模塊化的一種程序設(shè)計方法,這些模塊可以被用作樣板,在需要時再建立其副本。</p><p> C++和Java在面向?qū)ο筮@方面比VB要強(qiáng),所以我排除了用VB做的可能性。但是C++為了與C語言兼容,其是包含了些面向過程的成分;Java除了C++中非面向
46、過程的部分,其程序編寫過程就是設(shè)計、實現(xiàn)類,定義其屬性、行為的過程。還有Java特有的“沙箱”機(jī)制是其安全性的保障,同時它去除了C++中易造成的錯誤指針,增加了自動內(nèi)存管理等措施,保證了Java程序運(yùn)行的可靠性。</p><p> 所以經(jīng)過再三比較了三種語言后,決定采用Java語言編寫俄羅斯方塊。</p><p><b> 4. 概要設(shè)計</b></p&g
47、t;<p> 4.1 游戲設(shè)計方案的確定</p><p> 本游戲的設(shè)計采用MVC模式(Model -View -Controller),即把本游戲的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣本游戲的設(shè)計被分成三個層—模型層、視圖層、控制層。MVC模型圖如下所示:</p><p> 4.2 系統(tǒng)流程結(jié)構(gòu)設(shè)計</p>
48、<p> 4.3 各個功能模塊圖設(shè)計</p><p> 4.3.1 模型層(Model)功能模塊圖設(shè)計</p><p> 4.3.2 視圖層(View)功能模塊圖設(shè)計</p><p> 4.3.3 控制層(Controller)功能模塊圖設(shè)計</p><p><b> 5. 詳細(xì)設(shè)計</b><
49、;/p><p> 5.1模型層(Model)設(shè)計</p><p> 5.1.1 圖形的產(chǎn)生</p><p> 通過圖形工廠類ShapeFactory的getShape(ShapeListener listener)方法隨機(jī)產(chǎn)生方塊的某種狀態(tài),這里運(yùn)用了工廠設(shè)計模式,這種設(shè)計模式是為了實現(xiàn)高內(nèi)聚低耦合而存在的,這種設(shè)計模式的通俗解釋就是:你想要一個產(chǎn)品,你需要讓工廠
50、給你生產(chǎn)一個,你要告訴工廠你要生產(chǎn)什么產(chǎn)品,就把你需要生產(chǎn)的這個產(chǎn)品當(dāng)做參數(shù)傳給工廠類的生產(chǎn)產(chǎn)品的方法,然后根據(jù)你傳進(jìn)來的產(chǎn)品,而決定工廠人生產(chǎn)什么產(chǎn)品,產(chǎn)生出來產(chǎn)品后,最后要返回您要的這個東西。</p><p> 5.1.2 圖形的數(shù)據(jù)結(jié)構(gòu)</p><p> 定義一個4x4方陣,共16個小格。用“0”和“1”來表示每個方格是繪制還是空白,由此可以組合出多種圖形,如圖所示:</p
51、><p> 其中圖一表示為{0,0,0,0, 1,1,1,1 , 0,0,0,0, 0,0,0,0}</p><p> 其中圖二表示為{0,0,0,0, 0,1,1,0 , 0,1,1,0, 0,0,0,0}</p><p> 其中圖三表示為{0,0,0,0, 0,1,0,0 , 0,1,1,1, 0,0,0,0}</p><p> 其中
52、圖四表示為{0,0,0,0, 0,1,0,1 , 0,1,1,0, 0,0,1,0}</p><p> 方塊的旋轉(zhuǎn)是通過繪制4個方向的方塊,在不同旋轉(zhuǎn)角度顯示不同方向的方塊來完成的。所以程序要控制方塊的旋轉(zhuǎn)方向,只要控制顯示哪副圖就可以了。</p><p> 本游戲是用一個三維數(shù)組int[][][] shapes = new int[][][];作為存儲方塊的數(shù)據(jù)結(jié)構(gòu)來保存方塊的28種
53、狀態(tài)的。</p><p> 5.1.3 圖形的移動</p><p> 圖形類Shape保存了自己的位置信息,用left表示圖形到左邊界的距離,top表示圖形到上邊界的距離,圖形移動就是改變left和top的值。向上移動:top減1,向下移動:top加1,向左移動:left減1,向右移動:left加1。</p><p> 圖形的移動分為圖形的自動下落以及通過按鍵
54、事件實現(xiàn)圖形的左移、右移以及加速下移。通過多線程ShapeDriver類來實現(xiàn)圖形的自動下移,由于游戲中方塊的動態(tài)性,每個方塊有一定的生命周期,所以選用線程來實現(xiàn)方塊。一個方塊用一個線程類對象實現(xiàn),該類繼承與Thread類,當(dāng)一個方塊出現(xiàn)時也就表示一個線程對象產(chǎn)生并開始運(yùn)行。通過對按鍵事件的響應(yīng),實現(xiàn)圖形的左移、右移以及加速下移。</p><p> 5.1.4 圖形的變形</p><p>
55、; 通過int type = new Random().nextInt(shapes.length); shape.setBody(shapes[type]);</p><p> shape.setStatus(0);實現(xiàn)初始圖形的初始化,通過status = (status + 1) % body.length;實現(xiàn)圖形的變形功能。</p><p> 5.1.5 存儲和表示障礙物
56、</p><p> 用一個和顯示區(qū)域的面板大小相對應(yīng)的二維數(shù)組保存障礙物的位置信息,如果對應(yīng)的位置是障礙物,則這個數(shù)組中相應(yīng)的元素就為1,否則就為0。如何把圖形變成障礙物呢?只要把屬于圖形的格子對應(yīng)的位置都變成障礙物即可。代碼如下:</p><p> public boolean isMember(int x, int y, boolean rotate) {</p>&
57、lt;p> int tempStatus = status;</p><p> if(rotate) {</p><p> tempStatus = (status + 1) % body.length;</p><p><b> }</b></p><p> return body[tempStatus
58、][y*4 + x] == 1;</p><p><b> }</b></p><p> public void accept(Shape shape) {</p><p> System.out.println("Ground's accept");</p><p> for(int
59、 x=0; x<4; x++) {</p><p> for(int y=0; y<4; y++) {</p><p> if(shape.isMember(x, y, false)) {</p><p> if((shape.getLeft() + x)<Global.WIDTH && (shape.getTop() + y
60、)<Global.HEIGHT)</p><p> zaw[shape.getLeft() + x][shape.getTop() + y] = 1;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
61、</p><p><b> }</b></p><p> 5.1.6 判斷滿行及消行</p><p> 如果某一行沒有空白,則這一行就是滿行。滿的那行上面所有的行整體下移一行就是消除這個滿行。代碼如下:</p><p> private void deleteFullLine() {</p><
62、;p> for(int y=Global.HEIGHT-1; y>=0; y--) {</p><p> boolean full = true;</p><p> for(int x=0; x<Global.WIDTH; x++) {</p><p> if(zaw[x][y] == 0) {</p><p>
63、full = false;</p><p><b> }</b></p><p><b> }</b></p><p> if(full) {</p><p> deleteLine(y);</p><p><b> }</b></p&g
64、t;<p><b> }</b></p><p><b> }</b></p><p> private void deleteLine(int lineNum) {</p><p> for(int y=lineNum; y>0; y--) {</p><p> fo
65、r(int x=0; x<Global.WIDTH; x++) {</p><p> zaw[x][y] = zaw[x][y-1];</p><p><b> }</b></p><p><b> }</b></p><p> for(int x=0; x<Global.WID
66、TH; x++) {</p><p> zaw[x][0] = 0;</p><p><b> }</b></p><p> deleteFullLine();</p><p><b> }</b></p><p> 利用循環(huán)語句從屏幕最底行依次向上對有方塊的每一行
67、進(jìn)行判斷,判斷某一行中是否有空白,如果沒有空白的話,則將當(dāng)前的行號傳遞給deleteLine(int lineNum)方法,由該方法實現(xiàn)消除當(dāng)前行,并將上面的方塊依次下移一行,最后再重新調(diào)用deleteFullLine()方法進(jìn)行查找,直到所有行都檢查一遍結(jié)束。</p><p> 5.2視圖層(View)設(shè)計</p><p> 5.2.1 方塊的顯示</p><p&
68、gt; 通過視圖層的GamePanel類的paint(Graphics g)方法調(diào)用Shape類的drawMe(Graphics g)方法,從而實現(xiàn)方塊的繪制,代碼如下:</p><p> public void drawMe(Graphics g) {</p><p> g.setColor(Color.BLUE);</p><p> for(int x=
69、0; x<4; x++) {</p><p> for(int y=0; y<4; y++)</p><p> if(getFlagByPoint(x, y)) {</p><p> g.setColor(new Shape().shapeColor);</p><p> g.fill3DRect((left + x)*G
70、lobal.CELL_SIZE, </p><p> (top + y)*Global.CELL_SIZE, </p><p> Global.CELL_SIZE, </p><p> Global.CELL_SIZE,</p><p><b> true);</b></p><p>&l
71、t;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.2.2 障礙物的顯示</p><p> 通過視圖層的GamePanel類的paint(Graphics g)方法調(diào)用Ground的drawMe(Grap
72、hics g) 方法,從而實現(xiàn)障礙物的繪制,代碼如下:</p><p> public void drawMe(Graphics g) {</p><p> for(int x=0; x<Global.WIDTH; x++) {</p><p> for(int y=0; y<Global.HEIGHT; y++) {</p><
73、;p> if(zaw[x][y] == 1) {</p><p> g.fill3DRect(x*Global.CELL_SIZE,</p><p> y*Global.CELL_SIZE, </p><p> Global.CELL_SIZE, </p><p> Global.CELL_SIZE,</p>&
74、lt;p><b> true);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&
75、lt;p> 5.3 控制層(Controller)設(shè)計</p><p> 控制層主要是實現(xiàn)圖形工廠生產(chǎn)圖形,圖形按鍵事件的處理,方塊、障礙物顯示的控制,圖形自動下落和障礙物生成的控制。通過控制層這個大管家最終實現(xiàn)此俄羅斯方塊的按鍵事件的處理以及各種邏輯的處理。</p><p><b> 5.4 游戲演示</b></p><p>
76、5.4.1 游戲界面顯示</p><p> 5.4.2 開始和結(jié)束控制菜單</p><p> 5.4.3 分?jǐn)?shù)和等級查看菜單</p><p> 5.4.4 變換方塊菜單</p><p> 5.4.5 幫助菜單</p><p><b> 5.系統(tǒng)測試</b></p><
77、;p> 5.1 游戲界面菜單選項的功能測試</p><p> (1) “控制”菜單測試</p><p> ?、冱c擊“游戲”“開始”</p><p><b> 輸出:游戲開始</b></p><p><b> 結(jié)果:正常</b></p><p> ?、邳c擊“游戲”
78、“結(jié)束”</p><p> 輸出:彈出游戲結(jié)束提示框</p><p><b> 結(jié)果:正常</b></p><p> (2) “查看”菜單測試</p><p> ?、冱c擊“查看”“分?jǐn)?shù)”</p><p> 輸出:在游戲面板中間跳出分?jǐn)?shù)顯示框</p><p><
79、b> 結(jié)果:正常</b></p><p> ②點擊“查看”“級別”</p><p> 輸出:在游戲面板中間跳出級別顯示框</p><p><b> 結(jié)果:正常</b></p><p> (3) “變換”菜單測試</p><p> ?、冱c擊“變換”“改變方塊”</p
80、><p> 輸出:在游戲面板中顯示隨機(jī)產(chǎn)生的某種方塊</p><p><b> 結(jié)果:正常</b></p><p> 5.2 按鍵事件的功能測試</p><p> (1) 方塊移動測試</p><p> 游戲過程中,點擊“左、右、下”方向鍵</p><p> 輸出:
81、方塊正常移動,不會移出邊界</p><p><b> 結(jié)果:正常</b></p><p> (2) 方塊反轉(zhuǎn)測試</p><p> 游戲過程中,點擊向上方向鍵</p><p> 輸出:方塊無邊界和障礙物阻擋的情況下可反轉(zhuǎn)</p><p><b> 結(jié)果:正常</b>
82、</p><p> 5.3方塊堆砌與消行測試</p><p> (1) 當(dāng)方塊下落到最底面或與障礙物接觸時</p><p> 輸出:方塊成功堆砌在底部</p><p><b> 結(jié)果:正常</b></p><p> (2) 當(dāng)出現(xiàn)滿行現(xiàn)象時</p><p> 輸
83、出:所有滿行被消除,方塊依次下移</p><p><b> 結(jié)果:正常</b></p><p> 5.4 測試結(jié)果分析</p><p> 經(jīng)過測試,本游戲?qū)崿F(xiàn)了基本的功能,不過整體功能還不是很強(qiáng)大,作為開發(fā)的第一個版本,游戲在很多方面還需要進(jìn)一步完善。</p><p><b> 結(jié) 論</b&g
84、t;</p><p> 游戲設(shè)計與實踐是一項復(fù)雜而且龐大的工作,在選題之后,我才意識到過程的艱難,因為以前從來沒有接觸過游戲設(shè)計,剛開始時有點迷茫和彷徨。后來通過看書和在網(wǎng)上查找資料,逐漸找到了一些感覺,也依照資料自己動手編寫了幾個簡單經(jīng)典的游戲。本文僅以俄羅斯方塊為例予以說明。</p><p> 本次設(shè)計讓我初步懂得了電子游戲所涉及到的有關(guān)技術(shù)、方法,包括電子游戲分類、選題、構(gòu)思等。
85、并實現(xiàn)幾個可演示的游戲軟件,其中有很多應(yīng)用了學(xué)習(xí)的相關(guān)技術(shù),并且做到了圖、文、聲并茂,能實際演示。此次設(shè)計過程中印象最深的收獲有:1、學(xué)到了很多新知識,并且對老知識進(jìn)行了回顧。經(jīng)過長時間的學(xué)習(xí),更進(jìn)一步熟悉了Java語言。2、通過不斷上機(jī)實驗,調(diào)試程序,總結(jié)經(jīng)驗,從對課題的不理解到能夠開始動手去做,提出問題并自己想辦法解決問題,自己多實踐,所以增強(qiáng)了動手能力。3、提高了中、英文資料的檢索能力。這次畢業(yè)設(shè)計過程中我查閱了很多資料,不但有圖
86、書館的期刊、雜志、館藏圖書,還有網(wǎng)絡(luò)中的電子文檔、電子書籍、網(wǎng)頁及下載的視頻教學(xué)課程;不但有中文資料還有英文資料。這些資料,使我的眼界更開闊,對課題的認(rèn)識更加深刻,編寫程序的時候思路更加清楚,少走了很多彎路。</p><p> 但如果真的要從事游戲設(shè)計的工作,需要走的路還很長,即便是對于國際知名的大公司,也是在不斷的探索和實踐中前進(jìn)。但這并不表明前途就是渺茫的,通過這次實踐,進(jìn)行了一次從底而上和自上而下的歸納和
87、演繹的過程,在變化多端的游戲面前,總算領(lǐng)悟了一點它的奧妙。內(nèi)容繁復(fù)、采用的表現(xiàn)手段多姿多彩的游戲世界,即便是再復(fù)雜,也可以通過一定程度的歸納演繹得出適應(yīng)其規(guī)則和表現(xiàn)的契合點。</p><p> 回顧這個設(shè)計過程,我學(xué)到了許多書本上沒有學(xué)到的知識。通過這次自己制作的軟件,豐富了自己的實踐技能,擴(kuò)展了本專業(yè)的知識面,使我受益非淺,同時也體驗到了搞軟件開發(fā)的困難度。在這次設(shè)計的同時,我又從中學(xué)到了許多東西。但由于我對
88、這樣的軟件開發(fā)還只是一個開始,了解的不多,這其中或許還有很多的不足,有些模塊做得不是很好,有些功能還不能夠完全的實現(xiàn),如不能把要裝載的方塊提前顯示出來。因此做得不是很好,界面的設(shè)計及整體的布局還比較簡單,沒有突出特色出來,這也可能是我這個系統(tǒng)的不足之處。</p><p><b> 致 謝</b></p><p> 經(jīng)過一個多月的不斷努力,畢業(yè)設(shè)計內(nèi)容已經(jīng)基本上完
89、成了。</p><p> 首先,在這里我要由衷地感謝我的指導(dǎo)老師xx教授。他在畢業(yè)設(shè)計期間對本人給予了悉心指導(dǎo)和大力幫助。在畢業(yè)設(shè)計期間,在我的課題設(shè)計和論文撰寫過程中對我進(jìn)行了認(rèn)真檢查,嚴(yán)格督促和仔細(xì)批閱,并對我的課題提出了許多富有啟發(fā)性和建設(shè)性的意見和建議。</p><p> 同時我也要非常感謝班上的同學(xué),一直以來都是他們在身邊督促我,我們互相鼓勵共同進(jìn)步。</p>
90、<p> 另外,我還要感謝我的室友和身邊的好友,他們一直都在身邊支持我,在程序設(shè)計和論文撰寫的艱難過程中,他們帶給我歡樂,帶給我信心,并給予了我很大的鼓勵與幫助。</p><p> 最后,在這里還要對我的家人和遠(yuǎn)方的朋友表示深深的感謝,他們在精神和物質(zhì)上都給了我莫大的支持,沒有他們的關(guān)懷和愛護(hù),我想我就無法順利地完成這次畢業(yè)設(shè)計。</p><p><b> 參 考
91、 文 獻(xiàn)</b></p><p> [1] 羅偉堅著.Visual C++經(jīng)典游戲程序設(shè)計[M].北京:人民郵電出版社,2006.2</p><p> [2] 朱福喜著. Java程序設(shè)計技巧與開發(fā)實例[M].北京:人民郵電出版社,2004.2</p><p> [3] 趙東躍著.俄羅斯方塊編程[M].電腦編程技巧與維護(hù),1998年第六期</
92、p><p> [4] 陸惠恩著. 實用軟件工程[M].北京:清華大學(xué)出版社,2006.5</p><p> [5] 黃復(fù)賢著.俄羅斯方塊游戲的敏捷設(shè)計與開發(fā)[M]. 電腦編程技巧與維護(hù),2005.4</p><p> [6] (美)Bruce Eckel著,陳昊天 譯.Java編程思想[M].北京:機(jī)械工業(yè)出版社,2007.6</p><p&g
93、t; [7] 高凌琴,陳青華 著. 俄羅斯方塊游戲關(guān)鍵技術(shù)探討[M].信息技術(shù)與信息化研究探討,2008年第二期.</p><p> [8] 王宇,戰(zhàn)學(xué)剛,高國偉著. 計算機(jī)算法解決俄羅斯方塊中的數(shù)學(xué)與計算問題[M].計算機(jī)應(yīng)用與軟件,第二十四卷第三期,2007.3 .</p><p> [9]朱福喜,黃昊著. Java項目開發(fā)與畢業(yè)設(shè)計指導(dǎo)[M].北京:清華大學(xué)出版社,2008.6
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java俄羅斯方塊畢業(yè)論文
- 畢業(yè)論文----java俄羅斯方塊
- 俄羅斯方塊游戲java畢業(yè)論文
- 畢業(yè)論文(java游戲俄羅斯方塊)
- 俄羅斯方塊畢業(yè)論文
- 俄羅斯方塊游戲畢業(yè)論文
- 俄羅斯方塊游戲開發(fā)畢業(yè)論文
- 畢業(yè)設(shè)計---俄羅斯方塊游戲java
- 畢業(yè)設(shè)計 java實現(xiàn)俄羅斯方塊
- 基于java的俄羅斯方塊
- 俄羅斯方塊的java實現(xiàn)
- 俄羅斯方塊論文
- 畢業(yè)論文俄羅斯方塊的實現(xiàn)系統(tǒng)
- java俄羅斯方塊課程設(shè)計
- java課程實踐報告--俄羅斯方塊
- 俄羅斯方塊
- 基于java的俄羅斯方塊游戲開發(fā)
- java課程設(shè)計--俄羅斯方塊游戲
- java課程設(shè)計---俄羅斯方塊游戲
- java課程設(shè)計報告-俄羅斯方塊
評論
0/150
提交評論