Baseball Strike Out Problem in Java

2025年3月27日 | 阅读 4 分钟

棒球三振是一个小型数字猜测应用程序,在用户和程序之间进行,用户必须猜测程序选择的三个随机且唯一的数字。它使用“好球”(strikes)和“坏球”(balls)来提供反馈,并且会一直进行直到用户猜对所有三个数字。

问题概述

目标: 尝试找出程序选择的三个不寻常数字的组合。

反馈

好球 (Strike): 正确的数字在正确的位置。

坏球 (Ball): 在任何计算中,不可避免地会出现位置错误的正确数字,这将影响计算的准确性。

结束条件: 当用户猜对所有三个数字时,游戏结束——这被称为“三好球”。

计分: 值得注意的是,测试结束时获得的结果由公式 100 - (尝试次数 * 5) 确定。

问题解决方案

生成随机数: 将目标设置为三个不同的随机数。

获取用户输入: 要求用户输入他们猜测的三个数字。

评估猜测: 将用户的猜测与目标数字进行匹配,并计算好球和坏球的数量。

提供反馈: 告知用户好球和坏球的数量。

重复: 直到用户正确猜出所有三个数字为止。

计算最终得分: 在计算总得分时,另一个需要考虑的因素是尝试的次数。

文件名:BaseballStrikeOut.java

输出

 
Enter 3 unique numbers between 0-9:
1 2 3 
0 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
3 5 6
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
3 5 8
1 strike(s), 0 ball(s)
Enter 3 unique numbers between 0-9:
3 6 9
2 strike(s), 0 ball(s)
Enter 3 unique numbers between 0-9:
3 6 4
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
4 3 6
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
4 6 3
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
6 4 3
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
6 3 4
1 strike(s), 1 ball(s)
Enter 3 unique numbers between 0-9:
6 3 9
2 strike(s), 0 ball(s)
Enter 3 unique numbers between 0-9:
6 9 3
2 strike(s), 0 ball(s)
Enter 3 unique numbers between 0-9:
6 7 3
3 strike(s), 0 ball(s)
Congratulations! You guessed correctly.
Your Score is 45   

注意事项和边缘情况

它确保用户输入不同的数字进行猜测。能够妥善处理任何其他输入和非数字值。

目前,游戏只使用 0 到 9 的一位数;将其更改为任何其他范围或位数。问题在于,如果尝试次数过多,最终得分计算可能需要进行一些修改。

效率和性能

该算法在生成随机数和检查猜测方面的复杂性随着猜测和比较次数的增加而增加。

如果范围很大,或者提供的解决方案对于给定应用程序来说不够,可以考虑改进随机数生成和比较算法。

结论

此实现包含棒球三振游戏的核心 框架,包括随机数生成、用户输入以及得分。可以通过修改一些因素来提高整体难度或游戏界面。