我必须为任务做一个策划游戏。我被困在接受用户输入的部分,需要将它们与随机数进行比较。然后,我需要将(用户输入)数字放在网格上的正确位置(底部向上)。

另外,我必须显示数字是否为:

  • 通过显示4,
  • 在左右位置
  • 显示正确但错误的位置,显示2,
  • 显示0
  • 错误

    此外,我需要不断询问用户输入,直到他们达到最大尝试次数10或猜测正确答案为止。

    这是我的代码
    ...
            public static void main(String[] args) {
    
                 PlayMasterMind.computerNum();
                 PlayMasterMind.printBoard();
                 PlayMasterMind.userInput();
                 PlayMasterMind.compare();
                }
    
            public void printBoard(){
                System.out.println(" _______________________");
                System.out.println("|  " + gotIt + "  |  " + gotIt + "  |  " + gotIt + "  |  " + gotIt + "  |  ");
                System.out.println(" _______________________    ____");
                for (j = 0; j < 10; j++) {
                    for (int k = 0; k < 4; k++) {
                        guess[j][k] = "    ";
                        answer[k] = " ";
                    }
                    System.out.println("| " + guess[j][0] + "| " + guess[j][1] + "| " + guess[j][2] + "| "
                            + guess[j][3] + "|==|" + answer[0] + answer[1] + answer[2] + answer[3]
                            + "|");
                    System.out.println(" _______________________    ____");
                }
    }
    
    
    
        }
    

    我在以上部分遇到问题,我需要从下往上将用户输入放入网格中。

    至此,我得到的是:

    输入4个数字:2342

    | 2342 | 2342 | 2342 | 2342 |
    ___________________________ ____
    | | | | | == | |
    ___________________________ ____
    | | | | | == | |
    ___________________________ ____
    ...

    但是我实际上需要按以下顺序编号:
  • | 2 | 3 | 4 | 2 |

  • 以及这些数字是否正确。我想通过以下方式输出它们:
  • | 2 | 3 | 4 | 2 | == | 4444 |

  • 如果1个数字错误,则2个数字正确且在正确的位置,而1个正确但在错误的位置(正确的数字和错误的顺序无关紧要。假设正确的数字是2342,但用户输入了1242 ),那么我将以这种方式显示:
  • | 2 | 3 | 4 | 2 | == | 4420 |

  • 但请不要在下面的框中输入任何内容。它会不断覆盖“X”或“X”位置的信息。

    任何帮助将非常感激。

    提前谢谢!!!

    最佳答案

    为了找到您的代码中的问题,我将其粘贴到编辑器中并尝试对其进行编译。我也将其重新格式化以使其更加清晰。那就是我得到的

    class Test73 {
      public static final int MAX_GUESSES = 10;
      public static final int NB_COLUMNS= 4;
      private String guess[][];
      private String answer[];
      private String gotIt;
    
      public static void main(String[] args) {
        Test73 t = new Test73();
      }
    
      public Test73() {
        gotIt = " ";   // should probably be an array?
        guess = new String[MAX_GUESSES][NB_COLUMNS];
        answer = new String[NB_COLUMNS];
        printBoard();
      }
    
      public void printBoard() {
        System.out.println(" _______________________");
        System.out.println(   // assumes gotIt to be of length 1
          "|  " + gotIt +
          "  |  " + gotIt +
          "  |  " + gotIt +
          "  |  " + gotIt +
          "  |  ");
        System.out.println(" _______________________    ____");
        for (int j = 0; j < MAX_GUESSES; j++) {
          for (int k = 0; k < NB_COLUMNS; k++) {
            guess[j][k] = "    ";
            answer[k] = " ";
          }
          System.out.println(
            "| " + guess[j][0] +
            "| " + guess[j][1] +
            "| " + guess[j][2] +
            "| " + guess[j][3] +
            "|==|" + answer[0] +
            answer[1] +
            answer[2] +
            answer[3] + "|");
          System.out.println(" _______________________    ____");
        }
      }
    }
    

    我编译并运行它。那就是我得到的
     _______________________
    |     |     |     |     |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    |     |     |     |     |==|    |
     _______________________    ____
    

    这是一些观察
  • 变量gotIt可能应该是一个数组,否则您将只能打印四次相同的值。
  • 在打印表之前,将guessanswer的值设置为空字符串。尽管在游戏开始时就可以,但以后不会。那应该出现在程序的其他地方(在初始化部分)。
  • 重要提示:Test类仅用于测试程序的此部分,而不会出现在最终程序中。对程序的其他部分执行相同的操作(您可以重新使用Test类)。

  • 祝好运!

    关于java - 策划游戏算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35964732/

    10-10 19:25