【文章內容簡介】
6 行也效果簡單明了,所有功能均根據(jù)基本需求進行開發(fā)。 強調人 — 機 — 環(huán)境三者作為一個系統(tǒng)進行總體設計。使操作更人性化,減輕 了用戶 的認知負擔,使其更適合用戶的操作需求 。 對所有數(shù)據(jù)的輸入進行完整性和合法性檢查,盡量減少誤操作。因此 在 操作上是可行的。 第五節(jié) 法律可行性 本游戲的開發(fā)作為畢業(yè)課程設計以提高分析和解決實際問題的能力,以個人為單位,僅供個人平常娛樂所用, 所用他人的成果部分都已注明 。 所以不存在侵權的問題。 該軟件是合法的, 不會引起任何社會問題。因此,從法律上考慮本系統(tǒng)是可行的。 第 六 節(jié) 結論 綜上所述, 本游戲在 技術方面、經(jīng)濟方面、操作方面、法律方面 均是 可行 的,由此得出結論:本 游戲軟件 的技術成熟、完備 。各方面均無重大問題, 因此本 游戲軟件 可開始 著手編寫 。 第 三 章 需求分 析 第一節(jié) 引言 需求分析是軟件 定義時期的最后一個階段 ,也是關系到軟件開發(fā)成敗的關鍵步驟。它的基本任務是準確回答“系統(tǒng)必須做什么?”這個問題 [2]。即確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求 [3]。 在這個階段中,開發(fā)者要做大量的調查和研究,收集信息,明確系統(tǒng)功能。需求分析的結果是系統(tǒng)開發(fā)的基礎,它的成功與否直接關系到項目的成敗和軟件的質量。 對軟件需求的理解程度是決定軟件開發(fā)工作成功與否的至關重要的環(huán)節(jié),需求分析的任務是發(fā)現(xiàn)、規(guī)范的過程,有益于提高軟件開發(fā)過程中的能見度;便于對軟件開發(fā)過程進行控制與管理;便于采用工程方法開發(fā)軟件,提高軟件的質量;便于開發(fā)人員、維護人員、管理人員之間的交流、協(xié)作。 第二節(jié) 開發(fā)意圖 竭力為廣大俄羅斯方塊游戲愛好者提供一款趣味性強、容易學、上手快的益智休閑類游戲,來豐富大家的業(yè)余生活。 7 第三節(jié) 游戲 功能分析 一 、 項目目標 項目實現(xiàn)了俄羅斯方塊游戲的所有基本功能,同時,為了滿足玩家的個人需求,在游戲中加入了背景音樂和音效等效果,從而使游戲從感官上更加吸引玩家;在單機版中設置了當游戲窗口最小化時,游戲能夠自動暫停,窗口恢復時游戲自動繼續(xù)的功能以方便玩家的游戲操作;在雙人對戰(zhàn)版中加入了玩家自主設置鍵盤的操作,從而使操作更加簡單,更容易上手,且不易失誤。力爭使游戲具有可靠性,安全性,完整性,靈 活性,開發(fā)出一款更加適合人們需求的俄羅斯方塊游戲。 二 、 系統(tǒng)概述 屏幕上有一個 X列 Y行 的區(qū)域,計算機自動產(chǎn)生 7 種不同形狀的方塊,并出現(xiàn)在區(qū)域的最頂端,然后每過一個固定的時間向下落移動一格。玩家可用上、下、左、右及空格鍵來控制方塊的旋轉和移動,以便按照玩家所需要的形態(tài)和位置落下,不過前提是方塊移動和旋轉后的位置必須是空的。這 7 種方塊可以旋轉 90176。、 180176。、 270176。,因此每種方塊有 4種狀態(tài), 7 種方塊總共有 28種狀態(tài)。 另外,在游戲區(qū)域產(chǎn)生一個新的方塊的一瞬間,立即產(chǎn)生下一個下 落 方塊的形狀并在提示區(qū)域的左上方有預 先提示。同時,在游戲界面的右下方,將顯示玩家所得的分數(shù)以及游戲的 難度 級別。每當游戲玩家成功消除一行方塊時,將按照一定的算法計算出所得分數(shù),并修改游戲狀態(tài)區(qū)域的分數(shù)和行數(shù)的數(shù)值。本游戲提供了 十 個游戲級別,用戶可根據(jù)自己的興趣選擇相應的級別。 下 落 方塊可以通過旋轉改變其顯示形狀,并且不斷地往下 落 ,直到它接觸到游戲區(qū)域底部或者其他已經(jīng) 壘疊 起 來 的下 落 方塊。當一個下 落 方塊到達游戲區(qū)域底部或者接觸到其他已經(jīng) 壘疊 起的下 落 方塊后,其位置 即 確定下來 , 并占有該空間的位置區(qū)域。 如果落下時,方塊的方格能填滿某一行,則這一行可消去。消去一行后,游戲可給玩家加分,壘在其上的方塊將按照一定的算法 落下來 代替 該 行空間。游戲的結束是以下 落 方塊的頂部到達游戲區(qū)域頂部作為判斷依據(jù) ,若 存在空格的方塊填滿整個窗口,則游戲失敗。 系統(tǒng)默認設置使用右邊的窗口,用光標操作:“←”左移一格;“→”右移一格;“↑”變形;“↓”下移一格;“空格”丟下方塊。雙人對戰(zhàn)版中玩家還可以定義自己的習慣的按鍵來操作游戲。 三 、 系統(tǒng)運行環(huán)境 硬件環(huán)境:內存: 512M,硬盤: 256M, cpu: 以上 軟件環(huán)境: , 和 MySQL 數(shù)據(jù)庫。 四 、 系統(tǒng)功能需求 (一)、 游戲主界面功能需求 良好的用戶界面,能夠在視覺上吸引玩家。為了使界面簡潔美觀,需要在主界面中 8 添加背景圖片來渲染游戲的氣氛,同時為了便于玩家的操作,需要設置四個按鈕供玩家選擇,分別是“單機版”、“雙人對戰(zhàn)版”、“幫助”、“退出”。這樣的設置讓用戶一目了然。另外,為了能夠實時的顯示游戲的進度,還需在主界面下方添加進度條,用動態(tài)感來吸引玩家。 (二)、 單機版游戲功能需求 為了滿足廣大玩家的需要,本游戲特別設置了單機版游戲,這項功能可以讓玩家在短期能提高游戲水平,以便更快地適應雙人對戰(zhàn)版游戲。單機版游戲的界面采用 JFrame界面來進行設計。使游戲界面更加美觀大方。該界面由 4 個模塊構成,分別是菜單條、菜單項、控制面板和游戲畫布。其中菜單條包括游戲、控制、窗口風格、音樂控制、幫助四個菜單??刂泼姘灏A提示面板,當前信息提示面板、游戲控制按鈕面板和背景音樂控制按鈕面板。在單機版游戲中,玩家可以根據(jù)自己的需要設置游戲級別。另外,為了滿足玩家的聽覺需求,還增加了自動播放背景音樂的功能 、更換背景音樂的功能、暫停背景音樂的功能以及音效效果。為了滿足玩家的心理需求,還添加了排行榜的功能,方便玩家及時記錄自己游戲戰(zhàn)績。為了進一步方便玩家的實際操作,還為部分操作添加了快捷鍵的功能,用戶無需點擊按鈕或菜單項即可達到游戲目的。 (三)、 雙人對戰(zhàn)版游戲模塊功能需求 為了增強玩家對本游戲的興趣,還特別設計了雙人對戰(zhàn)版游戲。雙人對戰(zhàn)版具有單機版游戲的基本功能。除此之外,還能實時地顯示對方玩家的游戲狀態(tài)。這樣可以根據(jù)對方的狀態(tài),及時改變自己的游戲策略。本功能改變了以往雙人版只能在同一臺機器上運行的模式。實 現(xiàn)了網(wǎng)絡雙人對戰(zhàn),可以用一臺機器作為服務器運行,另一臺機器作為客戶端運行,也可以在同一臺機器上運行。對戰(zhàn)雙方的數(shù)據(jù)無需通過其他服務器處理,因此實現(xiàn)的是點對點的通信。 (四)、 俄羅斯方塊的需求 良好的方塊形狀設計,繪制七種常見的基本圖形,各個方塊要能實現(xiàn)旋轉變形、移動和顯示。方塊的旋轉可設為順時針或逆時針,本游戲采用逆時針變形。 (五)、 鍵盤處理事件的需求 方塊下落時,可通過鍵盤方向鍵(上、下、左、右、空格鍵)對該方塊進行向上 (旋轉變形 ),向下移動、向左移動、向右移動和丟下操作。雙人對戰(zhàn)版玩家還可以根據(jù)自己的需要設置鍵盤的操作。 (六)、 顯示需求 當方塊填滿一行時可以消行,剩余方塊向下按照一定的算法向下移動并統(tǒng)計分數(shù)。當達到一定的分數(shù)時游戲升級,并顯示游戲升級信息;當游戲方塊填滿整個屏幕時,游戲結束,并顯示游戲結束信息。本游戲共設置十個級別,方塊的下落速度隨著級別的升高而加快。 9 第四節(jié) 游戲的 UML 基本模型 一 、 游戲的用例圖 用例圖是由軟件需求分析到最終實現(xiàn)的第一步,它描述人們希望如何使用一個系統(tǒng)。用例圖在需求分析階段有很重要的作用,它是作為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,它顯示多個外部參與者以及他們與系統(tǒng)提供的用例之間的連接 [4]。整個開發(fā)過程都是圍繞需求階段的用例進行的。通過分析確定本系統(tǒng)的抽象參與者有:計算機和玩家兩類。 計算機 (puter)。計算機可以實現(xiàn)自動播放背景音樂、方塊定時下移、隨機產(chǎn)生方塊、自動消除滿行、更新分數(shù)、報告游戲結果等。計算機控制游戲的用例圖如圖 31所示。 圖 31 計算機控 制游戲的用例圖 玩家 (player)。玩家是本游戲的重要參與者,其中單機版玩家 (SinglePlayer)和雙人對戰(zhàn)版玩家 (DoublePlayer)是對玩家的泛化。玩家可以選擇游戲模式、控制方塊。控制方塊用例包括旋轉方塊、左移方塊、右移方塊、下移 方塊、丟下方塊等用例。單機版玩家和雙人對戰(zhàn)版玩家除了包含這些用 例外,還各自有相應的用例。其中: 單機版玩家可以控制游戲和設置游戲,控制游戲用例又包括控制游戲狀態(tài)和控制背景音樂??刂朴螒驙顟B(tài)用例包括開始游戲、暫停游戲、繼續(xù)游戲、從新開始、退出等用例,其中從新開始是對開始游戲用例的擴展;控制背景音樂包括更換音樂、暫停播放和繼續(xù)播放三個用例。設置游戲包括設置方塊顏色、設置背景顏色、設置難度級別、設置窗口狀態(tài)四個用例,其中設置窗口狀態(tài)用例又包括設置系統(tǒng)平臺風格、設置主題風格和設置跨平臺風格三個用例。 雙人對戰(zhàn)版玩家也可以控制游戲和設置游戲,但與單機版玩家不同,控制游戲用例方塊定時下移隨機產(chǎn)生方塊報告游戲結果自動消除滿行方塊更新分數(shù)自動播放背景音樂c o m p u t e r 10 暫停游戲開始游戲旋轉方塊 左移方塊丟下方塊下移方塊右移方塊退出從新開始繼續(xù)游戲 e x t e n d e x t e n d 控制游戲狀態(tài) in c l u d e in c l u d e in c l u d e in c l u d e 控制背景音樂暫停播放 in c l u d e 更換音樂 in c l u d e 繼續(xù)播放 in c l u d e 停止游戲 in c l u d e 設置系統(tǒng)平臺風格設置主題風格設置窗口狀態(tài)設置跨平臺風格 in c l u d e 控制游戲設置游戲S i n g l e P la y e r in c l u d e in c l u d e 設置方塊顏色設置背景顏色 in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e 選擇游戲模式控制方塊 in c l u d e in c l u d e in c l u d e in c l u d e p la y e r建立游戲連接游戲控制背景音樂設置游戲控制游戲D o u b le P l a y e r in c l u d e in c l u d e 設置操作鍵 in c l u d e 退出游戲 in c l u d e 暫停播放 in c l u d e 繼續(xù)播放 in c l u d e in c l u d e 包括控制背景音樂、建立游戲、連接游戲和 退出游戲四個用例,控制背景音樂用例又包括暫停播放和繼續(xù)播放兩個用例;設置游戲用例包括設置操作鍵用例。玩家操作游戲的總的用例圖如圖 32所示,從圖中可以清楚地看到參與者之間的泛化關系和各個參與者所參與的用例,以及用例之間的關系。 圖 32 玩家操作游戲的用例圖 二 、 游戲的包圖 包圖是維護和控制系統(tǒng)總體結構的重要建模工具 [4]。創(chuàng)建包圖是在為了在邏輯上把一個復雜的系統(tǒng)模塊化,進而高效地組織 Java 源代碼。游戲的包圖如圖 33 所示,通過該圖可以清楚地看到游戲中各個包之間的關系,為后續(xù)的游戲設計提供方便。 11 圖 33 游戲的包圖 三 、 游戲的狀態(tài)圖 狀態(tài)圖是系統(tǒng)分析的一種常用工具,它能夠表征系統(tǒng)的變化狀態(tài)。單機版游戲的狀態(tài)圖如圖 34所示。雙人對戰(zhàn)版游戲服務器端和客戶端的狀態(tài)圖分別如圖 35和圖 36所示。 圖 34 單機版游戲狀態(tài)圖 單機版:玩家進入單機版游戲模式后,可以點擊“開始”按鈕開始游戲,游戲進行過程中如果游戲最小化或者玩家點擊“暫?!卑粹o或菜單項,則游戲暫停。如果游戲界D o u b l eg a meS i n g l e I m a g e ss e t開始游戲 暫停游戲繼續(xù)游戲退出游戲停止游戲進入游戲游戲結束暫停停止退出停止退出開始退出界面最小化繼續(xù)界面恢復 12 面恢復或玩家點擊“繼續(xù)”按鈕或菜單項則游戲可以繼續(xù),游戲進行過程中玩家還可以點擊“停止”按鈕或菜單項,使游戲停止。無論游戲是否進行 ,玩家都可以點擊“退出”按鈕或菜單項退出游戲。 圖 35 雙人對戰(zhàn)版服務器端狀態(tài)圖 服務器端:玩家進入雙人對戰(zhàn)版游戲模式后,可以建立連接,使服務器在某個端口提供監(jiān)聽服務,并等待直到接收到來自客戶端玩家的服務請求從而啟動服務器。雙方建立連接后玩家可以開始游戲,當有一方玩家失敗時,游戲結束玩家可以重新建立連接或者選擇退出游戲并關閉服務器。 建立連接啟動服務器開始游戲等待連接客戶端連接成功退出游戲關閉服務器重新建立連接游戲結束退出 13 圖 36 雙人對戰(zhàn)版客戶端狀態(tài)圖 客戶端:如果玩家作為客戶端加入游戲,首先應連接游戲,向服務器起的監(jiān)聽端口發(fā)出服務請求。如果連接失敗還可以重新連接。一旦連接成功即可開始游戲,當有一方玩家失敗時,游戲結束,此時玩家可以選擇重新連接或退出游戲。 四 、 游戲的活動圖 活動圖是 UML 用于對系統(tǒng)的動態(tài)行為建模的一