当前位置: 首页 > news >正文

【Java】猜数字小游戏

规则

  1. 游戏开始随机生成4位数字符串,每个数字从0到9各不相同,比如0123
  2. 玩家10次猜数机会,输入4位数字符串,每个数字从0到9各不相同
  3. 游戏判断玩家输入与所猜谜底数,给出结果nAnB,A表示位置和数字都猜对的个数,B表示数字猜对位置不对的个数

代码

import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;public class NumberGuessingGame {public static String generateRandomNumber() {Random random = new Random();Integer[] digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};Arrays.asList(digits);Arrays.sort(digits, (a, b) -> random.nextInt(3) - 1); // Shuffle the array randomlyreturn Arrays.toString(Arrays.copyOf(digits, 4)).replaceAll("\\D+", "");}public static boolean hasDuplicateDigits(String number) {Set<Character> digitSet = new HashSet<>();for (char digit : number.toCharArray()) {if (!digitSet.add(digit)) {return true; // Duplicate digit found}}return false; // No duplicate digits}public static int[] evaluateGuess(String secretNumber, String userGuess) {int[] result = new int[2]; // Index 0: A (correct digit and position), Index 1: B (correct digit but wrong position)for (int i = 0; i < secretNumber.length(); i++) {char secretChar = secretNumber.charAt(i);char guessChar = userGuess.charAt(i);if (secretChar == guessChar) {result[0]++;} else if (secretNumber.contains(String.valueOf(guessChar))) {result[1]++;}}return result;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String secretNumber = generateRandomNumber();int attemptsLeft = 10;System.out.println("欢迎来到猜数字游戏!");System.out.println("每个数字都是0到9之间的不同数字。");System.out.println("你有10次机会猜对它。");while (attemptsLeft > 0) {System.out.print("请输入你的猜测(四位数):");String userGuess = scanner.nextLine();// Check if the input is a four-digit number with distinct digitsif (!userGuess.matches("\\d{4}") || hasDuplicateDigits(userGuess)) {System.out.println("请确保输入是一个四位数且没有相同的数字。");continue;}int[] evaluation = evaluateGuess(secretNumber, userGuess);System.out.println("结果:" + evaluation[0] + "A" + evaluation[1] + "B");if (evaluation[0] == 4) {System.out.println("恭喜你猜对了!答案是 " + secretNumber);break;}attemptsLeft--;System.out.println("剩余猜测次数:" + attemptsLeft);}if (attemptsLeft == 0) {System.out.println("很遗憾,你没有在10次内猜对。正确答案是 " + secretNumber);}}
}
http://www.lryc.cn/news/261220.html

相关文章:

  • 汽车EDI:Chrysler EDI项目案例
  • Locust:可能是一款最被低估的压测工具
  • 用23种设计模式打造一个cocos creator的游戏框架----(十八)责任链模式
  • 100天精通风控建模(原理+Python实现)——第9天:风控建模中为什么需要特征工程?
  • 【PHP】计算某个特定时间戳距离现在的天数
  • lv12 uboot移植深化 9
  • 大数据与深度挖掘:如何在数字营销中与研究互动
  • xtu oj 1327 字符矩阵
  • 讨论用于评估DREX的五种DR指标
  • 基于SpringBoot的在线疫苗预防小程序
  • Kafka使用总结
  • 2023 年山东省职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题
  • Apache Web 服务器监控工具
  • MySQL执行语句 Table ‘mysql.servers‘ doesn‘t exist
  • 在datagridview列显示下拉操作
  • 基于人工智能 RL 算法的边缘服务器智能选择 模式研究
  • JavaScript流程控制语句
  • 01.Git分布式版本控制工具
  • Hudi介绍
  • MYSQl基础操作命令合集与详解
  • 【Flink名称解释一】什么是cataLog
  • ES如何提高准确率之【term-centric】
  • DDD落地:爱奇艺打赏服务,如何DDD架构?
  • 基于JavaWeb+SSM+Vue居住证申报系统小程序的设计和实现
  • 环境安全之配置管理及配置安全设置指导
  • 【C#】Microsoft C# 视频学习总结
  • 【已解决-实操篇】SaTokenException: 非Web上下文无法获取Request问题解决-实操篇
  • 论文润色机构哪个好 快码论文
  • Idea执行bat使用maven打包springboot项目成docker镜像并push到Harbor
  • NCNN 源码学习【三】:数据处理