超级俄罗斯方块V1.0

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

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

1简介

1.1项目名称及编写者

   超级俄罗斯方块V1.0(双模式)

   夏斯华(010155)(xiasihua0001@yahoo.com.cn

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值