• Java石头剪刀布小游戏


    package com.neusoft.test;
    
    import java.awt.BorderLayout;
    import java.awt.Choice;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    
    public class Test05 extends JFrame implements ActionListener, ItemListener{
        int m = 1;
        int n = 2;
        int peace = 0;
        int win = 0;
        int lose = 0;
        int all = 0;
        JButton jb1,jb2;
        JLabel jl1,jl2,jl2i,jl3,jl3i,jl4,jl5;
        ImageIcon img1,img2;
        Choice ch;
        JPanel jp1,jp2,jp3,jp4,jp5,jp6;
    
        public Test05(){
            jb1 = new JButton("确定出拳");
            jb2 = new JButton("退出");
            
            //设置监听  
            jb1.addActionListener(this);  
            jb2.addActionListener(this); 
            
            jl1 = new JLabel("猜拳小游戏");
            jl2 = new JLabel("我方出拳");
            jl3 = new JLabel("敌方出拳");
            jl4 = new JLabel("请出拳...");
            jl5 = new JLabel("您玩了"+all+"局,平了"+peace+"局,赢了"+win+"局,输了"+lose+"局");
    
            System.out.println(m);
            img1 = new ImageIcon("D:/mkn/test/img/"+m+".png");
            img2 = new ImageIcon("D:/mkn/test/img/"+n+".png");
            
            jl2i = new JLabel(img1);
            jl3i = new JLabel(img2);
            
            ch = new Choice();
            ch.add("石头");
            ch.add("剪刀");
            ch.add("布");
            ch.addItemListener(this);
    
            jp1 = new JPanel(new BorderLayout());
            jp2 = new JPanel();
            jp3 = new JPanel(new BorderLayout());
            jp4 = new JPanel(new BorderLayout());
            jp5 = new JPanel(new GridLayout(5,1));
            jp6 = new JPanel(new BorderLayout());
            
            jp2.setSize(600, 25);
            jp2.setBackground(Color.red);
            jp3.setSize(280, 300);
            jp4.setSize(280, 300);
            jp5.setSize(40, 300);
            jp6.setSize(600, 25);
    //        jp6.setBackground(Color.GRAY);
            jp2.add(jl1); //标题
            jp3.add(jl2,BorderLayout.NORTH); //
            jp3.add(jl2i,BorderLayout.CENTER);
            jp4.add(jl3,BorderLayout.NORTH);
            jp4.add(jl3i, BorderLayout.CENTER);//敌方出拳
            jp5.add(ch);
            jp5.add(jb1);
            jp5.add(jb2);
            jp6.add(jl4,BorderLayout.WEST);
            jp6.add(jl5,BorderLayout.EAST);//结果
            
            jp1.add(jp2,BorderLayout.NORTH);
            jp1.add(jp3,BorderLayout.WEST);
            jp1.add(jp4,BorderLayout.CENTER);
            jp1.add(jp5,BorderLayout.EAST);
            jp1.add(jp6,BorderLayout.SOUTH);
            
            this.add(jp1);
            
            this.setTitle("猜拳小游戏");          
            this.setSize(540,300);  
    //      this.setLayout(new BorderLayout());
            this.setLocationRelativeTo(null);   //居中        
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setVisible(true);
            this.setResizable(false);  //窗口大小可变
            
        }
        
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            if(e.getActionCommand()=="确定出拳"){
                n = (int)(1+Math.random()*(3));
                jl3i.setIcon(new ImageIcon("D:/mkn/test/img/"+n+".png"));
                if (m - n == 0) {
                    jl4.setText("您和计算机平局");
                    peace++;
                }
                if (m - n == -1||m - n == 2) {
                    jl4.setText("您赢了!!!");
                    win++;
                }
                if (m - n == -2||m - n == 1) {
                    jl4.setText("您输了!!!");
                    lose++;
                }
                all++;
                jl5.setText("您玩了"+all+"局,平了"+peace+"局,赢了"+win+"局,输了"+lose+"局");
    //            System.out.println(n);
            }else{
                this.dispose();
            }
        }
        public static void main(String[] args) {
            Test05 test05 = new Test05();
        }
    
        @Override
        public void itemStateChanged(ItemEvent e) {
            if(e.getSource()==ch){
                Choice temp=(Choice)e.getSource();
                if (temp.getSelectedItem() == "石头") {
                    m = 1;
                }
                if (temp.getSelectedItem() == "剪刀") {
                    m = 2;
                }
                if (temp.getSelectedItem() == "布") {
                    m = 3;
                }
                jl2i.setIcon(new ImageIcon("D:/mkn/test/img/"+m+".png")); 
    //            System.out.println(m);
                }
            
        }
    
        
    }

    运行结果:

  • 相关阅读:
    区间DP练习题题解
    【算法学习笔记】区间DP
    题解 CF1550C. Manhattan Subarrays (思维)
    【算法学习笔记】模运算总结
    题解 [HDU6747] Rotate 期望 + 逆元
    重新点亮linux 命令树————进程的控制[二十二]
    重新点亮linux 命令树————查看进程[二十一]
    docker 应用篇————日志、元数据、进程查看[五]
    docker 应用篇————docker基本命令[四]
    docker 应用篇————docker原理[三]
  • 原文地址:https://www.cnblogs.com/makangning/p/9387644.html
Copyright © 2020-2023  润新知