【正文】
可調(diào)整性需求、游戲運(yùn)行時(shí)主界面彈出位置居中需求等。 鼠標(biāo)處理事件需求:通過點(diǎn)擊菜單欄中相應(yīng)的菜單項(xiàng)或控制面板內(nèi)的按鈕,可以實(shí)現(xiàn)游戲的開始、結(jié)束、暫停、繼續(xù)、提高等級、降低等級,預(yù)顯方塊形狀的顯示,分?jǐn)?shù)、等級的顯示,以及游戲幫助、顏色變換等功能。背景色、前景色對比鮮明,以達(dá)到讓玩家眼前一亮的感覺,并能在游戲達(dá)到高等級狀態(tài),方塊下落速度漸高的情況下使玩家能夠清楚的分辨出下落方塊的形狀,增加游戲的刺激性。如果方塊落下時(shí),有被方塊填滿的整行,則該行可消去。這樣有利于提高軟件開發(fā)過程中的能見度,便于對軟件開發(fā)過程的控制與管理,便于采用工程化的模式開發(fā)軟件,從而達(dá)到提高軟件的質(zhì)量,為開發(fā)人員、維護(hù)人員、管理人員之間的交流、協(xié)作提供便捷。當(dāng)今社會(huì)里,人們的工作壓力隨著生活節(jié)奏的快速提高而逐漸繁重,隨之減少的是可以自由支配的休息時(shí)間,人們迫切地需要一種既簡單又節(jié)省時(shí)間的快速休閑方式。俄羅斯方塊游戲可以上說是一種古老而又有趣的游戲 。 俄羅斯方塊游戲是隨計(jì)算機(jī)的發(fā)展而發(fā)展,并不斷推陳 出各種新演變出的類似游戲 , 深受廣大玩家喜愛。帕杰諾夫試著寫了一個(gè)程序 , 旋轉(zhuǎn)并移動(dòng)這十二種不同形狀的方塊 , 讓它們拼成一大塊。亞力克西 軟件工程; MyEclipse 錯(cuò)誤 !未找到引用源。 本論文在詳盡分析傳統(tǒng)俄羅斯實(shí)現(xiàn)的基本 原理、基本規(guī)則基礎(chǔ)上,更深一步地研究俄羅斯方塊的創(chuàng)新模式,在經(jīng)典模式基礎(chǔ)上開發(fā)出等級可變的模式,以及進(jìn)一步開發(fā)出顏色可變的模式,如隨意改變界面的背景色、前景色等,本文對以上功能給出了實(shí)現(xiàn)流程、詳盡描述、和部分源代碼。 本科生畢業(yè)論文 (設(shè)計(jì) ) 基于 Java 的俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn) 姓 名 學(xué) 號(hào) 專 業(yè) 指導(dǎo)教師 2021年 5月 30日 I 摘 要 俄羅斯方塊作為一款風(fēng)靡全球的多樣化終端游戲,經(jīng)久不衰。 論文闡述了該游戲的歷史、開發(fā)此游戲的意義和環(huán)境并根據(jù)軟件工程的相關(guān)知識(shí),進(jìn)行系統(tǒng)的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)、調(diào)試運(yùn)行進(jìn)行描述。 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è)游戲平臺(tái)的必備游戲,相關(guān)的復(fù)制品不勝枚舉。帕杰諾夫曾在俄羅斯科學(xué)研究院電腦中心工作 , 當(dāng)時(shí)他在 Eletronica 60的舊型俄羅斯主機(jī)上進(jìn)行開發(fā)工作 , 這 種機(jī)器不支持圖形界面 , 和 PC也不兼容。后來幾經(jīng)修改,發(fā)展成我們現(xiàn)在所熟悉的經(jīng)典模式。游戲模式有的簡單、 有的復(fù)雜 , 但其根本原理是都是對隨機(jī)出現(xiàn)的方塊進(jìn)行組合 , 來訓(xùn)練玩家的反應(yīng)能力、邏輯思維能力。 游戲軟件不計(jì)其數(shù) , 網(wǎng)上也有很多關(guān)于游戲?qū)崿F(xiàn)的復(fù)雜算法和設(shè)計(jì) , 其難度讓一般初學(xué)者望而卻步。無可爭議,它是永恒的娛樂經(jīng)典,且它的代碼簡單,界面簡潔,從最初發(fā)行時(shí)的單個(gè)游戲機(jī)到現(xiàn)在便捷的安裝到電腦、手機(jī)、 MP電子詞典、商務(wù)通、IPAD、 ITOUCH 等便攜設(shè)備,俄羅斯方塊風(fēng)靡世界,經(jīng)久不衰。作為工作成果的原始依據(jù),系統(tǒng)的需求分析可以向潛在 用戶傳遞軟件功能、性能的需求,使其能夠判斷該軟件是否符合自己的需求。每消去一行,玩家得分增加 10 分,每滿 100 分,玩家等級增加一級。 游戲形狀需求:用數(shù)組作為存儲(chǔ)方塊 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í)針變形。 顯示需求:當(dāng)方塊填滿一行時(shí)可以消行,剩余未填滿的行逐次向下移動(dòng)并統(tǒng)計(jì)分?jǐn)?shù)。 接口控制 本游戲通過鍵盤和鼠標(biāo)進(jìn)行操作,在 Windows 的操作系統(tǒng)下,利用鍵盤的按鍵對方塊進(jìn)行移動(dòng)、變形,要使用到鍵盤的接口事件。 運(yùn)行說明 : 1運(yùn)行程序,點(diǎn)擊右側(cè)控制面板內(nèi)的“開始”或“控制”菜單內(nèi)的“開始”按鈕開始游戲。也可點(diǎn)擊“顏色”菜單內(nèi)的選項(xiàng),更改前景色、背景色。 5 玩 家 操 作 方 塊初 始 化 方 塊是 否 到 達(dá) 底 部否是 否 滿 行 是玩 家 更 改 前 景 色 、背 景 色 、 等 級 等玩 家 積 分 增 加是積 分 達(dá) 到 1 0 0玩 家 等 級 增 加是是 否 到 達(dá) 頂 部是暫 停 、 繼 續(xù) 、 停止 、 重 新 開 始結(jié) 束開 始否否顯 示 G a m e O v e r游 戲 結(jié) 束 圖 31 游戲基本流程圖 基本流程的功能模塊 本系統(tǒng)基于游戲的各項(xiàng)功能來設(shè)計(jì)游戲的各個(gè)功能模塊。 俄 羅 斯 方 塊 游 戲游 戲 界 面 區(qū)游 戲 控 制 區(qū)顯 示 玩 家 可 選 操 作顯 示 玩 家 操 作 結(jié) 果開 始暫 停 、 繼 續(xù)提 高 等 級更 改 顏 色降 低 等 級退 出停 止重 新 開 始 圖 32 系統(tǒng)功能模塊示意圖 圖 33 為游戲界面區(qū)模塊設(shè)計(jì)示意圖,如圖所示,游戲界面區(qū)模塊可細(xì)分為闖進(jìn)新游戲界面、處理玩家操作、顯示玩家操作結(jié)果三個(gè)功能模塊。試想,如果因?yàn)橥獠凯h(huán)境或者用戶需求的變化需要對程序進(jìn)行功能擴(kuò)展或者維護(hù),就要對代碼作大幅度的更動(dòng)甚至重寫,這樣就失去了面向?qū)ο蟮膬?yōu)勢,所以在本程序分析時(shí)將獨(dú)立性高的模塊作為一個(gè)對象,以提高程序的 可擴(kuò)展性和可維護(hù)性。 BlockPaint 類:方格類,組成方塊的基本元素,主要表達(dá)方式為顏色。 游戲主界面采用 Swing 組件開發(fā),并且向其注冊監(jiān)聽器,以實(shí)現(xiàn) 各種控制功能,綜合 游 戲窗 體的 設(shè)計(jì) ,其 上至 少需 要注 冊三 個(gè) 監(jiān)聽 器, 分別 是動(dòng) 作監(jiān) 聽 器(ActionListener)、鍵盤監(jiān)聽器 (KeyListener)、選項(xiàng)監(jiān)聽器 (ItemListener)。游戲主窗體尺寸設(shè)置為( 520, 580),方塊移動(dòng)范圍窗格由一個(gè) 20行、 12 列的二維數(shù)組控制,且左上角圖標(biāo)設(shè)置為方塊圖案,起標(biāo)識(shí)作用。背景畫布實(shí)現(xiàn)代碼如下: /* ChangeBlockColor 類 畫布類的構(gòu)造函數(shù) rows int, 畫布的行數(shù) cols int, 畫布的列數(shù) 行數(shù)和列數(shù)決定著畫布擁有方格的數(shù)目 */ class ChangeBloc