基于JAVA的剪刀石头布游戏设计——Java课程设计报告_
Java 石头剪子布游戏
package meng;import java.awt.Color;import java.awt.Font;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;public class abc extends JFrame implements ActionListener {JPanel panel; //panel面板JButton toneButton; //石头按钮JButton jianButton; //剪刀按钮JButton buButton; //布按钮JButton clearButton; //清除按钮JLabel label; //显示分数标签JTextArea textArea; //显示结果文本区int win=0; //赢了int fail=0; //输了int ping=0; //平了int grade=0; //分数计数int i=1; //1表示剪刀,2标示石头,3表示布String[] set=new String[]{null,"剪刀","石头","布"}; //存放剪刀石头布String result=" "; //显示分数的字符串public abc() //构造函数{//实例化各个控件和设置各个控件的在面板里的位置panel=new JPanel();panel.setLayout(null);panel.setBackground(Color.yellow);textArea=new JTextArea();textArea.setBounds(new Rectangle(0,50,400,100));textArea.setEditable(false);textArea.setBackground(Color.yellow);textArea.setFont(new Font("宋体",Font.BOLD,30));toneButton=new JButton("石头");toneButton.setBounds(new Rectangle(0,0,100,50)); jianButton=new JButton("剪刀");jianButton.setBounds(new Rectangle(100,0,100,50)); buButton=new JButton("布");buButton.setBounds(new Rectangle(200,0,100,50)); clearButton=new JButton("清空");clearButton.setBounds(new Rectangle(300,0,100,50));buButton.setBackground(Color.green); jianButton.setBackground(Color.green); toneButton.setBackground(Color.green); clearButton.setBackground(Color.green);label=new JLabel(result);label.setBounds(new Rectangle(0,150,300,60));//实现按钮监听toneButton.addActionListener(this);jianButton.addActionListener(this);buButton.addActionListener(this);clearButton.addActionListener(this);//向panel面板添加各个控件panel.add(textArea);panel.add(toneButton);panel.add(jianButton);panel.add(buButton);panel.add(clearButton);panel.add(label);//将面板panel添加到JFrame里add(panel);setBounds(490,280,400,250);setVisible(true);setTitle("张三");setDefaultCloseOperation(3);}public static void main(String[] args) //主方法{abc p=new abc();}public void actionPerformed(ActionEvent e) //实现按钮的单击事件{if(e.getSource()==toneButton) //单击石头按钮{i=2;computeResult();}if(e.getSource()==jianButton){i=1;computeResult();}if(e.getSource()==buButton){i=3;computeResult();}if(e.getSource()==clearButton){win=0;fail=0;ping=0;grade=0;textArea.setText("");label.setText("");// setResult();}}public void computeResult() //计算你出拳和电脑出拳的结果{int j=(int)(Math.random()*3+1); //电脑随机产生数字1,2,3 String comStr=null; //保存计算机出的拳String playStr=null; //保存玩家出的拳for(int a=1;a<set.length;a++){if(a==j){comStr=set[a];}if(a==i){playStr=set[a];}}if(i-j==-2||i-j==1) //玩家赢得时候{win++;grade++;textArea.setText("你出:"+playStr+"\n电脑出:"+comStr+"\n结果:你赢了");setResult();}else if(i-j==0) //电脑和玩家打平的时候{ping++;textArea.setText("你出:"+playStr+"\n电脑出:"+comStr+"\n结果:平局");setResult();}else //电脑获胜或你输了的时候{fail++;textArea.setText("你出:"+playStr+"\n电脑出:"+comStr+"\n结果:你输了");setResult();}}public void setResult() //用与更新分数标签的结果{result=" 分数: 赢: "+ win + " 平: "+ ping + " 输: "+ fail + " 得分: "+grade;label.setText(result);}}。
JAVA课程设计报告(小游戏)1
JAVA课程设计报告(小游戏)第一章总体设计1.1本系统的主要功能记忆测试游戏1.2系统包含的类及类之间的关系本系统共包括7个java源文件。
如图1-1所示。
图1-1 类之间的关系2.2 java源文件及其功能1.MemoryGame.java该文件负责创建记忆测试系统的主窗口,该类含有main方法,记忆测试系统从该类开始运行;2.MemoryTestArea.java该文件所包含的MemoryTestArea类是主类MemoryGame窗口的一个JPanel容器,所创建的对象成为测试区,这个测试区被添加到MemoryGame窗口的中心;3.Block.java该文件所包含的Block类是JButton的子类,负责为MemoryTestArea 类中的ArrayList数组表提供Block对象;4.Record.java该文件所包含的Record类是javax.swing包中JDialog对话框的子类,当用户成功单击出相应级别所要求的图标相同的方块后,Record创建的对象负责保存用户的名字和成绩到相应的级别文件中;5.ShowRecordDialog.java该文件所包含的ShowRecordDialog类是javax.swing包中JDialog 对话框的子类,当用户单击查看排行榜时,ShowRecordDialog创建的对象负责显示用户的成绩;6.People.java该文件所包含的People对象封装用户的名字和成绩,以便ShowRecordDialog 对象可以按成绩的高低排列用户。
第二章详细设计2.1主类MemoryGame.java(1)成员变量见表2-1表2-1 主要成员变量(属性)成员变量描述变量类型名称菜单条JMenuBar bar 字符串数组Sring imagename 测试区对象MemoryArea memoryarea 菜单JMenu menuGrade(2)方法见表2-2表2-2 主要方法成员变量描述功能备注MemoryGame() 完成窗口初始化构造函数actionPerformed(实现接口中的方法ActionEvent)Main(String[]) 软件运行的入口(3)源代码见文件×××.java2.2类×××××(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称测试区的行列数int Row,col用户的用时int usedtime 提供存储成绩的界面Record record(2)方法见表2-4表2-4 主要方法方法名功能备注MemoryTestArea() 创建memoryGame对象构造函数run() 显示图标1200毫秒2.3类Block(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称openStateIcon是方块上的图标ImageIcon openStateIcon (2)方法见表2-4表2-4 主要方法方法名功能备注setOpenStateIcon( ImageIcon)Block 对象调用setOpenStateIcon(ImageIcon)方法可也设置它上面的图标getOpenStateIcon()Block 对象调用getOpenStateIcon()方法可以获得它上面的图标2.4类ShowRecordDialog(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称gradeFile是对话框要读取的文件,该文件存储读取的成绩File gradeFile Clear是注册ActionEvent JButton clear事件的按钮showArea文本区显示对话从gradeFile文本中读出的成绩JTextArea showArea(2)方法见表2-4表2-4 主要方法方法名功能备注ShowRecorDialog()ShowRecorDialog()是构造方法,负责创建shoeDialog对象setGradeFile(File)ShowRecorDialog类创建的ShowRecorDialog对话框是主类MemoryGame窗口中的一个成员2.5 People类(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称用户的名字String name用户的用时int time(2)方法见表2-4表2-4 主要方法方法名功能备注getTime()返回timegetName()返回namecompareTo(Object)确定People对象的大小关系2.6 Record类(1)成员变量见表2-3表2-3 主要成员变量成员变量描述变量类型名称用户的用时int time 用来输入名字的文本框JTextField yourName保存成绩的按钮对象JButton enter 放弃保存成绩的按钮对象JButton cancel 级别文件File gradeFile(2)方法见表2-4表2-4 主要方法方法名功能备注Record()负责创建record对象的构造方法setGradeFile (File)Record类创建的Record对话框是测试区MemoryTextArea 中的一个成员。
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);
剪刀石头布课程设计
剪刀石头布 课程设计一、课程目标知识目标:1. 学生能理解“剪刀石头布”游戏中所涉及的简单概率计算原理,掌握基本的概率概念。
2. 学生能够运用图表和计算方法,分析并预测“剪刀石头布”游戏的结果。
3. 学生能结合日常生活实例,理解数学在生活中的应用,认识到数学与生活密切相关。
技能目标:1. 培养学生运用数学知识解决实际问题的能力,通过“剪刀石头布”游戏,提高学生的观察、分析、计算和逻辑推理能力。
2. 培养学生进行小组合作、讨论交流的能力,提高学生的表达和沟通技巧。
情感态度价值观目标:1. 学生在轻松愉快的游戏氛围中,体验数学学习的乐趣,激发学习数学的兴趣。
2. 培养学生面对问题勇于尝试、积极思考的态度,增强学生的自信心和自主学习能力。
3. 学生通过合作交流,培养团队精神,学会尊重他人,提高人际交往能力。
课程性质:本课程以趣味游戏为载体,结合数学知识,注重培养学生的实践操作能力和团队合作精神。
学生特点:针对小学四年级学生,好奇心强,活泼好动,喜欢游戏,但注意力集中时间较短。
教学要求:教师需结合学生特点,采用生动有趣的教学方法,引导学生积极参与,注重培养学生的动手操作能力和实际应用能力。
在教学过程中,关注学生的学习反馈,及时调整教学策略,确保学生达到预设的课程目标。
通过本课程的学习,使学生能够将所学知识内化为具体的学习成果,为后续的数学学习奠定基础。
二、教学内容本课程以小学四年级数学教材中“可能性”单元为依据,结合“剪刀石头布”游戏,组织以下教学内容:1. 游戏导入:介绍“剪刀石头布”游戏,引导学生发现游戏中存在的可能性问题。
2. 概率基础:讲解概率的基本概念,如必然事件、不可能事件、随机事件等。
3. 游戏分析与计算:a. 分析“剪刀石头布”游戏中各事件的可能性,如胜利、平局、失败等。
b. 引导学生运用图表和计算方法,预测游戏结果。
4. 实践操作:组织学生进行小组合作,进行“剪刀石头布”游戏实践,记录结果并进行分析。
制作编程游戏《石头剪刀布》
龙源期刊网 制作编程游戏《石头剪刀布》作者:来源:《电脑报》2018年第24期这是编程游戏《石头剪刀布》的效果图,当你用鼠标点击屏幕左上方的石头、剪刀或者布任意一个图案,它下方左侧便会出现对应的大图案,同时,屏幕右侧也会随机出现石头剪刀布任意一个图案,并且判断出和玩家的输赢关系:即石头赢剪刀、剪刀赢布、布赢石头。
这是玩家的具体程序。
当用鼠标点击屏幕左上方的石头、剪刀或布时,它们分别做一个广播,当接收到这个广播时,玩家经过6次造型变化,最后会出现对应的石头、剪刀或布的造型。
这是计算机的具体程序,它接到广播后,会随机出现一个石头、剪刀或布的造型,然后再根据玩家的造型作出输、赢或平局的判断。
这个程序很简单,大家可以尝试做个类似的编程游戏,比如棒子打老虎、虎吃鸡、鸡吃虫、虫吃棒子等等。
数橙在线编程S1全五章上线Scratch融合卡通、动画、音效等多媒体的运用和直观拖曳式的编程方式,生动有趣,可以编写各种类型程序,游戏、动画、互动美术、实物模拟、数学模拟等,想象无限。
经过系统学习,编程班的孩子的逻辑思维能力将远远超过一般的同年龄孩子,是小学、初中老师展开编程教学的重要课程。
S1全五章定位入门初级少儿编程,S1-S4能帮助孩子建立起基础体系化的编程思维,再进行階梯晋级。
1.登录电脑报官方数橙网站:http:///lesson;2.在录播课选择S1(全五章),打包价490元(原价1280元);3. 微信扫码付款后可在线学习,超大内容量逐步掌握编程知识。
学习说明:如果是初级入门的用户,可以选择单个章节购买(价格98元起),然后根据进阶程度购买全章节50课时。
教辅QQ群:524690838。
基于JAVA的剪刀石头布游戏设计Java课程设计报告
基于J A V A的剪刀石头布游戏设计J a v a课程设计报告IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】目录9基于JAVA的剪刀石头布游戏设计摘要:本课程设计使用Java语言,运用包和包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,运行客户端线程,提示玩家出拳,然后,程序把玩家输入的数据传入到服务器端,通过服务器端线程的函数得出结果,然后再把结果传输到界面上。
关键字:方法;网络编程;多线程;输入输出流前言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java 的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web 的迅速发展,常用的浏览器现在均支持Java applet【1】。
在面向对象程序设计中,通过继承可以简化类的定义。
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承【2】。
新类继承了原始类的特性,新类称为原始类的派生类,而原始类称为新类的超类。
派生类可以从它的基类那里继承方法和变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”【3】。
多线程处理一个常见的例子就是用户界面。
利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
石头剪刀布游戏课程设计
课程设计说明书课程名称:高级语言程序设计设计题目:石头剪刀布游戏院部:计算机科学与信息工程学院学生姓名:学号:专业班级:指导教师:2014年6月课程设计任务书目录一前言 (1)二需求分析 (1)三概要设计 (1)四详细设计 (4)五改进或增加功能模块说明 (5)六程序测试 (6)七课程设计总结 (7)八致谢 (7)九参考文献 (8)十源程序 (8)石头剪刀布游戏一前言传统的石头剪刀布游戏只是人和人之间进行的,双方只能一次出剪刀石头布三者之一,游戏的规则是石头>剪刀>布。
现在是人和计算机出拳玩石头剪刀布游戏,规则相同,只不过需要对石头剪刀布进行字母代替,在程序中实现。
最后比较输赢,统计成绩。
二需求分析1 要求(1)用C语言实现程序设计。
(2)定义各个函数分别完成不同功能,如设计,判断等。
(3)画出查询模块的流程图。
(4)界面友好(良好的人机互交),程序要有注释。
2 任务(1)定义各类头文件,变量及宏定义。
(2)设定玩家操作模块和胜负判断模块。
(3)画出部分模块的流程图。
(4)编写代码。
(5)程序分析与调试。
3 运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境4 开发工具系统描述语言C语言。
三概要设计1 模块组成图含有三个模块,人和电脑的输入,输入的比较计算,输出结果和评价。
图3-1 功能模块图2 电脑随机输入流程图现随机输入剪刀石头布,调用随机函数。
图3-2 功能模块图3 用户输入流程图对用户输入的数据进行判断是否是剪刀石头布或者是结果输出,判断用户的输入是否合法。
图3-3 功能模块图4 计算比较流程图对与用户和电脑输入的数据进行比较,判断用户的成绩,然后退出界面。
图3-4 功能模块图四详细设计在程序的开头部分定义要用到的头文件,以及各种常量如石头剪刀布输出结果等,设定各常量的类型,代码如下。
#include<stdio.h>#include<time.h>#include<stdlib.h>void main(){char ad; //用来存放用户的选择char com; //用来存放电脑的选择int sj,q;float p,y,s,z,f;p=0;y=0;s=0;printf("出锤子输入c\n出剪刀输入j\n出布输入b\n计算您的得分输入f\n可以一次输入许多会一次性出很多结果\n请输入您的选择:\n");输入数据,即为选手每一次下出拳,用三个字母cjb分别表示石头剪刀布,通过游戏规则,判断用户和电脑的输赢。
石头、剪子、布——将游戏引入程序设计
2014-02百花园地初二信息技术教学中,我市采用的是江苏省初中信息技术(选修)课本,主要是进行VB程序设计的教学,让学生通过学习能够掌握VB这门编程语言,学会编写简单的程序,培养一定的编程思想,由于课程时间安排紧凑,在教学中就更要把握好每一节课的时间,充分提高课堂的效率。
在初中信息技术(选修)课本2.2.2中,要通过一个课时的时间,让学生了解、掌握条件语句,这在整个教学过程中都是一个重、难点。
条件语句是VB程序设计中的基本语句之一,其反映的是程序三大基本结构(顺序结构、循环结构和选择结构)中的选择结构,主要用于在程序执行过程中设置给定的条件,并根据给定的条件进行判断,再根据判断的结果来控制程序的流程。
在条件语句设置给定条件时,通常将条件表达式分为关系表达式和逻辑表达式,前者以<、<=、>、>=、=、<>等符号表示条件对象之间的关系,后者以and、or、not来表示条件与条件之间的逻辑关系。
作为一名初二的学生,在数学课堂上已经学习过部分逻辑关系,但由于本身逻辑思维能力的欠缺,以及对程序设计的兴趣不足,结合程序设计语句教学,结果大部分学生在条件设置、程序判断上还存在很多问题。
江苏省初中信息技术课本(选修)第八章第3节中,要求讲授条件语句中的IF语句,该节课程要求让学生在掌握顺序结构的基础上,学习了解选择结构,课本上的概念较多,实践较少,为了让学生更好地掌握IF语句,对程序选择结构能有一个更具体的了解,我将课外游戏的内容引入课堂,尝试调动学生的学习兴趣,提高课堂的效率。
在我以前的条件语句课程设计时,一般先进行情境的创设,如,以“明天爸爸妈妈带一家人前往尚湖公园,只要不下雨(条件)”为例,用“不下雨”这个条件进行判断,明天爸爸妈妈是不是带一家人去公园玩,让学生了解,这个就是条件、这个就是判断,再以“在尚湖公园入口要买票,学生半票,成人全票,老人免票(条件)”为例,重申条件和判断,并提出条件并不一定是2选1,还可以多选1。
基于JAVA的剪刀石头布游戏设计——Java课程设计报告_
目录前言 (2)1剪刀石头布游戏设计思路阐述 (3)2程序概要设计 (3)2.1功能需求分析 (3)2.2性能需求分析 (3)2.3程序框图 (3)2.4 Java类及自定义类相互继承的层次关系 (4)2.4.1 Java类及自定义类的说明 (4)2.4.2类中成员及作用 (5)2.5 程序运行效果及存在的问题 (5)2.5.1运行效果图 (5)2.5.2存在的问题 (6)3程序详细设计 (6)3.1 包的加载 (6)3.2自定义类创建服务器端和客户端 (6)3.3创建程序线程 (7)4测试运行 (9)5源代码清单 (10)6总结 (13)7致谢 (13)参考文献 (13)基于JAVA的剪刀石头布游戏设计摘要:本课程设计使用Java语言,运用 java.io包和包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,运行客户端线程,提示玩家出拳,然后,程序把玩家输入的数据传入到服务器端,通过服务器端线程的函数得出结果,然后再把结果传输到界面上。
关键字:方法;网络编程;多线程;输入输出流前言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet【1】。
在面向对象程序设计中,通过继承可以简化类的定义。
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承【2】。
新类继承了原始类的特性,新类称为原始类的派生类,而原始类称为新类的超类。
派生类可以从它的基类那里继承方法和变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
JAVA实现“剪刀石头布”小游戏
JAVA实现“剪刀石头布”小游戏JAVA实现“剪刀石头布”小游戏import java.util.Random;import javax.swing.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.*;public class SmallGame extends JFrame {private Random r;private String[] box = { "剪刀", "石头", "布" };private JComboBox choice;private JTextArea ta;private JLabel lb;private int win = 0;private int loss = 0;private int equal = 0;public SmallGame() {initial();//调用initial方法,就是下面定义的那个.该方法主要是初始界面.pack();setTitle("游戏主界面");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocation(400, 300);setVisible(true);}public static void main(String[] args) {new SmallGame();}public void initial() {r = new Random(); // 生成随机数choice = new JComboBox();//初始化choice这个下拉框.也就是你选择出剪子还是石头什么的那个下拉框..for (int i = 0; i < box.length; i++) {//为那个下拉框赋值.用前面定义的private String[] box = { "剪刀", "石头", "布" };附值.这样下拉框就有三个选项了..choice.addItem(box[i]);}ta = new JTextArea(3, 15);//初始化那个文本域3行15列ta.setEditable(false);//让用户不能编辑那个文本域即不能在里面写东西JButton okBut = new JButton("出招");//新建一个出招的按钮okBut.addActionListener(new ActionListener() {//给出招按钮加个监听.意思就是监听着这个按钮看用户有没有点击它..如果点击就执行下面这个方法public void actionPerformed(ActionEvent e) {//就是这个方法ta.setText(getResult());//给那个文本域赋值..就是显示结果赋值的是通过getResult()这个方法得到的返回值getResult()这个方法下面会讲lb.setText(getT otal());//给分数那个LABEL赋值..就是显示分数..赋值的是通过getT otal()这个方法得到的返回值}});JButton clearBut = new JButton("清除分数");//新建一个清楚分数的按钮clearBut.addActionListener(new ActionListener() {//同上给他加个监听public void actionPerformed(ActionEvent e) {//如果用户点击了就执行这个方法ta.setText("");//给文本域赋值为""..其实就是清楚他的内容win = 0;//win赋值为0loss = 0;//同上equal = 0;//同上lb.setText(getT otal());//给显示分数那个赋值..因为前面已经都赋值为0了..所以这句就是让显示分数那都为0}});lb = new JLabel(getTotal());//初始化那个显示分数的东西JPanel choicePanel = new JPanel();//定义一个面板..面板就相当于一个画图用的东西..可以在上面加按钮啊文本域什么的..choicePanel.add(choice);//把下拉框加到面板里choicePanel.add(okBut);//把出招按钮加到面板里choicePanel.add(clearBut);//把清楚分数按钮加到面板里JScrollPane resultPanel = new JScrollPane(ta);//把文本域加到一个可滚动的面板里面..JScrollPane就是可滚动的面板..这样如果那个文本域内容太多就会出现滚动条..而不是变大JPanel totalPanel = new JPanel();//再定义个面板..用来显示分数的..totalPanel.add(lb);//把那个显示分数的label加到里面去Container contentPane = getContentPane();//下面就是布局了..contentPane.setLayout(new BorderLayout());contentPane.add(choicePanel, BorderLayout.NORTH);contentPane.add(resultPanel, BorderLayout.CENTER);contentPane.add(totalPanel, BorderLayout.SOUTH);}public String getResult() {//获得结果的方法返回值是一个String..这个返回值会用来显示在文本域里面String tmp = "";int boxPeop = choice.getSelectedIndex();//获得你选择的那个的索引..从0开始的..int boxComp = getBoxComp();//获得电脑出的索引..就是随机的0-2的数tmp += "你出:\t" + box[boxPeop];//下面你应该明白了..tmp += "\n电脑出:\t" + box[boxComp];tmp += "\n结果:\t" + check(boxPeop, boxComp);return tmp;}public int getBoxComp() {//就是产生一个0-2的随机数..return r.nextInt(3);//Random的nextInt(int i)方法就是产生一个[0-i)的随机整数所以nextInt(3)就是[0-2]的随机数}public String check(int boxPeop, int boxComp) {//这个就是判断你选择的和电脑选择的比较结果..是输是赢还是平..boxPeop就是你选择的..boxComp就是电脑选择的..String result = "";if (boxPeop == (boxComp + 1) % 3) {//(boxComp + 1) % 3 电脑选择的加上1加除以3取余..也就是如果电脑选0这个就为1..这个判断的意思就是如果电脑选0并且你选1..那么就是电脑选了//private String[] box = { "剪刀", "石头", "布" };这里面下标为0的..你选了下标为1的..就是电脑选剪刀你选石头..所以你赢了..如果电脑选1..(boxComp + 1) % 3就为2..意思就是//电脑选了石头你选了布..所以你赢了..另外一种情况你明白了撒..只有三种情况你赢..所以这里都包含了..也只包含了那三种..result = "你赢了!";win++;//赢了就让记你赢的次数的那个变量加1} else if (boxPeop == boxComp) {//相等当然平手了result = "平";equal++;//同上了} else {//除了赢和平当然就是输了..result = "你输了!";loss++;//同上}return result;}public int getPoint() {return (win - loss) * 10;}public String getT otal() {return "赢:" + win + " 平:" + equal + " 输:" + loss + " 得分:"+ getPoint();}}更多JA V A小游戏。
石头-剪刀-布游戏课程设计报告
华东交通大学课程设计报告书所属课程名称C++语言及程序设计题目石头-剪刀-布游戏院(系)基础科学学院班级09应用化学(一)班学号20090810030118 学生姓名游斌指导教师杜玲玲辅导教师杜玲玲2010年7 月3 日课程设计(论文)任务书基础学院应用化学专业09-1班一、课程设计(论文)题目:石头-剪刀-布游戏二、课程设计(论文)工作自2010 年 6 月28日起至 2010 年7月 2 日止三、课程设计(论文) 地点:四、课程设计(论文)内容要求:1. 本课程设计的目的(1)进一步巩固和加深对“C++程序设计”课程基本知识的理解和掌握,了解C ++语言在项目开发中的应用。
(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。
(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发能力,同时提倡团队合作精神。
2. 课程设计的任务及要求1) 基本要求:(1)对系统功能进行需求分析;(2)使用Visual C++编译器进行程序编译;(3)提出系统的设计方案;(4)编写源程序代码并进行调试。
2) 创新要求在基本要求达到后,可进行创新设计。
3) 课程设计报告撰写及装订要求课程设计报告的撰写要求表述简明,图表准确。
报告按如下内容和顺序用A4纸进行打印并装订成册。
(1)封面采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。
(2)设计任务书(3)评阅书(4)目录(5)正文(6)主要参考文献4) 课程设计评分标准:每人按指定题目进行设计,严禁抄袭,除了出圈游戏,职工信息管理和有理数计算三道选题允许3人/组,其他各选题2人/组。
要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。
(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;(2)能正确回答设计的中老师所提问题,可增加10分;(3)课程设计报告书写规范整齐,可增加10分;(4)心得体会认真总结,可增加10分;(5)程序有创新性,可增加10分;成绩评定实行优秀、良好、中等、及格和不及格五个等级。
JAVA 编程剪刀石头布
switch(a){
case 0:
System.out.println("你出的是石头");
break;
case 1:
System.out.println("你出的是布");
break;
default:
System.out.println("你出的是剪刀");
}
import java.util.*;
class Game1{
public static void main(String[] args){
System.out.println("欢迎来到剪刀石头布游戏");
People p=new People();
Computer c=new Computer();
int c=a-b;
if(c==0){
System.out.println("打平了");
}else if(c==-2||c==1){
System.out.println("恭喜你,你赢了");
}else{
System.out.println("再接再厉");
}
Scanner sc=new Scanner(System.in);
return a;
}
}
class Computer{
public int chuQuan(){
int a=new Random().nextInt(3);
return a;
}
}
class Referee{
public void games(People p1,Computer c1){
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的接⼝,这个类是⽤来⽐较⼈和电脑各⾃值的结果。
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课程设计-剪刀、石头、布游戏 - 代燕清
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⼩程序供初学者参考package youxi;public class Player {private String name;private double score;public Player(String name, double score) {super(); = name;this.score = score;}public String getName() {return name;}public void setName(String name) { = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}private String setScore() {// TODO Auto-generated method stubreturn this.setScore() ;}private String setName() {// TODO Auto-generated method stubreturn this.setName();}}package youxi;import java.util.Scanner;public class Game {private Player player;public Game (Player player){this.player=player;}public void start(){while(true){System.out.println("开始游戏");Scanner sc=new Scanner(System.in);System.out.println("请输⼊剪⼑⽯头布or退出");String s1=sc.next();if( s1.equals("退出")){break;}String[] arr=new String[]{"剪⼑","⽯头","布"};int count=(int)(Math.random()*4);String s2=arr[count];int flag=rule(s1,s2);if(flag>0){System.out.println("机器⼈"+arr[count]+"~~~~~"+player.getName()+"赢了,加⼗分");player.setScore(player.getScore()+10);}if(flag<0){System.out.println("机器⼈"+arr[count]+"~~~~~"+player.getName()+"输了,减⼗分"); player.setScore(player.getScore()-10);}else if(flag==0){System.out.println("机器⼈"+arr[count]+"~~~~~"+"平⼿");}System.out.println( player.getName()+":"+player.getScore());}}/*** 游戏规则* @return*/public int rule(String s1,String s2){if(s1.equals(s2)){return 0;}if(s1.equals("剪⼑")){if(s2.equals("⽯头")){return -1;}if(s2.equals("布")){return 1;}}if(s1.equals("⽯头")){if(s2.equals("布")){return -1;}if(s2.equals("剪⼑")){return 1;}}if(s1.equals("布")){if(s2.equals("剪⼑")){return -1;}if(s2.equals("⽯头")){return 1;}}return 0;}}package youxi;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubPlayer p=new Player("志伟",100);Game g=new Game(p);g.start();}}。
JAVA游戏开发课程设计报告
《JAVA游戏开发》课程设计报告题目多线程端口扫描器姓名: 申伶俐学号:专业: 软件技术班级: 软件081计算机科学与技术系2009年6月目录1 设计任务与要求 ............................................................ 错误!未定义书签。
2 系统功能描述 ................................................................ 错误!未定义书签。
2.1功能概述................................................................ 错误!未定义书签。
2.2本系统要实现的功能............................................ 错误!未定义书签。
3 系统总体设计 ................................................................ 错误!未定义书签。
3.1总体分析................................................................ 错误!未定义书签。
3.2界面设置构思图.................................................... 错误!未定义书签。
3.3界面使用设置构思................................................ 错误!未定义书签。
3.4后台设计构思........................................................ 错误!未定义书签。
4 系统详细设计 ................................................................ 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录前言 (2)1剪刀石头布游戏设计思路阐述 (3)2程序概要设计 (3)2.1功能需求分析 (3)2.2性能需求分析 (3)2.3程序框图 (3)2.4 Java类及自定义类相互继承的层次关系 (4)2.4.1 Java类及自定义类的说明 (4)2.4.2类中成员及作用 (5)2.5 程序运行效果及存在的问题 (5)2.5.1运行效果图 (5)2.5.2存在的问题 (6)3程序详细设计 (6)3.1 包的加载 (6)3.2自定义类创建服务器端和客户端 (6)3.3创建程序线程 (7)4测试运行 (9)5源代码清单 (10)6总结 (13)7致谢 (13)参考文献 (13)基于JAVA的剪刀石头布游戏设计摘要:本课程设计使用Java语言,运用 java.io包和包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,运行客户端线程,提示玩家出拳,然后,程序把玩家输入的数据传入到服务器端,通过服务器端线程的函数得出结果,然后再把结果传输到界面上。
关键字:方法;网络编程;多线程;输入输出流前言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet【1】。
在面向对象程序设计中,通过继承可以简化类的定义。
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承【2】。
新类继承了原始类的特性,新类称为原始类的派生类,而原始类称为新类的超类。
派生类可以从它的基类那里继承方法和变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”【3】。
多线程处理一个常见的例子就是用户界面。
利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制【4】。
通过一个学期的学习,对Java有了一定的了解,为了巩固所学知识,编写一个剪刀石头布游戏。
1剪刀石头布游戏设计思路阐述在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现:⑴构造创建服务器端和客户端⑵创建输入输出流⑶编写服务器端处理数据的线程方法⑷绘制游戏界面⑸绘制界面上的提示采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现,程序也更易于读懂。
如java中得到输入输出流的方法://调用客户端的getInputStream()方法Inputs=newBufferedReader(new InputStreamReader(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 程序测试图经检测程序运行正常。