超级俄罗斯方块V1.0

news/2024/11/15 6:56:31/

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


http://www.ppmy.cn/news/595592.html

相关文章

自定义俄罗斯方块

单臂大回旋(风车)式旋转支持自定义方块支持修改棋盘大小暴肝一晚,码风混乱,欢迎拍砖/fad ###还有些bug 1判定问题: 一直旋转可能产生原力(卡过下落时间)…减缓掉落 2积分加速还没有严格测试,手太残了,没测出来 食用方式 编译生成.exe 同文件夹下放1.txt,并输入方块信息 4.23更…

制作单机俄罗斯方块游戏总结(一)

序言 声明一下:本人是java初学者,所以这个游戏的代码大部分是由我买的<<疯狂java实战演义 >>面的, 当然也有我自己的心血在里面.当初最初自己按照书上的思路做这个游戏(没有看作者的代码),走了不少的弯路. 做完这个游戏,收获颇多,感觉有必要总结一下自己的学习心得…

java俄罗斯方块(新手版)

做好俄罗斯方块要先了解俄罗斯思想与规则&#xff0c;我们会用到基础知识继承(extends)&#xff0c;二维数组&#xff0c;当然我们最重要的是要记住方块的位置。有了基本的思想我们就可以开始做了&#xff0c;下面是我的基本思想(如果你们有更好的设计思想可以回复我&#xff0…

OpenWrt下mwan3定时重启

我在竞斗云下用的OpenWrt里的mwan3有问题&#xff0c;每次启动mwan3先启动&#xff0c;然后拨号获取ip地址也不自动重新检测wan的状态&#xff0c;导致在 状态——Multiwan——状态里显示几个wan都是“interface wan is error (16) and tracking is not enable”的或者error (1…

创建四大经济区shp矢量图

准备 1、具有省域划分的shp矢量图 2、Arcgis 一、创建新要素 右击目录-新建-要素文件 选择要素开始编辑 矩形框选需要的行政边界要素点—右击要素线复制—粘贴至新要素文件中 &#xff08;长按shift键&#xff0c;多点选择&#xff09; 结果图&#xff08;部分&#xff0…

大语言模型 -- 部署LaWGPT模型记录

模型介绍&#xff1a; 该系列模型在通用中文基座模型&#xff08;如 Chinese-LLaMA、ChatGLM 等&#xff09;的基础上扩充法律领域专有词表、大规模中文法律语料预训练&#xff0c;增强了大模型在法律领域的基础语义理解能力。在此基础上&#xff0c;构造法律领域对话问答数据…

vue 将登录后信息放入cookie中,后端请求接口携带

第一步 import Cookies from "js-cookie";//将需要的信息放入cookie Cookies.set("deptId", res.user.dept.deptId, { expires: 30 });引入cookies import Cookies from "js-cookie";// 查询参数queryParams: {deptName: undefined,status: un…

Java语言生成一个图片卡通人物形象,呆萌,可爱,新颖(chatgtp3.5创作演示)

chatgtp3.5创作演示&#xff0c;非作者本人原著&#xff0c;请知悉。 仔细阅读下面的程序代码&#xff0c;发现chatgpt直接给出了一个卡通人物生成器的代码&#xff0c;不过不能直接运行&#xff0c;给了一个大体的思路。这也已经非常超出了我的预期。还把opencv的库也调用过来…