java实现大富翁游戏(附完整源码)
时间: 2023-11-11 08:03:24 浏览: 389
JAVA 实现《大富翁》游戏-全部源码
5星 · 资源好评率100%
以下是 Java 实现大富翁游戏的完整源码:
```java
import java.util.Random;
import java.util.Scanner;
public class Monopoly {
private static final int BOARD_SIZE = 30; // 定义游戏板大小
private static final int MAX_ROUNDS = 50; // 定义最大回合数
private final int[] board; // 游戏板
private int currentPos; // 当前玩家位置
private int currentPlayer; // 当前玩家编号
private int currentRound; // 当前回合数
private final Random random = new Random(); // 随机数生成器
private final Scanner scanner = new Scanner(System.in); // 输入读取器
public Monopoly(int numPlayers) {
board = new int[BOARD_SIZE];
for (int i = 0; i < BOARD_SIZE; i++) {
board[i] = random.nextInt(100); // 初始化游戏板
}
currentPos = 0;
currentPlayer = 1;
currentRound = 1;
System.out.printf("欢迎来到大富翁游戏!\n本次游戏有 %d 个玩家参与\n", numPlayers);
}
// 打印游戏板
private void printBoard() {
System.out.print("游戏板:");
for (int i = 0; i < BOARD_SIZE; i++) {
System.out.printf("%d ", board[i]);
}
System.out.println();
}
// 掷骰子并移动玩家
private void rollDice() {
int steps = random.nextInt(6) + 1; // 随机生成 1~6 的整数
System.out.printf("玩家 %d 掷出了 %d 点\n", currentPlayer, steps);
currentPos = (currentPos + steps) % BOARD_SIZE; // 计算新位置
System.out.printf("玩家 %d 移动到了第 %d 格\n", currentPlayer, currentPos + 1);
}
// 处理该格子的事件
private void handleEvent() {
int prize = board[currentPos]; // 获取奖金
System.out.printf("玩家 %d 获得了 %d 元奖金\n", currentPlayer, prize);
}
// 判断游戏是否结束
private boolean isGameOver() {
if (currentRound > MAX_ROUNDS) {
System.out.printf("游戏结束,最大回合数 %d 已达到\n", MAX_ROUNDS);
return true;
}
if (currentPos == BOARD_SIZE - 1) {
System.out.printf("玩家 %d 获胜!\n", currentPlayer);
return true;
}
return false;
}
// 开始游戏
public void start() {
while (true) {
System.out.printf("第 %d 回合,轮到玩家 %d\n", currentRound, currentPlayer);
printBoard();
rollDice();
handleEvent();
if (isGameOver()) {
break;
}
currentPlayer = (currentPlayer % 2) + 1; // 切换到下一个玩家
currentRound++;
System.out.println("按 Enter 键继续...");
scanner.nextLine(); // 等待用户输入
}
}
public static void main(String[] args) {
Monopoly game = new Monopoly(2); // 创建一个有两个玩家的游戏
game.start();
}
}
```
运行该程序将启动一个大富翁游戏,有两个玩家参与。程序随机生成奖金和骰子点数,并在游戏板上移动玩家。当玩家到达终点或者回合数超过最大值时,游戏结束。
阅读全文