利用java写一个石头剪子布窗口程序
时间: 2024-05-15 07:19:45 浏览: 88
以下是一个简单的石头剪子布窗口程序,使用Java Swing库来实现图形界面:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RockPaperScissors extends JFrame implements ActionListener {
private JLabel label;
private JButton rockButton, paperButton, scissorsButton;
private int playerScore, computerScore;
public RockPaperScissors() {
super("石头剪子布游戏");
// 设置窗口大小和布局
setSize(300, 200);
setLayout(new GridLayout(4, 1));
// 创建标签和按钮
label = new JLabel("请选择:");
rockButton = new JButton("石头");
paperButton = new JButton("剪子");
scissorsButton = new JButton("布");
// 添加按钮点击事件监听器
rockButton.addActionListener(this);
paperButton.addActionListener(this);
scissorsButton.addActionListener(this);
// 将标签和按钮添加到窗口中
add(label);
add(rockButton);
add(paperButton);
add(scissorsButton);
// 初始化分数
playerScore = 0;
computerScore = 0;
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
String playerChoice = e.getActionCommand();
String computerChoice = getComputerChoice();
String result = getResult(playerChoice, computerChoice);
// 显示结果
JOptionPane.showMessageDialog(this, result);
// 更新分数
if (result.equals("你赢了!")) {
playerScore++;
} else if (result.equals("电脑赢了!")) {
computerScore++;
}
label.setText("得分: 你 " + playerScore + " - " + computerScore + " 电脑");
}
// 随机生成电脑的选择
private String getComputerChoice() {
int choice = (int) (Math.random() * 3);
if (choice == 0) {
return "石头";
} else if (choice == 1) {
return "剪子";
} else {
return "布";
}
}
// 根据玩家和电脑的选择计算结果
private String getResult(String playerChoice, String computerChoice) {
if (playerChoice.equals(computerChoice)) {
return "平局!";
} else if (playerChoice.equals("石头") && computerChoice.equals("剪子")
|| playerChoice.equals("剪子") && computerChoice.equals("布")
|| playerChoice.equals("布") && computerChoice.equals("石头")) {
return "你赢了!";
} else {
return "电脑赢了!";
}
}
public static void main(String[] args) {
RockPaperScissors game = new RockPaperScissors();
game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.setVisible(true);
}
}
```
该程序使用GridLayout布局将标签和按钮排列在一列中。当玩家点击按钮时,程序将计算出电脑的选择和比赛结果,然后使用JOptionPane显示结果。程序还维护了玩家和电脑的得分,并在标签中显示。