使用java设计一个游戏,电脑和人玩剪刀石头布游戏,并且能显示游戏结果,比如人出了石头,电脑出了剪子, 则显示人赢了,否则显示电脑赢了,或者平局。比赛次数至少为5次,将每一局的游戏结果写入 result.txt文件。
时间: 2024-02-18 21:06:14 浏览: 111
JAVA的剪刀石头布游戏设计方案.doc
5星 · 资源好评率100%
好的,这是一个非常有趣的编程问题,我可以给您提供一个基本的游戏规则,您可以根据需要进行修改和扩展。
首先,我们需要定义三个常量来表示游戏中的三种手势:剪刀、石头和布。我们可以使用整数来表示它们,例如 0 表示剪刀,1 表示石头,2 表示布。
```java
public static final int SCISSORS = 0;
public static final int ROCK = 1;
public static final int PAPER = 2;
```
然后,我们需要实现一个方法来获取电脑的出拳,它应该随机返回一个整数,表示电脑的手势。
```java
public int getComputerGesture() {
Random random = new Random();
return random.nextInt(3);
}
```
接下来,我们需要实现一个方法来比较人和电脑的手势,并返回游戏结果。我们可以使用一个字符串来表示游戏结果,例如 "You win!" 表示人赢了,"Computer wins!" 表示电脑赢了,"Draw!" 表示平局。
```java
public String compareGestures(int playerGesture, int computerGesture) {
if (playerGesture == computerGesture) {
return "Draw!";
} else if ((playerGesture == SCISSORS && computerGesture == PAPER)
|| (playerGesture == ROCK && computerGesture == SCISSORS)
|| (playerGesture == PAPER && computerGesture == ROCK)) {
return "You win!";
} else {
return "Computer wins!";
}
}
```
最后,我们需要编写一个主程序来实现游戏的流程。在每一轮游戏中,先让玩家输入手势,再获取电脑的手势并进行比较,最后输出游戏结果并将它写入 result.txt 文件。
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Game game = new Game();
int playerScore = 0;
int computerScore = 0;
try {
PrintWriter writer = new PrintWriter("result.txt");
for (int i = 1; i <= 5; i++) {
System.out.println("Round " + i + ":");
System.out.print("Your gesture (0 for scissors, 1 for rock, 2 for paper): ");
int playerGesture = scanner.nextInt();
int computerGesture = game.getComputerGesture();
String result = game.compareGestures(playerGesture, computerGesture);
System.out.println("You: " + gestureToString(playerGesture));
System.out.println("Computer: " + gestureToString(computerGesture));
System.out.println(result);
writer.println("Round " + i + ":");
writer.println("You: " + gestureToString(playerGesture));
writer.println("Computer: " + gestureToString(computerGesture));
writer.println(result);
if (result.equals("You win!")) {
playerScore++;
} else if (result.equals("Computer wins!")) {
computerScore++;
}
}
writer.println("Final score:");
writer.println("You: " + playerScore);
writer.println("Computer: " + computerScore);
writer.close();
} catch (FileNotFoundException e) {
System.out.println("Failed to write result to file: " + e.getMessage());
}
}
```
这就是一个基本的剪刀石头布游戏的实现,它可以记录每一局的游戏结果并将它们写入 result.txt 文件。您可以根据需要进行修改和扩展,例如增加更多的手势、增加计时器等等。
阅读全文