超級俄羅斯方塊V1.0說明文檔

超級俄羅斯方塊V1.0說明文檔 

夏斯華 二零零四年三月十四日

1簡介

1.1項目名稱及編寫者

   超級俄羅斯方塊V1.0(雙模式)

   夏斯華

1.2項目介紹

本程序實現了俄羅斯方塊遊戲的基本功能。可以單機遊戲,也可以通過TCP/IP協議進行網絡遊戲。涉及到了JAVAGUI,線程控制,文件讀寫(IO)以及基於SOKET的網絡傳輸。既可單機遊戲,也雙機聯機遊戲。適用於jdk1.4以上運行環境。

1. 3編寫目的

編寫該程序,旨在對JAVA 程序設計有更深刻的瞭解。實踐JAVA語言的應用。以及培養自己良好的JAVA編程風範。實踐設計模式。

1.4項目背景

在對JAVA程序設計這門課程進行了系統學習後,運用課程中學到知識進行設計編寫的軟件。本程序涉及到的JAVA模塊有:圖形界面(GUI),線程,網絡(SOCKET),以及基本輸入輸出。

1.5主要技術支持和相關參考

該項目涉及到的JAVA知識有:JAVAGUI,線程控制以及基於SOKET的網絡傳輸。

參考書目:

    java有關電子版書

     Thinking in JAVA(中文版)(機械工業出版社)

         網上相關專題的文章

 

2遊戲說明及使用

2.1遊戲起源、歷史、簡介

俄羅斯方塊是一款風靡全球的電視遊戲機和掌上遊戲機遊戲,它曾經造成的轟動與造成的經濟價值可以說是遊戲史上的一件大事。這款遊戲最初是由蘇聯的遊戲製作人Alex Pajitnov製作的,它看似簡單但卻變化無窮,令人上癮。相信大多數用戶都還記得爲它癡迷得茶不思飯不想的那個俄羅斯方塊時代。

  究其歷史,俄羅斯方塊最早還是出現在PC機上,而我國的用戶都是通過紅白機瞭解、喜歡上它的。現在我就想實現這膾炙人口好遊戲。對大家來說,它的規則簡單,容易上手,且遊戲過程變化無窮,而在我實現的遊戲中,更有一些獨有的魅力――有單機作戰與兩人在線對戰兩種模式,用戶可任選一種進行遊戲。

2.2運行環境

簡要地說明對本系統的運行環境(包括硬件環境和支持環境)的規定。

l         硬件環境:

處理器主頻600MHZ以上,內存1G以上,VGA視頻顯示器,標準的鼠標、鍵盤

l         軟件環境:

Ø         操作系統:Windows2000sp3或以上

Ø         JDK1.4以上

l         網絡要求:

         要求局域網支持TCP/IP協議,局域網連接最好能穩定,傳輸流暢。(玩網絡對戰時需要)

其他的 LinuxsoralisUnix相當要求

2.3我的遊戲

我的俄羅斯方塊可以聯網運行,也可以單機運行,下面就兩種模式分別進行一下介紹:

1、   聯網模式:聯網遊戲先在一臺電腦上運行程序,點選菜單中的RunServer,然後在另一臺電腦上運行程序,點選RunClient,輸入正確的IP地址就可以開始遊戲。在自己的電腦上可以看到對方的遊戲情況。

2  單機模式:單機版遊戲點選菜單中的NewGame。用上下左右鍵就可以控制遊戲。“上”爲讓方塊變形,其他控制方向,界面上會顯示出得分和難度級別。爲了演示方便,當消除10行之後難度就會升一級方塊下落速度也相應加快。當遊戲失敗時會給出提示。-

當然在進入系統之前可以設置速度、方塊形狀難易程度、界面方格的行數和列數。

3詳細設計

3.1系統規劃:

 遊戲和網絡即時傳輸相結合。編成的過程中儘可能的使用到了繼承,接口等面向對象的編程方法。

3.2內部設計:

   內部對象及方法:

         遊戲模塊:

             class RussianGame extends JFrame

         主窗口類,顯示程序主界面

class OptionDialog extends JDialog

遊戲參數設置選擇對話框

            class RussianPanel extends JPanel

             用於接受鍵盤消息並繪出遊戲界面的類。

class InsertURScore extends JDialog

此內部類處理將分數加進積分榜上

             class RsnArith

             提供俄羅斯方塊遊戲的算法支持

             inner class MyPoint extends Point

             算法類的內置類用於儲存遊戲所有方格的信息。

             class Diamonds

             遊戲算法的一部分。儲存方塊信息。RussianPanel根據該類的信息在屏幕上畫出方塊

             class IDiamonds extends Diamonds

             儲存長條形方塊信息

             class RLDiamonds extends Diamonds

             儲存L型方塊信息

             class LLDiamonds extends Diamonds

             儲存反L型方塊信息

             class RSDiamonds extends Diamonds

             儲存右S型方塊信息

             class LSDiamonds extends Diamonds

             儲存左S型方塊信息

             class ODiamonds extends Diamonds

             儲存四方型方塊信息

             class TDiamonds extends Diamonds

             儲存T型方塊信息

class L5Diamonds extends Diamonds

class R5Diamonds extends Diamonds

class TriDiamonds extends Diamonds

class RGDiamonds extends Diamonds

class LGDiamonds extends Diamonds

         Diamonds作爲基類可以很容易的擴展出更多種形狀的方塊     

public class Score

處理遊戲積分的

class ScoreReport extends JDialog

英雄榜對話框

class GameInfo

內含靜態的變量,用於遊戲參數的保存,有點象全局變量

public class HandlerLogger

用來處理異常處理以及其他類型日誌的

         網絡模塊:

             class NetThread extends Thread

             用於網絡連接的線程。作爲一個父類提供給子類必要的功能

             class ServerThread extends NetThread

             服務器端的線程

             class ClientThread extends NetThread

             客戶端的線程

             public class TransInfo implements Serializable

             用於儲存網絡傳送的必要信息。比如當前遊戲的狀態。

當客戶端或服務器端檢查到遊戲狀態改變時互相發送給對方來實現顯示同步。


說明:

箭頭

表示繼承關係,-橫線表示此類用到了另一類或有關係。方框裏的方框表示內部類。

3.3關鍵算法

俄羅斯方塊的產生問題。用了二維數組,存放每個點對於某一個特殊點的相對位置座標。具體見程序文件Diamond.java

3.4特性羅列:

1.遊戲參數設置

2.單機遊戲

3.網絡對戰

4.英雄榜(數據持久化)

5.異常、錯誤、類型說明等日誌

6.優美界面、人性設計

發佈了9 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章