超级俄罗斯方块V1.0说明文档

    技术2022-05-19  46

    超级俄罗斯方块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.优美界面、人性设计


    最新回复(0)