游戏问答

Java实现Moo数字猜谜游戏教程

2025-11-30 18:10:22
0

最近有小伙伴问我,想用Java写点好玩的小游戏练手,但又怕太难。我立刻想到了经典的数字猜谜游戏Moo,规则简单还带点烧脑,特别适合刚学完基础语法的同学。今天咱们就撸起袖子,从零开始实现它!

Java实现Moo数字猜谜游戏教程

一、先搞懂游戏规则

Moo的玩法就像你和电脑玩捉迷藏:电脑随机生成4位不重复数字,你每次猜4个数字,它会用"Bulls"和"Cows"来提示:

  • 🐂 Bulls:数字和位置都正确
  • 🐄 Cows:数字正确但位置不对

举个栗子🌰

谜底猜测提示
142312341B2C(数字1位置正确,2、3、4位置错误)
987667890B4C

二、开发步骤分解

咱们把大象装冰箱分三步:

  1. 生成随机数字
  2. 处理玩家输入
  3. 比较并给出提示

1. 生成四位不重复数字

java.util.Random搞个随机数生成器。注意这里有个坑:要确保四个数字绝对不重复

Set digits = new HashSet<>;
Random rand = new Random;
while(digits.size< 4) {
digits.add(rand.nextInt(10));
String secret = digits.stream.map(String::valueOf).collect(Collectors.joining);

2. 处理玩家输入

Scanner读取控制台输入,记得加个验证:

  • 必须是4位数字
  • 不能有重复数字
Scanner scanner = new Scanner(System.in);
String guess;
do {
System.out.print("输入你的猜测:");
guess = scanner.nextLine;
} while (!isValidGuess(guess));

3. 比较数字逻辑

这里要玩点数学游戏了,先算Bulls再算Cows:

int bulls = 0, cows = 0;
for (int i = 0; i< 4; i++) {
if (secret.charAt(i) == guess.charAt(i)) {
bulls++;
} else if (secret.contains(String.valueOf(guess.charAt(i)))) {
cows++;

三、完整代码组装

把各个模块像乐高积木一样拼起来:

// 包引用略
public class MooGame {
public static void main(String[] args) {
// 生成谜底
// 游戏循环
// 判断胜负
private static boolean isValidGuess(String input) {
return input.matches("^\\\\d{4}$")
&& input.chars.distinct.count == 4;

四、不同实现方式对比

功能模块方案A方案B
随机数生成Random类+HashSetCollections.shuffle取前四位
输入验证正则表达式逐个字符遍历检查
结果判断双重循环遍历使用indexOf方法

五、实际运行效果

按下运行键,咱们来玩一局试试:

谜底已生成,开始游戏吧!
输入你的猜测:1234
提示:0B2C
输入你的猜测:5678
提示:1B0C
输入你的猜测:0965
提示:2B1C
...

窗外的知了还在吱吱叫,键盘敲下最后一个分号时,屏幕上的小奶牛正对着你眨眼睛。把代码发给死党显摆显摆,说不定他明天就带着奶茶来请教啦~

标签:

上一篇:《七界传说》攻略:新手入门与进阶技巧

下一篇:JJ麻将赢牌秘诀:观察技巧胜过算牌

相关阅读