用循环列表的数据结构java语言写猴子选大王
时间: 2024-10-09 12:11:07 浏览: 41
基于java数据结构链表写的猴子选大王
5星 · 资源好评率100%
在Java中,我们可以使用循环列表(如`LinkedList`)来模拟猴子选大王的游戏,也叫“石头、剪刀、布”游戏,因为每只猴子都会随机出拳(石头、剪刀或布),然后通过比较决定胜负。以下是简单的实现步骤:
```java
import java.util.LinkedList;
import java.util.Random;
public class MonkeyKing {
enum Move { STONE, SCISSORS, PAPER }
public static void main(String[] args) {
LinkedList<Move> monkeys = new LinkedList<>();
for (int i = 0; i < 5; i++) { // 假设有5只猴子
monkeys.add(randomMonkeyChoice()); // 每只猴子随机选择一种动作
}
System.out.println("All monkeys made their choices:");
for (Move move : monkeys) {
System.out.println(move);
}
// 打印结果,比如第一只猴子与最后一只猴子对决
Move winner = fight(monkeys.first(), monkeys.getLast());
System.out.println("\n" + winner + " wins the round!");
}
private static Move randomMonkeyChoice() {
Random random = new Random();
return Move.values()[random.nextInt(Move.values().length)];
}
private static Move fight(Move monkey1, Move monkey2) {
if (monkey1 == monkey2) {
return Move.TIE; // 平局
} else if ((monkey1 == Move.STONE && monkey2 == Move.SCISSORS)
|| (monkey1 == Move.SCISSORS && monkey2 == Move.PAPER)
|| (monkey1 == Move.PAPER && monkey2 == Move.STONE)) {
return monkey1; // 第二种类型的赢了
} else {
return monkey2; // 第一种类型的赢了
}
}
}
```
在这个例子中,我们创建了一个包含5个猴子动作的循环列表,每个猴子随机选择一次。然后,我们会比较两个随机选择的动作,按照规则确定胜者。
阅读全文