Java初学者求助:实现掷双骰累加至21点的程序开发
帮你完善21点骰子游戏程序
嘿,作为Java初学者能自己搭起代码框架已经超棒啦!我来帮你把这个掷骰子版21点的程序补全,每一步都给你讲清楚逻辑,让你能轻松理解~
首先,先给你完整的可运行代码,之后再拆解关键部分:
import java.util.Random; public class TwentyOne { // 随机数生成器,放在类里只初始化一次更高效 private static final Random random = new Random(); public static void main(String[] args) { welcome(); startGame(); } // 欢迎界面方法 private static void welcome() { System.out.println("🎲 欢迎来到21点骰子游戏!"); System.out.println("规则:每次掷两个骰子,点数累加,达到21点获胜,超过21点失败!"); System.out.println("游戏开始啦!"); } // 核心游戏逻辑方法 private static void startGame() { int totalPoints = 0; while (true) { // 掷两个骰子 int dice1 = rollSingleDice(); int dice2 = rollSingleDice(); int roundPoints = dice1 + dice2; totalPoints += roundPoints; // 打印本轮结果 System.out.printf("本次掷出:%d 和 %d,本轮点数:%d,累计点数:%d%n", dice1, dice2, roundPoints, totalPoints); // 判断胜负 if (totalPoints == 21) { System.out.println("🎉 恭喜你!刚好达到21点,获胜啦!"); break; } else if (totalPoints > 21) { System.out.println("😢 糟糕!累计点数超过21点,游戏失败!"); break; } else { // 点数还不够,继续提示 System.out.println("点数还没到21,继续掷骰子..."); } } } // 单个骰子的掷出逻辑,抽成方法更复用 private static int rollSingleDice() { // nextInt(6)生成0-5的随机数,加1后得到1-6的骰子点数 return random.nextInt(6) + 1; } }
关键部分拆解说明:
- 随机数生成:我们用
Random类来模拟骰子的随机性,random.nextInt(6)会生成0到5的整数,加1之后就刚好对应骰子的1-6点,完美模拟真实骰子的点数范围。 - 方法拆分:把欢迎、掷单个骰子、游戏逻辑拆成独立方法,代码更清晰,也方便后续修改(比如想改欢迎语或者骰子规则,直接改对应方法就行)。
- 循环逻辑:用
while(true)做无限循环,直到触发获胜或失败的条件,用break跳出循环,结束游戏。 - 状态提示:每轮都打印当前掷出的点数和累计点数,让玩家清楚游戏进度,体验更好。
你可以把这段代码复制到Java编译器里运行,就能直接玩这个小游戏啦!如果还有其他疑问,比如想加“是否继续掷骰子”的选择功能,随时问哦~
内容的提问来源于stack exchange,提问作者Eli Young
相关产品推荐
相关产品推荐

