題目:
用 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("選擇剪刀, 石頭, 布開始遊戲!");
}
}
}
執行結果: