zoukankan      html  css  js  c++  java
  • Java语言实现石头剪刀布游戏

    石头剪刀布游戏

    题目:
    用 JAVA 语言设计如下界面的石头剪刀布游戏。游戏的一方点击界面上石头、剪刀、布按钮,游戏的另一方计算机随机选择,然后给出游戏结果。

    Java:

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.*;
    
    @SuppressWarnings("serial")
    public class TestOne extends JFrame implements ActionListener{
    	// 定义石头剪刀布的 JButton 对象
    	JButton jiandao, shitou, bu, clear;        
    	JPanel panel2, panel1;
    	JLabel label;
    	
    	// 主函数
    	public static void main(String[] args) {
    		TestOne frame = new TestOne();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     // 设置窗体关闭按钮
    		frame.setVisible(true);                                   // 使窗体可见
    	}
    	
    	// 设置窗体
    	public TestOne() {
    		setTitle("石头剪刀布游戏");    // 石头剪刀布游戏
    		setLocation(250, 250);        // 设置窗体坐上顶点坐标
    		setSize(300, 300);            // 设置窗体大小。窗体大小 : 350X350
    		
    		// 建立对象
    		panel1 = new JPanel();
    		panel1.setBackground(Color.yellow);
    		shitou = new JButton("石头");
    		jiandao = new JButton("剪刀");
    		bu = new JButton("布");
    		clear = new JButton("清空");
    		panel2 = new JPanel();
    		panel2.setBackground(Color.green);
    		label = new JLabel("选择剪刀, 石头, 布开始游戏");
    		
    		// 给所有 JBUtton 对象添加事件约束
    		// 给事件添加监听器
    		shitou.addActionListener(this);          
    		jiandao.addActionListener(this);
    		bu.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() == 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() == 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() == clear) {
    			label.setText("选择剪刀, 石头, 布开始游戏!");
    		}
    	}
    }
    

    运行结果:
    石头剪刀布游戏

  • 相关阅读:
    weblogic.xml 精妙设置
    mysql --> select * from Employee group by name这样的语法有什么意义?
    oracle pctfree和pctused详解
    超详细 SpringMVC @RequestMapping 注解使用技巧
    Spring 注解概览
    Js替换字符串中的所有空格
    面试题精选
    Axure RP Extension for Chrome修复
    【javascript】获取 格式化时间
    万能清除浮动
  • 原文地址:https://www.cnblogs.com/jiaohuadehulike/p/14295004.html
Copyright © 2011-2022 走看看