利用Java编写剪刀石头布
时间: 2024-10-16 18:12:02 浏览: 37
《剪刀石头布(Java)》实验报告
在Java中编写剪刀、石头、布游戏的基本步骤如下:
1. 定义游戏对象:创建三个类表示三种选择,比如`Scissors`, `Paper`, 和 `Rock`,它们都继承自一个抽象的`GameItem`类。
```java
abstract class GameItem {
public abstract String getName();
}
class Scissors extends GameItem {
@Override
public String getName() {
return "剪刀";
}
}
class Paper extends GameItem {
@Override
public String getName() {
return "纸张";
}
}
class Rock extends GameItem {
@Override
public String getName() {
return "石头";
}
}
```
2. 主程序逻辑:定义一个`ComputerPlayer`类作为电脑随机出牌,并创建用户输入的选择类如`HumanPlayer`。
```java
import java.util.Random;
public class ComputerPlayer {
private Random rand = new Random();
public GameItem play() {
int choice = rand.nextInt(3);
switch (choice) {
case 0:
return new Scissors();
case 1:
return new Paper();
case 2:
return new Rock();
default:
throw new IllegalArgumentException("Invalid choice");
}
}
}
class HumanPlayer {
public GameItem play() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的选择(1-剪刀,2-纸张,3-石头):");
int input = scanner.nextInt();
switch (input) {
case 1:
return new Scissors();
case 2:
return new Paper();
case 3:
return new Rock();
default:
throw new IllegalArgumentException("Invalid input");
}
}
}
```
3. 游戏主循环:比较双方的选择,输出结果。
```java
public static void main(String[] args) {
GameItem userChoice = new HumanPlayer().play();
GameItem computerChoice = new ComputerPlayer().play();
if (compare(userChoice, computerChoice)) {
System.out.println("你赢了!");
} else if (compare(computerChoice, userChoice)) {
System.out.println("你输了!");
} else {
System.out.println("平局!");
}
scanner.close();
}
private static boolean compare(GameItem a, GameItem b) {
// 添加规则,例如石头砸剪刀,剪刀切布,布包石头
switch ((a.getName()).compareTo(b.getName())) {
case -1:
return true;
case 1:
return false;
default:
return true; // 平局
}
}
```
阅读全文