java剪刀石头布编程
时间: 2024-09-23 14:11:46 浏览: 46
在Java中编写"剪刀、石头、布"游戏,通常涉及用户输入和计算机随机选择一个选项来进行比较。以下是简单的步骤:
1. **创建枚举类型**: 定义一个名为`GameOption`的枚举,表示三种可能的选择:`SCISSORS`, `PAPER`, 和 `STONE`。
```java
public enum GameOption {
SCISSORS("剪刀"),
PAPER("纸"),
STONE("石头");
private String name;
GameOption(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```
2. **获取用户输入**: 创建一个方法来获取用户的输入,转换为`GameOption`枚举形式。
```java
import java.util.Scanner;
public class UserChoice {
public static GameOption getUserInput() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的选择 (1.剪刀 2.纸 3.石头): ");
int input = scanner.nextInt();
switch (input) {
case 1:
return GameOption.SCISSORS;
case 2:
return GameOption.PAPER;
case 3:
return GameOption.STONE;
default:
throw new IllegalArgumentException("无效的选择");
}
}
}
```
3. **计算机随机选择**: 使用`Random`类生成一个`GameOption`实例。
```java
import java.util.Random;
public class ComputerChoice {
public static GameOption getComputerChoice() {
Random random = new Random();
return GameOption.values()[random.nextInt(GameOption.values().length)];
}
}
```
4. **游戏逻辑**: 比较两个选择,判断胜负并打印结果。
```java
public class GameLogic {
public static void playGame(GameOption user, GameOption computer) {
if (user == computer) {
System.out.println("平局!");
} else if ((user == GameOption.SCISSORS && computer == GameOption.PAPER) ||
(user == GameOption.PAPER && computer == GameOption.STONE) ||
(user == GameOption.STONE && computer == GameOption.SCISSORS)) {
System.out.println("你输了! " + computer.getName() + "胜过你的" + user.getName());
} else {
System.out.println("你赢了! " + user.getName() + "胜过了电脑的" + computer.getName());
}
}
}
```
5. **主程序**:循环运行游戏,直到玩家选择退出。
```java
public class Main {
public static void main(String[] args) {
boolean continuePlaying = true;
while (continuePlaying) {
GameOption userChoice = UserChoice.getUserInput();
GameOption computerChoice = ComputerChoice.getComputerChoice();
GameLogic.playGame(userChoice, computerChoice);
System.out.println("\n是否继续玩? (y/n)");
String response = new Scanner(System.in).nextLine();
if (!response.equalsIgnoreCase("y")) {
continuePlaying = false;
}
}
}
}
```
阅读全文