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