Java實現(xiàn)石頭剪刀布小游戲
更新時間:2021年01月20日 14:35:09 作者:MKN
這篇文章主要為大家詳細介紹了Java實現(xiàn)石頭剪刀布小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Java實現(xiàn)石頭剪刀布的具體代碼,供大家參考,具體內(nèi)容如下
代碼:
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("退出");
//設(shè)置監(jiān)聽
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); //標(biāo)題
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);//結(jié)果
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);
}
}
}
運行效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring + Spring Boot + MyBatis + MongoDB的整合教程
這篇文章主要給大家介紹了關(guān)于Spring + Spring Boot + MyBatis + MongoDB的整合教程,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-12-12
JDK17在Windows安裝及環(huán)境變量配置超詳細的教程
這篇文章主要介紹了JDK17在Windows安裝及環(huán)境變量配置超詳細的教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11
Java中notify()和notifyAll()的使用區(qū)別
本文主要介紹了Java中notify()和notifyAll()的使用區(qū)別,文中通過示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下2021-06-06
java線程池不同場景下使用示例經(jīng)驗總結(jié)
這篇文章主要為大家介紹了java線程池不同場景如何使用的示例源碼及經(jīng)驗總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03
SpringBoot實現(xiàn)短信發(fā)送及手機驗證碼登錄
本文主要介紹了SpringBoot實現(xiàn)短信發(fā)送及手機驗證碼登錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

