有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是一个3位数的随机数,试着一个接一个地猜每个数字

我是Java新手,目前掌握基本的方法、类和构造函数。为了练习,我试着写一个基本的游戏(安全饼干)。所以我的逻辑是得到一个3位数的随机数,然后试着猜它

private static int takeRandomSafeCode(int min, int max) {
    Random random = new Random();
    int result = random.nextInt(max - min) + min;
    return result;  

 private static void playGame() {
    int safeCode = takeRandomSafeCode(100, 999);
    int guess = takeGuess();

这些是我的随机数方法。但如果玩家猜到一个数字和第一个数字是正确的,但在一个错误的位置,我想说“1个数字是正确的,但在一个错误的位置”,或者如果一个数字是正确的,“1个数字是正确的,正确的位置”

我需要在这里使用if-else语句,但我得到了我的数字int变量。一个接一个地核对数字的方法是什么?我需要用绳子吗?我现在有点不知所措。如果你能帮助我,我将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    如果生成一个包含三个元素的整数数组,可能会更可取,而且代码也会更简单。从逻辑上讲,安全代码1-2-3不是123,而是实际上1后面跟着2后面跟着3

    private static int takeRandomDigit() {
        Random random = new Random();
        int result = random.nextInt(10);
        return result;
    }
    
    private static void playGame() {
        int[] safeCode = {takeRandomDigit(), takeRandomDigit(), takeRandomDigit()};
        int guess = takeGuess();
    
        for (int safeDigit : safeCode) // for each digit in the safe code
        {
            // if the digit matches the guess, do something
        }
    }
    
  2. # 2 楼答案

    如果你的数字是: d=253

    d % 10 -> gives you 3
    d / 10 % 10 -> gives you 5
    d / 100 -> gives you 2
    

    将其更改为string也是一个选项,因为您可以使用charAt等字符串函数访问不同的字符

    但是如果你想用Java和OOP的方式来学习,你可以创建一个对象,把3个数字作为该对象的属性,然后输入一些逻辑来进行检查,而不是像上面那样做一些魔术。例如:

    class Combination {
      private  int firstPos;
      private  int secondPos;
      private  int thirdPos;
    
      public  Combination(){
        firstPos=random.nextInt(10);
        secondPos=random.nextInt(10);
        thirdPos=random.nextInt(10);
     }
    
     public boolean checkCombination(Combination testedCombination){
           .............
     }
     some methods, getter, setters etc
    }