java课程设计小游戏拿火柴
时间: 2025-01-08 09:54:19 浏览: 2
### Java课程设计:拿火柴小游戏
#### 游戏逻辑描述
在游戏中,初始设定有21根火柴。两位玩家轮流从中取出一定数量的火柴(每次可以取1到4根),谁取走最后一根火柴即为输家[^3]。
#### 实现思路
为了实现这个简单的游戏,在程序中定义了一个`main`方法作为入口点,并利用`Scanner`类获取用户的输入。通过循环结构控制游戏流程直至结束条件达成——剩余火柴数归零。对于非法输入的情况进行了处理,确保用户体验顺畅。
#### 完整代码示例
以下是完整的Java源码:
```java
import java.util.Scanner;
public class MatchstickGame {
public static void main(String[] args) {
int matchsticks = 21; // 初始火柴数目
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎来到拿火柴游戏!");
while (matchsticks > 0) {
System.out.printf("\n当前还剩 %d 根火柴\n", matchsticks);
for (int player = 1; player <= 2 && matchsticks > 0; ++player) {
boolean validInput = false;
do {
try {
System.out.print("Player " + player + ",请输入要拿走多少根火柴(1-4): ");
int takeAway = Integer.parseInt(scanner.nextLine());
if (takeAway >= 1 && takeAway <= Math.min(matchsticks, 4)) {
matchsticks -= takeAway;
if (matchsticks == 0) {
System.out.println("恭喜 Player " + ((player % 2) + 1) + " 获胜!");
} else {
System.out.println("Player " + player + " 取走了 " + takeAway + " 根火柴");
}
validInput = true;
} else {
throw new Exception();
}
} catch (Exception e) {
System.out.println("错误: 输入无效,请重新尝试.");
}
} while (!validInput);
}
}
scanner.close();
}
}
```
这段代码实现了基本的游戏功能并加入了异常捕获机制用于应对不合法的操作,使得整个过程更加健壮可靠。
阅读全文