• 石头剪刀布

1.问题描述

【问题描述】

用 JAVA 语言设计如下界面的石头剪刀布游戏。游戏的一方点击界面上石头、剪刀、布按钮,游戏的

另一方计算机随机选择,然后给出游戏结果。

【基本要求】

按照下面给出的步骤设计石头剪刀布游戏,并完成以下工作:

1. 在“//”后给出必要的注释;

2. 为程序添加菜单;至少 2 个菜单:结果显示方式和关于游戏;结果显示方式菜单有 3 个菜单项:文本

显示、图形显示、结束游戏;实现菜单中的功能,自行搜索能体现石头、剪刀、布的图形或图片,用

这些图形或图片显示游戏结果。

第一步,引用需要的包或类;

import java.awt.*;

//引入抽象窗口工具类包;

import java.awt.event.*; //

import javax.swing.*;

//

第二步,定义一个窗口类,并实现 ActionListener 接口,把需要的组件定义放到类里;

//定义一个窗口类,该类实现 ActionListener 接口;

public class work11 extends JFrame implements ActionListener{

JButton jiandao,shitou,bu,clear;

//定义 JButton 对象;

JPanel pane12,panel1;

//

JLabel label;

//

第三步,设置窗体。

public work11() {

setTitle("窗体");

//设置窗体标题,修改标题为“石头剪刀布游戏”;

setLocation(250,250);

//设置窗体左上顶点坐标;- 4 -

setSize(300,300);

//设置窗体大小,修改窗体大小为:350×350;

第四步,根据需求建立对象,这里只需要 4 个 JButton 对象,2 个 JPanel 对象,1 个 JLabel 对象;

panel1 =new JPanel();

//

panel1.setBackground(Color.yellow); //

shitou = new JButton("石头");

//

jiandao =new JButton("剪刀");

//

bu = new JButton("布");

//

clear = new JButton("清空");

//

pane12=new JPanel();

//

pane12.setBackground(Color.green);

//

label =new JLabel("选择剪刀、石头、布开始游戏"); //

第五步,给所有 JButton 对象注册事件监听器;

shitou.addActionListener(this);

//给 shitou 添加事件监听器;

bu.addActionListener(this);

//

jiandao.addActionListener(this);

//

clear.addActionListener(this);

//

第六步,把所有新添加的对象都逐次放进窗体中,例如下面,先放进面板里面,然后再把面板放进窗体中,

放置位置可以自定义;

panel1.add(shitou);

//把 shitou 放进 panel1 中;

panel1.add(jiandao);

//

panel1.add(bu);

//

panel1.add(clear);

//

pane12.add(label);

//

add(panel1,BorderLayout.NORTH);

//

add(pane12,BorderLayout.CENTER);

//

}

第七步,实现 ActionListener 接口方法,使得按下按钮后执行方法里的代码;

//实现 ActionListener 接口方法,当按下按钮就会调用该方法,可以称为事件响应器;

public void actionPerformed(ActionEvent e) {

if(e.getSource()==shitou) {

//如果你按下的是 shitou 按键时,就会执行以下操作;

int i=((int)(Math.random()*10))%3; //定义一个 int 型变量 i,利用 Math.random()函数获取

随机数,因为*10 所以随机数区间为[0,10),最后强制转换为 int 型,再除 3 取余,最后的赋值给 i;

switch(i)

//i 为 0 时就执行 case 0 操作,以此类推;

{

case 0 :label.setText("你出石头,电脑出石头,平局!");break;

//当 i=0 时,执行后续

操作,到 break 结束;(必须要添加 break,不然会一直执行下去);

case 1 :label.setText("你出石头,电脑出剪子,恭喜你赢了!");break;

//当 i=1 时,与上

同理;- 5 -

case 2 :label.setText("你出石头,电脑出布,很遗憾你输了!");break;

//当 i=2 时,与上

同理;

}}

else if (e.getSource()==bu) {

//如果你按下的是 bu 按键时,与上同理;

int i=((int)(Math.random()*10))%3;

switch(i)

{

case 0 :label.setText("你出布,电脑出布,平局!");break;

case 1 :label.setText("你出布,电脑出石头,恭喜你赢了!");break;

case 2 :label.setText("你出布,电脑出剪刀,很遗憾你输了!");break;

}}

else if (e.getSource()==jiandao) {

//当你按下 jiandao 按键时,与上同理;

int i=((int)(Math.random()*10))%3;

switch(i)

{

case 0 :label.setText("你出剪刀,电脑出剪刀,平局!");break;

case 1 :label.setText("你出剪刀,电脑出布,恭喜你赢了!");break;

case 2 :label.setText("你出剪刀,电脑出石头,很遗憾你输了!");break;

}}

else if(e.getSource()==clear)//当你按下 clear 按键时,直接输出 label.setText();

{ label.setText("选择剪刀、石头、布开始游戏"); }

}

第八步,添加主方法,进行测试;

public static void main(String agrs[]) {//添加一个主函数,对窗体显示情况进行测试;

work11 frame =new work11();

//初始化窗体对象;

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置窗体关闭按钮;

frame.setVisible(true);

//使窗体可见;

}

}

package 石头剪刀布;
import java.awt.*;//引入抽象窗口工具包;
import java.awt.event.*;//
import java.util.Calendar;import javax.swing.*;//
import javax.swing.border.Border;import org.omg.CORBA.PUBLIC_MEMBER;
import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;@SuppressWarnings("serial")class work11 extends JFrame implements ActionListener{JButton jiandao,shitou,bu,clear;JPanel panel12,panel11;JLabel label;public work11() {setTitle("石头剪刀布");//窗体标题setLocation(250,250);//设置窗体左上顶点坐标setSize(350,350);//窗体大小JMenuBar mbar=new JMenuBar();//创建菜单栏setJMenuBar(mbar);JMenu m1=new JMenu("结果显示方式");JMenu m2=new JMenu("关于游戏");mbar.add(m1);mbar.add(m2);JMenuItem mil1=new JMenuItem("文本显示");//实现菜单项JMenuItem mil2=new JMenuItem("图形显示");mil2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {work13 frame2=new work13();frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame2.setVisible(true);}});final JMenuItem mil3=new JMenuItem("结束游戏");mil3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int t=JOptionPane.showConfirmDialog(mil3, "确定要结束游戏吗?");if(t==JOptionPane.YES_OPTION) {System.exit(0);}else if(t==JOptionPane.NO_OPTION) {System.out.println(" ");}else {System.out.println();}}});m1.add(mil1);m1.add(mil2);m1.add(mil3);panel11=new JPanel();panel11.setBackground(Color.yellow);shitou=new JButton("石头");jiandao=new JButton("剪刀");bu=new JButton("布");clear=new JButton("清空");panel12=new JPanel();panel12.setBackground(Color.green);label=new JLabel("选择剪刀,石头,布开始游戏");shitou.addActionListener(this);//给shitou添加事件监听器;bu.addActionListener(this);jiandao.addActionListener(this);clear.addActionListener(this);//把对象放入面板里,将面板放入窗体里panel11.add(shitou);panel11.add(jiandao);panel11.add(bu);panel11.add(clear);panel12.add(label);add(panel11,BorderLayout.NORTH);add(panel12,BorderLayout.CENTER);}//实现ActionListener接口方法public void actionPerformed(ActionEvent e) {if(e.getSource()==shitou) {int i=((int)(Math.random()*10))%3;switch(i) {case 0:label.setText("你出石头,电脑出石头,平局!");break;case 1:label.setText("你出石头,电脑出剪刀,恭喜你赢了!");break;case 2:label.setText("你出石头,电脑出布,很遗憾你输了!");break;}}else if(e.getSource()==bu) {int i=(int)(Math.random()*10)%3;switch(i) {case 0:label.setText("你出布,电脑出布,平局!");break;case 1:label.setText("你出布,电脑出石头,恭喜你赢了!");break;case 2:label.setText("你出布,电脑出剪刀,很遗憾你输了!");break;}}else if(e.getSource()==jiandao) {int i=(int)((Math.random()*10))%3;switch(i) {case 0:label.setText("你出剪刀,电脑出剪刀,平局!");break;case 1:label.setText("你出剪刀,电脑出布,恭喜你赢了!");break;case 2:label.setText("你出剪刀,电脑出石头,很遗憾你输了!");break;}}else if(e.getSource()==clear) {label.setText("选择剪刀,石头,布开始游戏");}}}class work13 extends JFrame implements ActionListener{/*** */private static final long serialVersionUID = 1L;JButton jiandao,shitou,bu,clear;JPanel panel2,panel1;JLabel label;public work13() {ImageIcon a=new ImageIcon("D:\\jiandao.jpg");ImageIcon b=new ImageIcon("D:\\shitou.jpg");ImageIcon c=new ImageIcon("D:\\bu.jpg");a.setImage(a.getImage().getScaledInstance(50, 50, 0));b.setImage(b.getImage().getScaledInstance(50, 50, 0));c.setImage(c.getImage().getScaledInstance(50, 50, 0));setTitle("图像");setLocation(250,250);setSize(300,300);panel1=new JPanel();panel1.setBackground(Color.yellow);shitou =new JButton();shitou.setIcon(b);jiandao =new JButton();jiandao.setIcon(a);bu=new JButton();bu.setIcon(c);clear=new JButton("清空");panel2=new JPanel();panel2.setBackground(Color.green);label=new JLabel("选择剪刀石头布开始游戏");shitou.addActionListener(this);bu.addActionListener(this);jiandao .addActionListener(this);clear.addActionListener(this);panel1.add(shitou);panel1.add(jiandao);panel1.add(bu);panel1.add(clear);panel2.add(label);add(panel1,BorderLayout.NORTH);add(panel2,BorderLayout.CENTER);}public void actionPerformed(ActionEvent e) {if(e.getSource()==shitou) {int i=((int)(Math.random()*10))%3;switch(i) {case 0:label.setText("你出石头,电脑出石头,平局!");break;case 1:label.setText("你出石头,电脑出剪刀,恭喜你赢了!");break;case 2:label.setText("你出石头,电脑出布,很遗憾你输了!");break;}}else if(e.getSource()==bu) {int i=(int)(Math.random()*10)%3;switch(i) {case 0:label.setText("你出布,电脑出布,平局!");break;case 1:label.setText("你出布,电脑出石头,恭喜你赢了!");break;case 2:label.setText("你出布,电脑出剪刀,很遗憾你输了!");break;}}else if(e.getSource()==jiandao) {int i=(int)((Math.random()*10))%3;switch(i) {case 0:label.setText("你出剪刀,电脑出剪刀,平局!");break;case 1:label.setText("你出剪刀,电脑出布,恭喜你赢了!");break;case 2:label.setText("你出剪刀,电脑出石头,很遗憾你输了!");break;}}else if(e.getSource()==clear) {label.setText("选择剪刀,石头,布开始游戏");}}}public  class Two{public static void main(String[] args) {work11 frame=new work11();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}
}

石头剪刀布游戏高级版(Java编写)相关推荐

  1. 24点游戏java_使用java编写计算24点游戏程序

    初学java,编写了一个计算24点的程序,时间有限,有些粗糙,不过可以使用. //-------------Cal24.java--------------- //计算24点程序 //作者:徒步天下( ...

  2. java吃豆游戏_利用java编写的精灵吃豆的游戏

    学完线程的时候做了一个精灵吃豆的小游戏. 窗体类: package www.csdn.net.zuoye; //用窗体实现精灵吃豆子的小游戏 import java.awt.Color; import ...

  3. 利用Java编写简单的猜拳游戏

    猜拳游戏要求用Java编写一个人机对战并判断输赢,记录输赢情况. 其中,1代表石头,2代表剪刀,3代表布,110表示结束游戏. 思路:首先定义输入函数,并提示用户输入猜拳数值,定义一个随机数代表电脑数 ...

  4. java android 五子棋游戏_基于Android平台五子棋游戏最终版.doc

    基于Android平台五子棋游戏最终版 毕业设计(论文)任务书 毕业设计(论文)题目: 基于android平台的五子棋游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.综述国内基于and ...

  5. 3.9 编写程序,模拟石头剪刀布游戏。程序随机产生一个数,这个数为2、1或0,分别表示石头剪刀和布。

    1. 题目要求编写程序,模拟石头剪刀布游戏.程序随机产生一个数,这个数为2.1或0,分别表示石头剪刀和布.提示用户输入值2.1或0.然后显示一条消息,表明用户和计算机谁赢了游戏.下面是运行示例:你出什 ...

  6. 《计算机是怎样跑起来的》优化使用VBScript语言编写的石头剪刀布游戏

    今天在看失泽久雄先生著写的<计算机是怎样跑起来的>时,其中有一段使用VBScript编写的石头剪刀布游戏.由于自己是个小白,从来没听说过这种不是特别热门的脚本语言,一看用windows系统 ...

  7. java编写2048小游戏

    java版2048小游戏 java编写2048小游戏 java编写2048小游戏 // An highlighted block /*** */ package games;/*** @author ...

  8. 用java写2468游戏_自己写游戏——东渡教你用Java编写2048完整代码

    原标题:自己写游戏--东渡教你用Java编写2048完整代码 2048作为一款益智类的小游戏,相信很多人都玩过,小编今天就教教大家怎么用Java代码给它完美重现,下面是用eclipse开发的2048完 ...

  9. 用Java编写飞机大战游戏

    飞机大战(Plane War)是一款非常受欢迎的小游戏,它通过增加玩家的难度和挑战性,促使玩家不断提高自己的操作能力和反应速度,并在升级过程中逐步拓展游戏世界的规模和内容.本文将介绍如何使用Java编 ...

最新文章

  1. 每天一个 Linux 命令(13):less 命令
  2. Racket 6.7最新版本:提供对Android App的支持及改进的REPL等等
  3. 转 学习:设置Windows live writer “不发布”到博客园随笔
  4. Python 3.9,来了!
  5. 线程死锁与共享变量的使用(转载)
  6. flex 下对齐_Flex 布局教程:语法篇
  7. 3、oracle数据库的语法基础
  8. 第二轮冲次会议第六次
  9. html5作品展示的动效,html5动效系列八:8个非常神奇的HTML5动画和应用
  10. pytorch 指定卡1_收藏 | 13则PyTorch使用的小窍门
  11. 计算机科学课程规范,计算机科学及技术学院《本科生课程设计规范化要求》.doc...
  12. pads中如何设置等长_标签打印软件中标签间距以及边距如何设置
  13. java窗口按钮位置设置
  14. stm32单片机+驱动L298N控制直流电机调速
  15. java面向对象数组实现家庭收支记账软件_C项目-家庭收支记账软件
  16. sis最新ip地址2020入口一_2020最新国风修仙问道3DMMORPG手游大道争锋官网正版首发入口...
  17. KEPServerEX 6 之 高级标签插件 Advanced Tags 中文使用(完整版)
  18. 昇腾modelzoo复现yolov4_v1(模型训练+网络定义)
  19. 第二次练车,练了一天倒库
  20. python之首字母大写

热门文章

  1. 使用SAGAN生成二次元人物头像(GAN生成对抗网络)--pytorch实现
  2. YDOOK:Pydub 使用教程 打开文件 各种格式
  3. 嵌入式复习题思路(仅供参考)
  4. python汇总excel表_Python 处理分析 128 张 Excel 表格竟不到3秒?|附数据集
  5. i7 1160g7参数 i71160G7怎么样
  6. 网管型交换机的区别?它具备哪些功能?
  7. 国瀚实业|轻松理财只需做好这五件事
  8. 百万富翁模拟器!!!(自己写的彩票模拟小程序)
  9. 其他首部字段:DNT
  10. 正版推荐 - Fences 4 – 让你的桌面更加整洁与高效的桌面图标文件整理工具软件!