【正文】
本科生畢業(yè)論文 (設(shè)計(jì) ) 基于 Java 的俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn) 姓 名 學(xué) 號 專 業(yè) 指導(dǎo)教師 2021 年 5 月 30 日 I 摘 要 俄羅斯方塊作為一款風(fēng)靡全球的多樣化終端游戲,經(jīng)久不衰。俄羅斯方塊簡單的基本游戲規(guī)則是旋轉(zhuǎn)、移動(dòng),游戲自動(dòng)隨機(jī)輸出 7 種形狀的方塊,經(jīng)旋轉(zhuǎn)后可形成 28 種形狀,方塊堆疊在一起,排列成完整的一行或多行消除得分,積分達(dá)到一定程度會自動(dòng)提升級別。該游戲上手簡單、老少皆宜、家喻戶曉。 本論文在詳盡分析傳統(tǒng)俄羅斯實(shí)現(xiàn)的基 本原理、基本規(guī)則基礎(chǔ)上,更深一步地研究俄羅斯方塊的創(chuàng)新模式,在經(jīng)典模式基礎(chǔ)上開發(fā)出等級可變的模式,以及進(jìn)一步開發(fā)出顏色可變的模式,如隨意改變界面的背景色、前景色等,本文對以上功能給出了實(shí)現(xiàn)流程、詳盡描述、和部分源代碼。 論文闡述了該游戲的歷史、開發(fā)此游戲的意義和環(huán)境并根據(jù)軟件工程的相關(guān)知識,進(jìn)行系統(tǒng)的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)、調(diào)試運(yùn)行進(jìn)行描述。 此設(shè)計(jì) 是 在 Microsoft Windows XP 系統(tǒng)下 , 以 Java 為開發(fā)語言 , 在 MyEclipse 開發(fā)平臺上進(jìn)行游戲的設(shè)計(jì)與 實(shí)現(xiàn)。 關(guān)鍵詞: 游戲;俄羅 斯方塊; 錯(cuò)誤 !未找到引用源。 軟件工程; MyEclipse 錯(cuò)誤 !未找到引用源。 II Abstract Tetris is a popular global diversification of terminal enduring basic rules of the game is rotating, moving, automatic random output of 7 kinds of shape square game. It forms 28 kinds of shape, after rotating cube stacked together, forming plete one or more lines to eliminate score. Its level automatically rises with the score. The game is easy for young and old, has bee a household name. This paper not only give the detailed analysis of the traditional Tetris which based on the basic principle and simple rules but also develop the color variable model, such as random change the background color and foreground color and so on. Further more, in this paper, the above functions are given the implementation process, the detailed description, and some source code. The paper expounds the history of the game, develops the meaning of the game and the environment of design. According to the relevant knowledge of software engineering, the author reports the demand analysis, outline design, detailed design, planning and execution of the test. This design is under Microsoft Windows XP system, based on Java development language, the MyEclipse development platforms to carry on the design and implementation of the game. Key Words: Game, Tetris, Software engineering, MyEclipse III 目 錄 1 引 言 ............................................................... 1 2 系統(tǒng)的需求分析 ...................................................... 2 系統(tǒng)需求 ........................................................ 2 接口控制 ........................................................ 3 3 系統(tǒng)的概要設(shè)計(jì) ...................................................... 4 軟件運(yùn)行和開發(fā)工具 .............................................. 4 系統(tǒng)功能設(shè)計(jì) .................................................... 4 手工處理業(yè)務(wù)的基本流程 ...................................... 4 基本流程的功能模塊 .......................................... 5 4 系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) ................................................ 8 游戲主界面顯示模塊 .............................................. 8 畫布、方塊顯示模塊 .............................................. 9 背景畫布模塊設(shè)計(jì) ........................................... 10 預(yù)覽方塊模塊設(shè)計(jì) ........................................... 11 方塊移動(dòng)、旋轉(zhuǎn)設(shè)計(jì) ......................................... 14 控制面板模塊 ................................................... 18 菜單欄模塊設(shè)計(jì) ............................................. 18 控制面板按鈕設(shè)計(jì) ........................................... 20 5 系統(tǒng)的調(diào)試運(yùn)行 ..................................................... 21 測試的意義及注意事項(xiàng) ........................................... 21 游戲代碼、算法的測試 ........................................... 21 游戲界面菜單選項(xiàng)的功能測試 ..................................... 22 按鍵事件的功能測試 ............................................. 24 方塊堆砌與消行測試 ............................................. 25 測試結(jié)果分析 ................................................... 26 6 結(jié) 論 ............................................................. 27 參考文獻(xiàn) ............................................................. 28 致 謝 ................................................................ 29 1 1 引 言 俄羅斯方塊的影響已毋庸置疑 , 當(dāng)今世界的電腦、手機(jī)到處都有俄羅斯方塊的蹤跡,同時(shí)它更是每個(gè)游戲平臺的必備游戲,相關(guān)的復(fù)制品不勝枚舉。這個(gè)最早由莫斯科的數(shù)學(xué)家亞力克西帕杰諾夫 (Alexey Pajituov)所設(shè)計(jì)的作品 ,被公認(rèn)為有史以來最暢銷的經(jīng)典游戲 ,至今魅力不減當(dāng)年。亞力克西帕杰諾夫曾在俄羅斯科學(xué)研究院電腦中心工作 , 當(dāng)時(shí)他在 Eletronica 60的舊型俄羅斯主機(jī)上進(jìn)行開發(fā)工作 , 這種機(jī)器不支持圖形界面 , 和 PC也不兼容。他嘗試將一種傳統(tǒng)的拼圖游戲 Pentomino 改寫成電腦游戲。Pentomino 一共有十二種形狀 , 各以七個(gè)方塊組合而成。帕杰諾夫試著寫了一個(gè)程序 , 旋轉(zhuǎn)并移動(dòng)這十二種不同形狀的方塊 , 讓它們拼成一大塊。后來幾經(jīng)修改,發(fā)展成我們現(xiàn)在所熟悉的經(jīng)典模式。俄羅斯方塊曾經(jīng)引起的轟動(dòng)和制造的經(jīng)濟(jì)價(jià)值可以說是游戲史上無可比擬的。它看似簡單但卻變化無窮,令人愛不釋手。 俄羅斯方塊游戲是隨計(jì)算機(jī)的發(fā)展而發(fā)展,并不斷推陳 出各種新演變出的類似游戲 , 深受廣大玩家喜愛。游戲模式有的簡單 、有的復(fù)雜 , 但其根本原理是都是對隨機(jī)出現(xiàn)的方塊進(jìn)行組合 , 來訓(xùn)練玩家的反應(yīng)能力、邏輯思維能力。游戲軟件 , 大多數(shù)人都視其為神妙莫測 , 高不可及的東西。一般來說,游戲軟件也確實(shí)具有很高的技術(shù)難度 , 隨著開發(fā)工具和軟件開發(fā)方法學(xué)的不斷發(fā)展 , 自己 動(dòng)手開發(fā)游戲也并非難事。俄羅斯方塊游戲可以上說是一種古老而又有趣的游戲 。 游戲軟件不計(jì)其數(shù) , 網(wǎng)上也有很多關(guān)于游戲?qū)崿F(xiàn)的復(fù)雜算法和設(shè)計(jì) , 其難度讓一般初學(xué)者望而卻步。本文利用數(shù)組作為方塊的數(shù)據(jù)結(jié)構(gòu),用顏色變化作為方塊下落和移動(dòng)的標(biāo)識,提出一種用 Java語言實(shí)現(xiàn)游戲的簡易 方法 ,在經(jīng)典模式的基礎(chǔ)上實(shí)現(xiàn)等級可變,顏色可變等功能, 初學(xué)者可仿此開發(fā)類似游戲 , 并了解游戲軟件的設(shè)計(jì)與開發(fā)過程。 俄羅斯方塊游戲以其益智、簡單又不乏挑戰(zhàn)、創(chuàng)意獨(dú)特的游戲模式,吸引了眾多游戲愛好者,而且老少皆宜。當(dāng)今社會里,人們的工作壓力隨著生活節(jié)奏的快速提高而逐漸繁重,隨之減少的是可以自由支配的休息時(shí)間,人們迫切地需要一種既簡單又節(jié)省時(shí)間的快速休閑方式。無可爭議,它是永恒的娛樂經(jīng)典,且它的代碼簡單,界面簡潔,從最初發(fā)行時(shí)的單個(gè)游戲機(jī)到現(xiàn)在便捷的安裝到電腦、手機(jī)、 MP電子詞典、商務(wù)通、IPAD、 ITOUCH 等便攜設(shè)備,俄羅斯方塊風(fēng)靡世界,經(jīng)久不衰。本次課題研究可以說是對游戲開發(fā)的一次嘗試,無論從技術(shù)還是社會意義上看都是很有價(jià)值的。 2 2 系統(tǒng)的需求分析 對系統(tǒng)的需求分析就是用戶和開發(fā)人員在“系統(tǒng)必須做什么”這個(gè)問題上實(shí)現(xiàn)相互理解,達(dá)到共識,從而形成雙方認(rèn)可的軟件產(chǎn)品的需求規(guī)格。這樣有利于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程的控制與管理,便于采用工程化的模式開發(fā)軟件,從而達(dá)到提高軟件的質(zhì)量,為開發(fā)人員、維護(hù)人員、管理人員之間的交流、協(xié)作提供便捷。作為工作成果的原始依據(jù),系統(tǒng)的需求分析可以向潛 在用戶傳遞軟件功能、性能的需求,使其能夠判斷該軟件是否符合自己的需求。 系統(tǒng)需求 系統(tǒng)隨機(jī)產(chǎn)生 7 中不同形狀的方塊,旋轉(zhuǎn)后有 28 種狀態(tài)。方塊自由下落,玩家通過鍵盤控制方塊的移動(dòng)和旋轉(zhuǎn),把方塊擺放在適當(dāng)?shù)奈恢?。如果方塊落下時(shí),有被方塊填滿的整行,則該行可消去。每消去一行,玩家得分增加 10 分,每滿 100 分,玩家等級增加一級。若由存在空格的方塊填滿整個(gè)窗口,則游戲宣告失敗。游戲功能需求如下: 游戲界面需求:設(shè)計(jì)良好的游戲界面可以讓玩家充分感受到游戲帶來的娛樂性,游戲的默認(rèn)背景色是深綠色,主界面方塊默認(rèn)用橘黃 色,預(yù)顯方塊顏色默認(rèn)為淡紫色。背景色、前景色對比鮮明,以達(dá)到讓玩家眼前一亮的感覺,并能在游戲達(dá)到高等級狀態(tài),方塊下落速度漸高的情況下使玩家能夠清楚的分辨出下落方塊的形狀,增加游戲的刺激性。 游戲形狀需求:用數(shù)組作為存儲方塊 28 種狀態(tài)的數(shù)據(jù)結(jié)構(gòu),即長條形、 Z 字形、反 Z 形、田字形、 7 字形、反 7 形、 T 字型一共 7 種形狀的向 4 個(gè)方向的旋轉(zhuǎn)變形,各個(gè)方塊要能實(shí)現(xiàn)它的任意變形,可設(shè)為順時(shí)針變形或逆時(shí)針變形,一般為逆時(shí)針變形。方塊的可否翻轉(zhuǎn)需要加以判斷,以防止其翻轉(zhuǎn)越界。 鍵盤處理事件需求:方塊下落時(shí),可通過鍵盤方向鍵(上 鍵、下鍵、左鍵、右鍵)或字母鍵 I、 K、 J、 L 對下落方塊進(jìn)行向上(旋轉(zhuǎn)變形)、向下(加速下落)、向左移動(dòng)、向右移動(dòng)。 鼠標(biāo)處理事件需求:通過點(diǎn)擊菜單欄中相應(yīng)的菜單項(xiàng)或控制面板內(nèi)的按鈕,可以實(shí)現(xiàn)游戲的開始、結(jié)束、暫停、繼續(xù)、提高等級、降低等級,預(yù)顯方塊形狀的顯示,分?jǐn)?shù)、等級的顯示,以及游