freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的俄羅斯方塊的設(shè)計與實現(xiàn)-資料下載頁

2025-05-07 20:22本頁面
  

【正文】 包括: ① DoubleBlock:雙人對戰(zhàn)版游戲的方塊類, 控制塊的移動、下落、變形等 。 DoubleGameMenu:雙人對戰(zhàn)版游戲的 菜單類, 實現(xiàn) 游戲菜單 和菜單項。 21 圖 44 雙人對戰(zhàn)版俄羅斯方塊游戲的類圖 ③ DoubleControlPanel:雙人對戰(zhàn)版游戲的控制面板類, 上邊安放預(yù)顯即將出現(xiàn)的方塊類型的窗口、難度級別、得分、控制按鈕以及對方玩家的游戲狀態(tài)窗口。主要用來控制游戲進程。 ④ DoubleGameCanvas:雙人對戰(zhàn)版 游戲 的 畫布類,負責每一個方塊的繪制 。 ⑤ Data: 傳輸對象類,為對象流建立的數(shù)據(jù)傳遞對象 。 ⑥ DoubleMusic:雙人對戰(zhàn)版游戲的音樂類, 實現(xiàn)背景音樂播 放 功能、 暫停播放 功能、 繼續(xù)播放 功能 和各種音效播放 功能。 ⑦ DoubleBlocksGame:雙人對戰(zhàn)版游戲的主類, 負責游戲的全局控制 ,繼承于菜單 22 類 。 第四節(jié) 游戲的組件圖 組件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。組件圖中通常包括 3 種元素:組件、接口和依賴關(guān)系。每個組件實現(xiàn)一些接口,并使用另一些接口。圖 45所示的是游戲的組件圖。 圖 45 游戲的組件圖 第五節(jié) 游戲的配置圖 圖 46 游戲配置圖 配置圖描述了運行軟件的系統(tǒng)中硬件和軟件的物理結(jié)構(gòu),即系統(tǒng)執(zhí)行處理過程中系統(tǒng)資源元素的配置情況以及軟件到這些資源的映射。圖 46 所示的是游戲的配置圖。 第六節(jié) 面向連接的 Socket 的通信機制 Socket 是兩個應(yīng)用程序間用來進行雙向數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)接入點,它由兩部分組成:俄羅斯游戲系統(tǒng)單機版游戲雙人對戰(zhàn)版游戲服務(wù)器端客戶端數(shù)據(jù)庫服務(wù)器應(yīng)用服務(wù)器游戲主界面單機版界面雙人版界面 23 地址和端口號。地址是指應(yīng)用程序所在網(wǎng)絡(luò)主機的地址,而端口號是應(yīng)用程序進行數(shù)據(jù)傳輸?shù)亩丝诘刂?。由?Socket 采用客戶機 /服務(wù)器模式,因此在 Java 中有兩種 Socket:服務(wù)器 Socket 和客戶 Socket。兩個 Socket 之間需要建立專線連接,如圖 47所示。圖中格子代表邏輯端口,小橢圓代表 Socket 連接正在使用的兩個邏輯端口。 圖 47 Socket 連接的示意圖 利用面向連接的 Socket 通信機制可以使兩臺計算機連接到一起,并相互通信。一旦兩臺計算機完成了圖 47所示的連接即可進行對話??蛻魴C和服務(wù)器之間的區(qū)別只有在客戶機視圖同服務(wù)器連接的時候才表現(xiàn)出來,一旦連接成功就變成了一種雙向通信,它們的地位就對等了。所以服務(wù)器的主要任務(wù)是監(jiān)聽要求建立連接的請求,而客戶機的任務(wù)是試著與一臺服務(wù)器建立連接,一旦連接完成,則無論對于服務(wù)器和客戶機而言,連接都成了一個 I/O數(shù)據(jù)流對象。此時可以如同讀寫一個普通的文件那樣來對待連接。因此一旦建好連接,只需使用自己熟悉的 I/O 命令讀取文 件即可,這正是 Java 用于網(wǎng)絡(luò)編程的方便之處。 第七節(jié) 數(shù)據(jù)庫設(shè)計 一 、 本游戲采用的數(shù)據(jù)庫 MySQL 數(shù)據(jù)庫 是瑞典的 MySQL AB 公司開發(fā)的一個可用于各種流行操作系統(tǒng)平臺的關(guān)系數(shù)據(jù)庫系統(tǒng),它具有客戶機 /服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng)。 MySQL 完全適用于網(wǎng)絡(luò),用其建造的數(shù)據(jù)庫可在因特網(wǎng)上的任何地方訪問,因此,可以和網(wǎng)絡(luò)上任何地方的任何人共享數(shù)據(jù)庫。 與其他數(shù)據(jù)庫系統(tǒng)進行比較時,所要考慮的最重要的因素是性能、支持、特性、認證條件和約束條件、價格等。相比之下, MySQL 具有功能強、使用簡單、管理方便 、運行速度快、可靠性高、安全保密性強等優(yōu)點。 MySQL 還有一個最大的特點,那就是在Windows 系統(tǒng)上,其客戶機程序和客戶機程序庫是免費的。 在本游戲中,由于只有單機版的排行榜功能涉及到數(shù)據(jù)庫的插入和查詢,操作比較 IP: Client IP: Server 24 簡單,不涉及復(fù)雜的操作。因此本游戲采用 MySQL 數(shù)據(jù)庫。 二 、 本游戲涉及的數(shù)據(jù)表 本游戲中只涉及到一個排行榜( hero)表格,用來存儲玩家的名次、姓名和得分。當游戲結(jié)束后,玩家可通過對話框輸入自己的姓名,如果玩家不輸入姓名直接點擊“確定”按鈕,系統(tǒng)將自動記錄玩家的得分。并把結(jié)果輸入的 hero 表中。表 為排行榜數(shù)據(jù)表( hero)。 表 排行榜表( hero) 字段名 類型 長度 意義 可否為空 關(guān)鍵字 id int 8 序號 N Y name char 35 玩家姓名 Y N score int 18 分數(shù) N N 第八節(jié) 游戲的總體流程圖 流程圖是流經(jīng)一個系統(tǒng)的信息流、觀點流或部件流的圖形代表。使用圖形表示算法的思路是一種極好的方法,因為千言萬語不如一張圖。流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。 圖 48所示為游戲的總體流程圖。 主要用來說明 游戲的執(zhí)行 過程 。 說明:玩家進入俄羅斯方塊游戲主界面后先判斷是否進行單機版游戲,如果是即可開始游戲,直到游戲結(jié)束;如果不是在判斷玩家是否選擇雙人對戰(zhàn)版游戲,如果是即可開始游戲,直到游戲結(jié)束;如果不是,即可結(jié) 束游戲。 25 開 始進 入 游 戲 主 界 面進 入 單 機 版 游戲 否 ?進 入 雙 人 版 游戲 否 ?開 始 游 戲結(jié) 束否是是否 圖 48 游戲總體流程圖 第 五 章 詳細設(shè)計與實現(xiàn) 第一節(jié) 詳細設(shè)計概述 詳細設(shè)計階段的根本目標是確定應(yīng)該怎樣具體地實現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。 詳細設(shè)計階段的任務(wù)還不是具體地編寫程序,而是要設(shè)計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的代碼。因此,詳細設(shè)計的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。 第二節(jié) 游戲主界面設(shè)計與實現(xiàn) 游戲主界面是設(shè)計的關(guān)鍵也是游戲主要組成部分。為了增強游戲界面的美化效果,使界面簡潔直觀。在主界面上添加了 gif 格式的圖片作為背景,并添加了四個按鈕和一個進度條。游戲的主界面如圖 51 所示。玩家可以通過單擊按鈕來選擇游戲模式:單機版或雙人對戰(zhàn)版。 26 圖 51 游戲主界面 (一) 、 單擊“單機版”按鈕,進入單機游戲。同時主界面上的進度條開始刷新,當前進到 100%時,主界面消失。 (二) 、 單擊“雙人對戰(zhàn)版”按鈕,進入雙人對戰(zhàn)游戲。同時主界面上的進度條開始刷新,當前進到 100%時,主界面消失。 (三) 、 單擊“幫助”按鈕,進入游戲幫助界面,如圖 52。由于游戲操作簡單,所以僅用圖片幫助形式展現(xiàn)了幫助信息。單擊“確定”按鈕退出該界面。 27 圖 52 俄羅斯方塊幫助信息 圖 53 退出游戲?qū)υ捒? (四) 、 單擊“退出”按鈕,顯示退出游戲?qū)υ捒颍鐖D 53所示。選擇“是”退出游戲,選擇“否”繼續(xù)游戲。 (五) 、 游戲代碼程序在 項目窗口中的類文件瀏覽圖如圖 54所示。 包包含 、 、 包以及以下類。 28 圖 54 游戲程序代碼的類文件瀏覽圖 ● MainFrame :游戲 主界面類,是俄羅斯方塊游戲的主窗口,繼承于 JFrame 類,并實現(xiàn) ActionListener 和 Runnable 接口。負責游戲的全局控制。 通過單擊按鈕來選擇游戲的模式:單機版和雙人對戰(zhàn)版。 ● HelpFrame : 游戲的幫助窗口,該類繼承于 JFrame 類,并實現(xiàn) ActionListener 接口,主要是通過圖片顯示來說明游戲的玩法。 ● GameExitSet :退出游戲?qū)υ捒蝾?,繼承于 JDialog 類,單擊 “ 是 ” 退出游戲,單擊 “ 否 ” 繼續(xù)游戲。 ● RussiaBox : 方格類,是組成俄羅斯方塊的基本元素,用自己的顏色來表示塊的外觀 。 該類實現(xiàn) Cloneable 接口,從而可以合法地使用 ()方法域到域地拷貝類對象,否則這種拷貝將會導(dǎo)致異常 。單機版和雙人對戰(zhàn)版俄羅斯方塊的實現(xiàn)均需用到此類。 第三節(jié) 俄羅斯方格類的設(shè)計與實現(xiàn) 俄羅斯方塊的基本元素是 RussiaBox 類。 在語法上它實現(xiàn)了 Java 平臺提供的Cloneable 接口。方格類是組成單機版俄羅斯方格( SingleBlock)類和雙人對戰(zhàn)版俄羅斯方格( DoubleBlock)類的基本元素,它用自己的顏色來表示塊的外觀。方塊類由 4 4 個方格( RussiaBox)構(gòu)成一個方塊,而游戲窗口是一個畫布類,這個畫面內(nèi)有 行數(shù) 列數(shù) 個方格類實例。 顯然在俄羅斯方塊游戲中的 行數(shù) 列數(shù) 個方格中只有兩類方格,即著色方格和未著色方格。要實現(xiàn)方格對象的復(fù)制就必須使方格類實現(xiàn) Cloneable 接口。實現(xiàn)Cloneable接口 后則表明可以合法地使用 ()在一個類的實例之間進行域?qū)τ虻貜?fù)制。如果沒有實現(xiàn)這個接口又調(diào)用了 Object 的 clone()方法將會導(dǎo)致拋出CloneNotSupportedException 異常。通常的作法是:一個類在實現(xiàn) Cloneable 的接口的同時用一個 public 類型的方法覆蓋 ()方法( ()在 Object中定義為 protected 類型)。 29 在方格類中用一個 Dimension 對象表示一個方格的大小,因此 Dimension 對象是RussiaBox 類的一個成員變量。另外,方格類還使用了兩個與 Dimension 有關(guān)的方法,分別用來獲得和設(shè)置方格的大小。 Dimension 類封裝了一個構(gòu)件的高度和寬度,這個類與一個構(gòu)件的許多屬性相關(guān)聯(lián),因此在 Component 類中定義多個與之相關(guān)的方法。Dimension 類的高度值和寬度值都是一個整數(shù),表明有多少個像素點。 第四節(jié) 游戲塊的設(shè)計與實現(xiàn) 游戲塊是俄羅斯方塊游戲的最基本元素。在設(shè)計游戲塊的過程中有以下兩種思路 : ① 利用引入圖形方塊來構(gòu)造游戲塊,即每一個游戲格為一個圖形塊。 ② 利用 Java 中提供的圖形類對象并對其著色來實現(xiàn)游戲塊。 這里采用第 2種設(shè)計思路,因為圖形類對象的使用便于進一步對游戲進行控制,另外,采用圖形對象還能在實現(xiàn)雙人對戰(zhàn)游戲時減少數(shù)據(jù)的傳輸量。 首先,定義一個 RussiaBox 類來表示一個游戲單元方格,然后定義一個游戲方塊,該游戲由 4 4 個 RussiaBox 單元格組成,定義 4 4 的游戲方塊是為了便于實現(xiàn)前面提到的 7種不同的俄羅斯方塊,因為 7 種俄羅斯方塊的旋轉(zhuǎn)變化恰好都在長、寬 各位4個單元格的畫布之內(nèi)。通過著色方式可以輕松實現(xiàn)方塊的 28 種不同形態(tài),并對后續(xù)的游戲運行控制提供便利。 圖 55 游戲單元方格 該類用 4位 16進制數(shù)表示一個 4 4 個 方格組成的方塊,即一個方塊的狀態(tài),如圖 55所示的一個橫條,用一個 4位 16進制表 示即為 0x0f00,其中 0x表示 16進制, 0x 后 ( 圖 55 0x0f00 表示)的方 的第一個數(shù) 0表示方塊的第一行沒有填充,第二個數(shù) f表示方塊的第二行全部填充,由 2)1111(f ? 可以看出 16進制的數(shù)對應(yīng)的二進制為 1 時表示該方格被填充;為 0時則不填充。 這 28 中狀態(tài)可用如下一個 STYLES 數(shù)組表示出來: public final static int[][] STYLES = { {0x0f00, 0x4444, 0x0f00, 0x4444}, // 長條型的四種狀態(tài) 30 {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 39。T39。型的四種狀態(tài) {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反 39。Z39。型的四種狀態(tài) {0x2640, 0xc600, 0x2640, 0xc600}, // 39。Z39。型的四種狀態(tài) {0x6220, 0x1700, 0x2230, 0x0740}, // 39。739。型的四種狀態(tài) {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反 39。739。型的四種狀態(tài) {0x0660, 0x0660, 0x0660, 0x0660}, // 方塊的四種狀態(tài) }。 一個 STYLES 中的元素是用一個整數(shù)表示的,如橫長條是用 0x0f00 表示,再用key=0x8000 與 STYLES 的某個元素 style 進行“與”運算,即取出了 style 中的第一位,這一位如果是 1,則表示對應(yīng)的方格在該方塊中是要用色彩來顯示的,因此產(chǎn)生一個方格,即一個 RussiaBox對象。檢查之后再作移位運算 key1,如 0x8000移位后變成 0x4000,再利用它進行檢查與 style 第二位對應(yīng)方塊的位置是否應(yīng)該產(chǎn)生一個有色彩的方格,如此下去,這個二重 for 循環(huán)
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1