JAVA的剪刀石头布游戏设计方案

合集下载

石头剪刀布游戏设计

石头剪刀布游戏设计

沈阳工程学院课程设计任务书课程设计题目:剪刀石头布游戏模拟器系别自动控制工程系班级电子本101 学生姓名李明杰学号 2010311107 指导教师田景贺职称讲师课程设计进行地点:实训F215 任务下达时间: 2012 年 9 月 3 日起止日期: 2012年9月3日起——至 2013年1月11日止教研室主任田景贺 2012年 9月 3日批准1.设计题目:剪刀石头布模拟游戏设计1.1设计目的:(1)能独立查阅、整理、分析有关资料(2)能用数字集成电路完成设计任务(3)掌握脉冲产生、整形与分频电路(4)掌握计数、译码与显示电路1.2基本要求:(1)由按键模拟游戏动作,5局三胜。

(2) 2位数码管显示游戏比分(3)胜负指示(4)系统外电源为AC 220V。

1.3有能力的同学可以利用课余时间进行电路焊接及调试。

2.设计过程的基本要求:2.1 基本部分必须完成,学有余力的同学可以根据自己的能力自行确定发挥部分并完成。

2.2 符合设计要求的报告一份。

设计报告内容要求:1. 写出你考虑该问题的基本思路,画出一个实现电路功能的大致框图。

2. 设计出框图中各部分逻辑电路,可用中、小规模集成电路,也可用中规模集成电路连接而成。

对各部分电路的工作原理应作出说明。

最后,画出整个设计电路的原理电路图,并说明电路工作原理。

3. 进行设计的仿真验证。

4. 要求用A4纸打印,不允许复印。

装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。

5. 2012年9月14日前提交一份总体设计性报告(主要为总体设计,系统框图,功能解析及系统设计的目标),设计报告提交的截止时间为2012年12月31日。

沈阳工程学院数字电子课程设计成绩评定表系(部):自动控制工程系班级:电子本101班学生姓名:李明杰本次课程设计的题目是剪刀石头布模拟游戏设计,其主要功能为:甲乙分别有A、B、C三个按键,分别代表石头、剪刀、布。

两人同时按下一个按键,依据石头剪刀布的游戏规则判定胜、负、平,采取五局三胜制,胜利局数由七段式数字显示器显示,且可以手动清零。

范例__Java课程设计项目报告

范例__Java课程设计项目报告

计算机科学与技术学院“课程设计”项目报告项目名称:石头剪刀布小游戏专业:14软件工程班级:14软件工程学号:143801013 姓名:邓舒成绩:学号:143801012 姓名:王威成绩:指导教师:鲁屹华申请日期:2016年春学期湖北科技学院计算机科学与技术学院制3.2 设置界面3.4 详细设置界面3.6 手动添加设备界面3.8 呼吸灯界面3.10 闹钟灯界面说明:附:答辩记录1.service里的public List<PhotoBean> showPhoto(String photo_theme)方法作用?答:根据主题查找图片的相关信息2.TimeTools工具类作用?答:获取当前时间的,两种方法分别是获取两种格式的时间,一个是20160101222222,一个2016-01-01 22:22:223.applicationContext.xm里<bean id="userBeanDao" class="erBeanDaoHibernate"> <property name="sessionFactory" ref="sessionFactory"></property></bean>作用?答:注入会话工厂,相当于new一个对象userBeanDao,然后将sessionFactory注入里面问:在并发连接的时候是怎么处理的?答:现在是采用把一个完整的服务器端的程序分成几个不同的不同的项目,使整个服务器端的程序可以放在不同的主机上运行,以浪费主机的方式达到快速响应的目的,后期会采用Nginx负载均衡的方式处理高并发的情况。

问:在你的系统中是怎样对数据存储的?答:在本系统中采用了二级存储体系,传统的mysql数据库实现数据的实时存储,为了提高用户访问服务器的速度,把活跃用户的信息和设备信息存储在redis数据库中。

石头、剪子、布——将游戏引入程序设计

石头、剪子、布——将游戏引入程序设计

2014-02百花园地初二信息技术教学中,我市采用的是江苏省初中信息技术(选修)课本,主要是进行VB程序设计的教学,让学生通过学习能够掌握VB这门编程语言,学会编写简单的程序,培养一定的编程思想,由于课程时间安排紧凑,在教学中就更要把握好每一节课的时间,充分提高课堂的效率。

在初中信息技术(选修)课本2.2.2中,要通过一个课时的时间,让学生了解、掌握条件语句,这在整个教学过程中都是一个重、难点。

条件语句是VB程序设计中的基本语句之一,其反映的是程序三大基本结构(顺序结构、循环结构和选择结构)中的选择结构,主要用于在程序执行过程中设置给定的条件,并根据给定的条件进行判断,再根据判断的结果来控制程序的流程。

在条件语句设置给定条件时,通常将条件表达式分为关系表达式和逻辑表达式,前者以<、<=、>、>=、=、<>等符号表示条件对象之间的关系,后者以and、or、not来表示条件与条件之间的逻辑关系。

作为一名初二的学生,在数学课堂上已经学习过部分逻辑关系,但由于本身逻辑思维能力的欠缺,以及对程序设计的兴趣不足,结合程序设计语句教学,结果大部分学生在条件设置、程序判断上还存在很多问题。

江苏省初中信息技术课本(选修)第八章第3节中,要求讲授条件语句中的IF语句,该节课程要求让学生在掌握顺序结构的基础上,学习了解选择结构,课本上的概念较多,实践较少,为了让学生更好地掌握IF语句,对程序选择结构能有一个更具体的了解,我将课外游戏的内容引入课堂,尝试调动学生的学习兴趣,提高课堂的效率。

在我以前的条件语句课程设计时,一般先进行情境的创设,如,以“明天爸爸妈妈带一家人前往尚湖公园,只要不下雨(条件)”为例,用“不下雨”这个条件进行判断,明天爸爸妈妈是不是带一家人去公园玩,让学生了解,这个就是条件、这个就是判断,再以“在尚湖公园入口要买票,学生半票,成人全票,老人免票(条件)”为例,重申条件和判断,并提出条件并不一定是2选1,还可以多选1。

Java剪刀石头布

Java剪刀石头布

Java剪⼑⽯头布package day09_test;import java.util.Random;import java.util.Scanner;import day09.GamePlayer;import day09.GameRobot;public class GameTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输⼊猜拳⽐赛回合数:");int maxNumber = input.nextInt();//回合计数器int count = 0;//玩家胜利数int countP = 0;//电脑胜利数int countR = 0;while(count<maxNumber) {System.out.println("请输⼊你想出的数字:(1.剪⼑ 2.⽯头 3.布)");int PlayNum = input.nextInt();if (PlayNum>3 || PlayNum<=0) {System.out.println("输⼊有误!请重新输⼊:");PlayNum =input.nextInt();}GamePlayer player = new GamePlayer(PlayNum);player.say();//机器⼈随机输⼊1-3Random r = new Random();int RobotNum = r.nextInt(3)+1;GameRobot robot = new GameRobot(RobotNum);robot.say();//判断输赢if (player.getNumber()==robot.getNumber()) {count++;System.out.println("第"+count+"局:双⽅⼀致,请重新猜拳!");}else if (player.getNumber()==1) {//玩家出剪⼑if (robot.getNumber()==3) {//电脑出布count++;countP++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (robot.getNumber()==2) {//电脑出⽯头count++;countR++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}}else if (player.getNumber()==2) {//玩家出⽯头if (robot.getNumber()==3) {//电脑出布count++;countP++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}else if (robot.getNumber()==1) {//电脑出剪⼑count++;countR++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (player.getNumber()==3) {//玩家出布if (robot.getNumber()==2) {//电脑出布count++;countP++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (robot.getNumber()==1) {//电脑出剪⼑count++;countR++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}}}if (countP==countR) {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,平局!");}else if (countP>countR) {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,玩家胜利!");}else {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,电脑胜利!");}}}package day09;public class GameRobot {private int number;public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public GameRobot() {super();// TODO Auto-generated constructor stub}public GameRobot(int number) {super();this.number = number;}public void say() {switch(this.number) {case 1:System.out.println("电脑出的是剪⼑");break;case 2:System.out.println("电脑出的是⽯头");break;case 3:System.out.println("电脑出的是布");break;}}package day09;/*** 今天的任务是通过控制台⽅式实现⼀个⼈机对战的猜拳游戏,⽤户通过输⼊(1.剪⼑ 2.⽯头 3.布),机器随机⽣成(1.剪⼑ 2.⽯头 3.布),胜者积分,n 局以后通过积分的多少判定胜负。

java游戏—石头剪刀布

java游戏—石头剪刀布
}
public void actionPerformed(ActionEvent e){
random=new Random();
int i=random.nextInt(3);
if(e.getActionCommand()=="石头"){
if(result[i].equals(result[0])){
Jta.append("\n\n现在比分是: 您: "+s1+"许仕永: "+s2);
}
if(result[i].equals("布")){
Jta.setText("");
String s1=String.valueOf(myguess);
String s2=String.valueOf(cupguess);
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class Shi_T implements ActionListener{
JFrame frame;
//b5.addActionListener(this);
cp.add(p1,BorderLayout.CENTER);
cp.add(p2,BorderLayout.SOUTH);
frame.setVisible(true);
frame.setSize(400,300);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);

Java课程设计-剪刀、石头、布游戏 - 代燕清

Java课程设计-剪刀、石头、布游戏 - 代燕清

2012届课程设计20《剪刀、石头、布小游戏》课程设计说明书学生姓名代燕清学号5042209016所属学院信息工程学院专业计算机网络班级计算机网络专12指导教师李旭教师职称讲师塔里木大学教务处制我做的“剪刀,石头,布”游戏是一个很简单的Java小游戏,这个游戏是进行人机对战的,玩这个游戏时你只需要在对话框中输入自己想的答案就好了,例如你输入的是“石头”然后确认,这是电脑就会随即给出“剪刀,石头,布”中的一个,然后电脑会根据游戏规则判断对错问题。

用户只需要,输入心中想的答案即可。

关键词:Java;猜数字摘要 (1)目录 (2)前言 (2)项目概况 (3)2.1项目所用的时间 (3)2.2项目负责人 (4)2.3项目指导人 (4)正文 (4)3.1设计分析 (4)3.2程序结构(流程图) (4)3.3操作方法 (4)3.4试验结果(包括输入数据和输出结果) (5)总结 (6)致谢 (7)参考文献 (8)附录 (9)前言Java是在网络时代诞生的,因此必须适应网络发展的特殊需要.Java的发展和壮大并且逐渐成为网络变成的主流语言,则充分说明了java适应了网络发展的特殊需要,学习好该门课程是成为一个好的java程序员的前提条件,通过此次课程设计使学生达到提高动手能力的目的.Java语言作为当今 INTERNET上最流行的编程语言,它的产生和WWW密切相关,所以课程中还将对WWW技术进行必要的介绍.同时,对于信息安全专业的学生,掌握Java中的安全包的API和Sandbox也是极其重要的.通过本课程的学习,使学生掌握网络编程的基本方法,能够根据现实生活实践编制出一些实用的客户机/服务器小程序.为进一步学习维护网站信息安全的建设打下基础.为了加深对JAVA语言的掌握及对面向对象程序设计基本思想的理解,提高对面向对象技术的具体应用,进行本次课程设计.此次我做的课程设计项目是要设计一个猜数字游戏。

这个题目都是比较基础的内容,是作为一个学习网络应当具备的能力。

Java简化实现石头剪刀布游戏

Java简化实现石头剪刀布游戏

Java简化实现⽯头剪⼑布游戏之前写过⼀次关于剪⼑⽯头布的游戏,代码量过⼤,后期维护困难,逻辑关系复杂(详情见:)所以,这次写了⼀个接⼝和⽅法调⽤版本的,⽅便于后期的维护和拓展。

⾸先,写程序之前要先明⽩游戏的需求:1.电脑和⼈各⽣成“⽯头、剪⼑、布”中任意⼀个结果。

2.⽐较电脑和⼈各⾃的“值”,并输出结果(值代表:⽯头、剪⼑、布)。

开始写代码:【需求1】/*新建Computer接⼝和Person接⼝,并且在其中⽣成⾃⼰的随机数(随机数的值为:0~2):*/public interface Computer {int computerIntResult = new Random().nextInt(3);}public interface Person {int personIntResult = new Random().nextInt(3);}/*1.因为电脑和⼈⽣成的是数字,⽽我们最后输出的是“⽯头剪⼑布”的汉字,所以我们需要有int和String的虚拟转化⽅法,即change类。

2.在change类中创建changeShow⽅法,的值⽤来区分电脑和⼈的不同结果4.changeNumber的值⽤来接收⼈和电脑的随机数。

5.新建⼀个stringRandomNumber的变量,⽤于输出虚拟转化后的结果,=null是为了以后要是写循环就可以清除上⼀次的值。

6.在switch中的表达式我们⽤changeNumber,当传过来的值(电脑或者⼈的随机数)为0的时候,stringRandomNumber的值为:剪⼑(1和2就不解释了)。

7.最后输出:Person/Computer出的是:剪⼑/⽯头/布*/public class Change {public void changeShow(String name,int changeNumber){String stringRandomNumber = null;switch (changeNumber){case 0:stringRandomNumber="剪⼑";break;case 1:stringRandomNumber="布";break;case 2:stringRandomNumber="⽯头";break;default:break;}System.out.println(name+"出的是:"+stringRandomNumber);}}【需求2】/*1.写⼀个类Compare实现Computer和Person的接⼝,这个类是⽤来⽐较⼈和电脑各⾃值的结果。

石头-剪刀-布游戏

石头-剪刀-布游戏

石头-剪刀-布游戏
一设计要求
在游戏中,孩子们用手表示石头、剪刀或布中的一个,由拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所作选择是一样的,则表示平局,否则就按如下规则决定胜负。

(1)石头砸坏剪刀。

(2)剪刀剪碎布
(3)布覆盖石头
编程实现计算机与人进行游戏。

二参考界面
三设计思路与算法
1.让计算机随机产生0-2任意数,
其中0代表计算机出剪子,1代表出石头,2代表出布
参考代码提示:
int main1(int n1)
{
srand((unsigned)time(0));
n1=rand()%3;
return n1;
}
2.人机游戏在主函数中实现
思路提示:可使用while语句和switch…case语句实现菜单功能的循环选择。

参考代码提示:
void main()
{
cin>>cho; //用户输入1-3任意数
good=main1(temp);
switch (good)
{
case 0:
cout<<"对方出了剪子\n";
….
case 1:
cout<<"对方出了石头\n";
….
case 2:
cout<<"对方出了布\n";
….
}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1剪刀石头布游戏设计思路阐述12程序概要设计22.1功能需求分析22.2性能需求分析22.3程序框图22.4 JA V A类及自定义类相互继承的层次关系32.4.1 Java类及自定义类的说明32.4.2类中成员及作用3String data。

//接收数据4Socket client = null。

//定义套接字4BufferedReader inputs = null。

// 读取数据4BufferedReader key = null。

// 缓冲数据4PrintStream outputs = null。

//输出数据42.5 程序运行效果及存在的问题42.5.1运行效果图42.5.2存在的问题43程序详细设计43.1类获包的加载4import java.io.*。

4import .*。

53.2自定义类创建服务器端53.3创建数据处理类54测试运行65源代码清单76总结9基于JAVA的剪刀石头布游戏设计1剪刀石头布游戏设计思路阐述在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现:⑴构造创建服务器端和客户端⑵创建输入输出流⑶编写服务器端处理数据的线程方法⑷绘制游戏界面⑸绘制界面上的提示采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现,程序也更易于读懂。

如java中得到输入输出流的方法://调用客户端的getInputStream()方法Inputs=newBufferedReader(newInputStreamReader(client.getInputStream()))。

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

2程序概要设计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作用:客户端类类中的成员: getInputStream()。

getOutputStream()。

InputStreamReader ()。

readLine()。

实现的接口:无自定义类中子类和其父类的继承关系如图2如所示:图2 子类及其父类继承关系图2.4.2类中成员及作用Service类成员:String data。

//接收数据BufferedReader 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 .*。

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

程序代码如下:public class SocketServer extends Thread {ServerSocket server。

public SocketServer() {try {server = new ServerSocket(6000)。

}catch(IOException e) {System.exit(0)。

}this.start()。

}public void run() {try {while(true) {Socket client = server.accept()。

Service ss = new Service(client)。

}}catch(IOException e) {System.exit(1)。

}}public static void main(String[] args) {new SocketServer()。

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

实现代码如下://创建数据储存变量inputs = new BufferedReader(new InputStreamReader(client.getInputStream()))。

outputs = new PrintStream(client.getOutputStream())。

//创建一个Run方法public void run() {}3.4创建客户端类创建一个用于客户端接收玩家输入的数据的类,程序实现代码如下://接收客户端的数据public class Client {public static void main(String[] args) {String data。

Socket client = null。

BufferedReader inputs = null。

BufferedReader key = null。

PrintStream outputs = null。

try {client = new Socket("localhost",6000)。

inputs = new BufferedReader(new InputStreamReader(client.getInputStream()))。

outputs = new PrintStream(client.getOutputStream())。

key = new BufferedReader(new InputStreamReader(System.in))。

}catch(IOException e) {System.out.println("CAN NOT CONN WITH SERVER")。

}try {while(true) {System.out.println("----------------------------")。

System.out.print("请出拳:石头/剪刀/布 ")。

data = key.readLine()。

outputs.println(data)。

System.out.println("ECHO: " + inputs.readLine())。

}}catch(IOException e) {System.out.println("ERROR IO")。

}try {client.close()。

}catch(IOException e) {System.out.println("can not close it")。

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

5源代码清单import java.io.*。

import .*。

public class SocketServer extends Thread { ServerSocket server。

public SocketServer() {try {server = new ServerSocket(6000)。

}catch(IOException e) {System.exit(0)。

}this.start()。

}public void run() {try {while(true) {Socket client = server.accept()。

Service ss = new Service(client)。

}}catch(IOException e) {System.exit(1)。

}}public static void main(String[] args) { new SocketServer()。

}}public class Service extends Thread {String data。

BufferedReader inputs。

PrintStream outputs。

Socket client。

public Service(Socket socket) {client = socket。

try {inputs = new BufferedReader(new InputStreamReader(client.getInputStream()))。

outputs = new PrintStream(client.getOutputStream())。

}catch (IOException e) {e.printStackTrace()。

}this.start()。

}public void run() {try {while (true) {data = inputs.readLine()。

相关文档
最新文档