基于指定规则的Java掷骰子游戏开发实现技术问询
Java实现经典Craps掷骰子游戏
我来帮你落地这个符合特定规则的掷骰子游戏,先把规则拆解清楚,再一步步实现代码:
游戏核心规则
- 首次掷骰阶段:
- 掷出点数和为7或11 → 直接获胜
- 掷出点数和为2、3或12 → 直接失败
- 掷出4、5、6、8、9、10 → 进入「追point」阶段,该点数记为
point
- 追point阶段:
- 再次掷出
point→ 获胜 - 掷出7 → 失败
- 其他点数 → 继续掷骰,直到触发以上两种结果之一
- 再次掷出
完整Java实现代码
我把代码拆成工具方法和主逻辑两部分,方便理解和后续扩展:
import java.util.Random; public class CrapsGame { // 全局随机数生成器,避免多次创建实例 private static final Random random = new Random(); /** * 模拟掷两个骰子,返回点数之和,同时打印掷骰细节 */ private static int rollDice() { int die1 = random.nextInt(6) + 1; int die2 = random.nextInt(6) + 1; int total = die1 + die2; System.out.printf("掷出了 %d 和 %d,总和为 %d%n", die1, die2, total); return total; } public static void main(String[] args) { int firstRoll = rollDice(); int point = firstRoll; // 处理首次掷骰的胜负结果 switch (firstRoll) { case 7: case 11: System.out.println("恭喜!首次掷骰直接获胜!"); return; case 2: case 3: case 12: System.out.println("很遗憾,首次掷骰直接失败了!"); return; default: System.out.printf("进入追point阶段:需要再次掷出 %d 才能赢,掷出7则输%n", point); } // 追point阶段的循环掷骰逻辑 while (true) { int currentRoll = rollDice(); if (currentRoll == point) { System.out.println("太棒了!成功掷出point,获胜!"); break; } else if (currentRoll == 7) { System.out.println("可惜,掷出了7,游戏失败!"); break; } else { System.out.println("没掷出目标点数,继续加油!"); } } } }
代码细节说明
rollDice()方法:封装了掷两个骰子的逻辑,用Random生成1-6的随机数,同时打印每次的掷骰结果,增强游戏的可视化体验- 首次掷骰用
switch语句快速匹配胜负条件,逻辑清晰直观 - 追point阶段用
while(true)循环持续掷骰,直到触发获胜或失败的终止条件才跳出循环
你可以直接运行这个类,每次执行都会模拟一次完整的游戏流程,完全贴合你描述的规则。
内容的提问来源于stack exchange,提问作者Anguis Nox
相关产品推荐
相关产品推荐

