用Javawile循环做一个石头剪刀布游戏三局两胜
时间: 2024-09-14 21:11:00 浏览: 15
用Java编写一个简单的石头剪刀布游戏的三局两胜版本可以分为以下几个步骤:
1. 定义三个选择:`ROCK`, `SCISSORS`, 和 `PAPER`。
2. 创建一个循环,进行三局比赛。
3. 使用`Scanner`获取用户输入,并将其转换为对应的枚举值。
4. 比较电脑随机出的选择和用户的输入,判断胜负。
5. 如果用户赢得两局,则游戏结束;如果平局或电脑赢得两局,宣布结果。
以下是一个简化版的示例代码:
```java
import java.util.Random;
import java.util.Scanner;
enum Choice {
ROCK, SCISSORS, PAPER
}
public class RockPaperScissorsGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int userWins = 0;
int computerWins = 0;
for (int i = 1; i <= 3; i++) {
System.out.println("第" + i + "局:");
System.out.println("请选择(R - 石头, S - 剪刀, P - 布):");
String userInput = scanner.nextLine().toUpperCase();
if (!userInput.equals("R") && !userInput.equals("S") && !userInput.equals("P")) {
System.out.println("无效选择,请重试!");
continue;
}
Choice userChoice = Choice.valueOf(userInput.charAt(0));
Choice computerChoice = Choice.values()[random.nextInt(Choice.values().length)];
if (userChoice == computerChoice) {
System.out.println("平局!继续下一局...");
} else if (compare(userChoice, computerChoice) == 1) {
System.out.println("你赢了这局!");
userWins++;
} else {
System.out.println("电脑赢了这局!");
computerWins++;
}
if (userWins == 2 || computerWins == 2) {
break;
}
}
if (userWins == 2) {
System.out.println("恭喜你,你赢得了这场比赛!");
} else if (computerWins == 2) {
System.out.println("很遗憾,电脑赢了这场比赛!");
} else {
System.out.println("平局,让我们再来一局吧!");
}
scanner.close();
}
// 比较函数,1代表用户胜利,0代表平局,-1代表电脑胜利
private static int compare(Choice user, Choice comp) {
switch (user) {
case ROCK:
return comp == Choice.SCISSORS ? 1 : comp == Choice.PAPER ? -1 : 0;
case SCISSORS:
return comp == Choice.PAPER ? 1 : comp == Choice.ROCK ? -1 : 0;
case PAPER:
return comp == Choice.ROCK ? 1 : comp == Choice.SCISSORS ? -1 : 0;
}
}
}