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);
            }

    }

}

运行结果:

原文地址:https://www.cnblogs.com/makangning/p/9387644.html

时间: 2024-10-09 21:25:35

Java石头剪刀布小游戏的相关文章

从零开始学java(小游戏 石头剪刀布)

Game.java package com.java;import java.util.Scanner;public class Game {        private Player player;        public Game(Player player){        this.player=player;    }            public void start(){        System.out.println("开始游戏");        Sy

Java猜拳小游戏(剪刀、石头、布)

import java.util.Random; import java.util.Scanner; public class caiquan { public static void main(String[] args) { Random r=new Random(); int diannao=r.nextInt(3)+1; Scanner s=new Scanner(System.in); System.out.println("=========猜拳小游戏=========")

Java太阳系小游戏分析和源码

-20150809 最近看了面向对象的一些知识,然后跟着老师的讲解做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下最近学的知识: 用到知识点:类的继承.方法的重载与重写.多态.封装等 分析: 1.需要加载图片.画图 2.建一个面板,主页面 3.行星类 ... 效果图: 先看一下源码结构图: 现在逐步分析各个类的功能: 1)工具类-----util包中 --Constant类   封装了游戏中用到的常量 --GameUtil类  封装了游戏的图片加载功能 --MyFrame类  封装了游戏面板

Java太阳系小游戏分析和源代码

-20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载与重写.多态.封装等 分析: 1.须要载入图片.绘图 2.建一个面板.主页面 3.行星类 . . . 效果图: 先看一下源代码结构图: 如今逐步分析各个类的功能: 1)工具类-----util包中 --Constant类   封装了游戏中用到的常量 --GameUtil类  封装了游戏的图片载入功能 --MyFrame类  封装了游

微信小程序开发入门学习(1):石头剪刀布小游戏

从今天起开始捣鼓小程序了2018-12-17   10:02:15 跟着教程做了第一个入门实例有兴趣的朋友可以看看: 猜拳游戏布局 程序达到的效果 猜拳游戏的布局是纵向显示了三个组件:文本组件(text).图像组件(image)和按钮组件(button).在创建小程序工程时,默认建立了两个页面:index 和 logs.我们不需要管 logs,在这个例子中只修改和 index 页面相关的文件,index 是小程序第一个显示的页面,其中 index.wxml 文件是 index 页面的布局文件.

java 第61节 石头剪刀布小游戏

2016-07-02 package com.java1995; public class Player { // 封装 private String name;// 玩家姓名 private int score;// 积分 // 构造器 public Player(String name, int score) { super(); this.name = name; this.score = score; } // 实现封装 public String getName() { return

java数字小游戏

今天开始学习java基础.首先是数据类型 1 整型(byte, short, int, long)2 浮点型(float,double)3字符型(char)4布尔型(boolean). 利用所学的知识,做了一个关于数字的游戏. import java.util.Random;  //引入随机import java.util.Scanner;//引入引用类型public class Zuoye{    public static void main(String[]args){        Ra

一个基于Myeclipse开发的Java打地鼠小游戏(Appletcation)

1 package javaes.zixue.wangshang.daima; 2 3 import java.awt.Cursor; 4 import java.awt.Image; 5 import java.awt.Point; 6 import java.awt.Toolkit; 7 import java.awt.event.ActionEvent; 8 import java.awt.event.ActionListener; 9 import java.awt.event.Mous

关于第一次用java写小游戏(贪吃蛇)的体会记录

作为一只菜鸡,对于编程的世界还一无所知,但是感觉应该要写点实用的东西.突然发现好像贪吃蛇应该能写出来(那种几乎没有用户界面的),于是就开始了. 1.关于对简单的动画呈现的资料准备 因为只有一些捉襟见肘的知识,所以这些资料还得一步步来. 首先我发现动画呈现和键盘输入这些都可以用 awt/swing + Thread线程类 的组合来搞定.首先是线程类在这方面的应用 2 关于主面板(JFrame 和 JPanel) 和 画图工具Graphics JPanel 和其子类可以被添加到JFrame中 作为一