基于JAVA的剪刀石头布游戏设计文档格式.docx

上传人:b****3 文档编号:8082579 上传时间:2023-05-10 格式:DOCX 页数:13 大小:74.10KB
下载 相关 举报
基于JAVA的剪刀石头布游戏设计文档格式.docx_第1页
第1页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第2页
第2页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第3页
第3页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第4页
第4页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第5页
第5页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第6页
第6页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第7页
第7页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第8页
第8页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第9页
第9页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第10页
第10页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第11页
第11页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第12页
第12页 / 共13页
基于JAVA的剪刀石头布游戏设计文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于JAVA的剪刀石头布游戏设计文档格式.docx

《基于JAVA的剪刀石头布游戏设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于JAVA的剪刀石头布游戏设计文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

基于JAVA的剪刀石头布游戏设计文档格式.docx

2.5.1运行效果图4

2.5.2存在的问题5

3程序详细设计5

3.1类获包的加载5

importjava.io.*;

5

import.*;

3.2自定义类创建服务器端5

3.3创建数据处理类6

4测试运行7

5源代码清单8

6总结10

 

1剪刀石头布游戏设计思路阐述

在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现:

⑴构造创建服务器端和客户端

⑵创建输入输出流

⑶编写服务器端处理数据的线程方法

⑷绘制游戏界面

⑸绘制界面上的提示

采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现,程序也更易于读懂。

如java中得到输入输出流的方法:

//调用客户端的getInputStream()方法

Inputs=newBufferedReader(newInputStreamReader(client.getInputStream()));

通过调用此方法获取从服务器得到的数据

调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器。

2程序概要设计

2.1功能需求分析

一个剪刀石头布游戏,根据一般的常识,首先要有两个人,两个人同时出,然后,根据双方的出拳,决定谁是赢者,虽然想起来这个游戏很简单,但如何实现,还是有一定难度的。

实现这个时针时涉及到几个技术问题:

1.双方如何出拳

2.如何同时出拳

3.如何判断哪方赢了

4.如何显示结果

剪刀石头布游戏,都是通过两个人同时出拳,然后根据双方出的拳,判定哪方是赢家。

2.2性能需求分析

准确性:

在实现此的过程中,我们要考虑到,双方是否能同时地出拳,还要就是如何去判断,准确地知道哪方是赢家.

简洁性:

在实现此的过程中,我们要考虑到,怎样使游戏界面更简单,让人更容易明白它怎样去玩。

2.3程序框图

游戏程序框图如图1所示:

图1游戏程序框图

2.4JAVA类及自定义类相互继承的层次关系

2.4.1Java类及自定义类的说明

自定义类:

类名:

SocketServer

作用:

服务器类

继承的父类:

Thread类

实现的接口:

Service

服务器类,它是判定胜负的类

类中成员:

Stringdata;

BufferedReaderinputs;

PrintStreamoutputs;

Socketclient;

Client

客户端类

类中的成员:

getInputStream();

getOutputStream();

InputStreamReader();

readLine();

自定义类中子类和其父类的继承关系如图2如所示:

图2子类及其父类继承关系图

2.4.2类中成员及作用

Service类成员:

//接收数据

BufferedReaderinputs;

//读取数据

PrintStreamoutputs;

//输出数据

Socketclient;

//定义套接字

Client类成员:

//接收数据

Socketclient=null;

//定义套接字

BufferedReaderinputs=null;

BufferedReaderkey=null;

//缓冲数据

PrintStreamoutputs=null;

2.5程序运行效果及存在的问题

2.5.1运行效果图

剪刀石头布游戏效果如图3所示:

图3时钟效果图

2.5.2存在的问题

此游戏界面简洁明了,但还是有许多问题的,比如说这个界面不是GUI的,所以操作性不强,也不美观,而且处理数据的random函数也有问题,它可能出现相同的结果,不能成为真正意义上的随机,所以这个小游戏还是有许多问题的,我会进一步的改进它。

3程序详细设计

3.1类获包的加载

加载剪刀石头布游戏设计中用到的类和包,用于运行主程序:

3.2自定义类创建服务器端

使用自定义类ServerSocket继承父类Thread使用run等方法,构造函数创建一个服务器端【5】。

程序代码如下:

publicclassSocketServerextendsThread{

ServerSocketserver;

publicSocketServer(){

try{

server=newServerSocket(6000);

}

catch(IOExceptione){

System.exit(0);

this.start();

publicvoidrun(){

try{

while(true){

Socketclient=server.accept();

Servicess=newService(client);

System.exit

(1);

publicstaticvoidmain(String[]args){

newSocketServer();

}

3.3创建数据处理类

创建一个用于数据处理类使服务器能准确处理数据,获取数据,并使用方法run()实现数据处理。

实现代码如下:

//创建数据储存变量

inputs=newBufferedReader(newInputStreamReader(client.getInputStream()));

outputs=newPrintStream(client.getOutputStream());

//创建一个Run方法

publicvoidrun(){

}

3.4创建客户端类

创建一个用于客户端接收玩家输入的数据的类,程序实现代码如下:

//接收客户端的数据

publicclassClient{

publicstaticvoidmain(String[]args){

try{

client=newSocket("

localhost"

6000);

inputs=newBufferedReader(newInputStreamReader(client.getInputStream()));

outputs=newPrintStream(client.getOutputStream());

key=newBufferedReader(newInputStreamReader(System.in));

System.out.println("

CANNOTCONNWITHSERVER"

);

while(true){

----------------------------"

System.out.print("

请出拳:

石头/剪刀/布"

data=key.readLine();

outputs.println(data);

ECHO:

"

+inputs.readLine());

ERRORIO"

client.close();

cannotcloseit"

}

4测试运行

程序编写好后,用JCreator软件运行,检测程序设计结果,执行目标程序后得到如图4所示的窗体:

图4程序测试图

经检测程序运行正常。

5源代码清单

publicclassServiceextendsThread{

publicService(Socketsocket){

client=socket;

catch(IOExceptione){

e.printStackTrace();

while(true){

data=inputs.readLine();

intres=(int)(Math.random()*3);

if(data==null)

break;

else{

if(res==0&

&

石头"

.equals(data)){

data="

电脑也是石头,打平了!

!

"

;

}elseif(res==0&

剪刀"

电脑是石头,电脑赢了!

布"

电脑是石头,恭喜,你赢了!

}elseif(res==1&

电脑是剪刀,恭喜,你赢了!

电脑也是剪刀,打平了!

电脑是剪刀,电脑赢了!

}elseif(res==2&

电脑是布,电脑赢了!

电脑是布,恭喜,你赢了!

电脑也是布,打平了!

}else{

电脑不认识你出的拳"

}catch(IOExceptione){

6总结

通过此次的课程设计,让我了解和学会了许多Java的基础知识。

从课程设计中我学会了Java中类的作用及其方法的调用,知道了类的父类和子类的的继承关系及自定义类的作用,还使我了解到服务器和客户端的特点和作用,我需要学习的东西还很多。

通过此次的课程设计,让我了解到自己以往学习中的不足之处,认识到自己还有哪一些知识没有掌握,让我有了学习的重点和方向,更有利于今后的学习。

在实践中发现问题,分析问题,解决问题,在每一个问题中,吸取知识和经验,最终掌握知识和技巧。

通过课程剪刀石头布游戏,让我体会到了付出劳动才能有所收获的喜悦感,让我明白了只有真正通过实践才能更好的融汇和掌握所学的理论知识。

这次课程设计,让我今后有了更好的学习方向,给了我更多的学习动力,对我的帮助很大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2