好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于JAVA的剪刀石头布游戏设计.doc

10页
  • 卖家[上传人]:gg****m
  • 文档编号:206221701
  • 上传时间:2021-10-30
  • 文档格式:DOC
  • 文档大小:262KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1剪刀石头布游戏设计思路阐述 22程序概要设计 22.1功能需求分析 22.2性能需求分析 22.3程序框图 32.4 JAVA类及自定义类相互继承的层次关系 32.4.1 Java类及自定义类的说明 32.4.2类中成员及作用 4String data;〃接收数据 4Socket client = null;〃定 义套接字 4BufferedReader inputs = null;// 读取数据 4BufferedReader key = null;// 缓冲数据 4PrintStreani outputs = null;//输出数据 42.5程序运行效果及存在的问题 42.5.1运行效果图 42.5.2存在的问题 53程序详细设计 53.1类获包的加载 5import java.io.*; 5.*; 53.2自定义类创建服务器端 53.3创建数据处理类 64测试运行 75源代码清单 86总结 10基于JAVA的剪刀石头布游戏设计1剪刀石头布游戏设计思路阐述在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的 实现:⑴构造创建服务器端和客户端⑵创建输入输出流⑶编写服务器端处理数据的线程方法⑷绘制游戏界面⑸绘制界面上的提示采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏 的实现,程序也更易于读懂。

      如java中得到输入输出流的方法://调用客户端的getlnputStream()方法Inputs=newBufferedReader(new InputstreamReader(client, getInputStream()));通过调用此方法获取从服务器得到的数据调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器2.1功能需求分析一个剪刀石头布游戏,根据一般的常识,首先要有两个人,两个人同时出, 然后,根据双方的出拳,决定谁是赢者,虽然想起来这个游戏很简单,但如何实 现,还是有一定难度的实现这个时针时涉及到儿个技术问题:1. 双方如何出拳2. 如何同时出拳3. 如何判断哪方赢了4. 如何显示结果剪刀石头布游戏,都是通过两个人同时出拳,然后根据双方出的拳,判定哪 方是械家2. 2性能需求分析准确性:在实现此的过程中,我们要考虑到,双方是否能同时地出拳,还要 就是如何去判断,准确地知道哪方是赢家.简洁性:在实现此的过程中,我们要考虑到,怎样使游戏界面更简单,让人 更容易明白它怎样去玩2.3程序框图游戏程序框图如图1所示:图1游戏程序框图2.4 JAVA类及自定义类相互继承的层次关系2.4.1 Java类及自定义类的说明自定义类:类名:SocketServer作用:服务器类继承的父类:Thread类实现的接曰:无类名:Service作用:服务器类,它是判定胜负的类继承的父类:Thread类类中成员:String data;BufferedReader inputs;PrintStream outputs;Socket client;实现的接曰:无类名:Client作用:客户端类类中的成员:getlnputStream 0 ;getOutputStream ();InputStreamReader ();readLine ();实现的接口:无自定义类中子类和其父类的继承关系如图2如所示:图2子类及其父类继承关系图2. 4.2类中成员及作用Service类成员:String data; 〃接收数据Buff er edReader inputs;// 读取数据PrintStream outputs;//输出数据Socket client;//定义套接字Client类成员:String data;//接收数据Socket client = null;//定义套接字BufferedReader inputs = null; // 读取数据BufferedReader key = null; // 缓冲数据 PrintStream outputs = null;//输出数据2.5程序运行效果及存在的问题2. 5.1运行效果图剪刀石头布游戏效果如图3所示:图3时钟效果图2. 5.2存在的问题此游戏界面简洁明了,但还是有许多问题的,比如说这个界面不是GUI 的,所以操作性不强,也不美观,而且处理数据的random函数也有问题,它 可能出现相同的结果,不能成为真正意义上的随机,所以这个小游戏还是有许 多问题的,我会进一步的改进它。

      3程序详细设计3.1类获包的加载加载剪刀石头布游戏设计中用到的类和包,用于运行主程序: import java. io. *;import java. net. *;3.2自定义类创建服务器端使用自定义类ServerSocket继承父类Thread使用run等方法,构造函数 创建一个服务器端[51 o程序代码如下:public class SocketServer extends Thread {ServerSocket server;public SocketServer() (try {server = new ServerSocket (6000);}System.exit(0);this, start ();}public void run() (try {while(true) (Socket client = server, accept ();Service ss = new Service (client);})catch(lOException c) (System, exit(1);})public static void main(String[] args) { new SocketServer ();)3. 3创建数据处理类创建一个用于数据处理类使服务器能准确处理数据,获取数据,并使用方 法run。

      实现数据处理实现代码如下:〃创建数据储存变量inputs = new BufferedRetider (new InputStretimReader(client, getInputStream()));outputs = new PrintStream(client. getOutputStreamO);〃创建一个Run方法public void run () {3. 4创建客户端类创建一个用于客户端接收玩家输入的数据的类,程序实现代码如下:〃接收客户端的数据public class Client (public stcitic void main (String[] args) {String data;Socket client = null ;BufferedReader inputs = null;BufferedReader key = null;PrintStrearn outputs = null;try {client = new Socket (,zlocalhost6000);inputs = new BufferedReader (newInputStrcamReader (client. getlnputStreamO));outputs = new PrintStream(cliente getOutputStreamO):key = new BufferedReader(new InputStrearnReader(System, in));System, out. printin("CAN NOT CONN WITH SERVER");try {while (true) (System, out. printin (〃 〃);System, out. print C请出拳:石头/剪刀/布〃);data = key. readLineO ;outputs, printIn (data);System, out. println(,zECHO: 〃 + inputs. readLineO);}}catch(lOException e) {System, out. printin(,zERROR I0〃);}try (client, close();}catch(lOException e) (System, out. printin(/zcan not close it〃);4测试运行程序编写好后,用JCreator软件运行,检测程序设计结果,执行目标程序后 得到如图4所示的窗体:・ D:\Program Files\JCreator Pr.J __回 I 图4程序测试图经检测程序运行正常。

      5源代码清单import java. io. *;import .public class SocketServer extends Thread {ServerSocket server;public SocketServeiO ( try {server = new ServerSocket(6000);jcatch (lOException e) {System, exi t(0); i jthis, start ();}public void run() (try {while (true) (Socket client = server, accept ();Service ss = new Service (client);))catch (TOException e) (System, exit(1);)}public static void main(String[] args) {new SocketServer();}}public class Service extends Thread (String data;BufferedRcader inputs;PrintStream outputs;Socket client;public Service (Socket socket) (client = socket;try {inputs = new BufferedReader(newInputStreamReader(client. getlnputStreamO));outputs = new Pr i nt St ream (client. getOutputStrearnO );}catch (lOException e) (e. printStackTrace ();}this, start ();}public void run() (try {while (true) (data = inputs. readLine();int res = (int) (Math, random() * 3):if (data == null)break;else {if (res == 0 && 〃石头equals (data))。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.