代码之家  ›  专栏  ›  技术社区  ›  Zoey

向Java数组中添加多个内容

  •  -1
  • Zoey  · 技术社区  · 2 年前

    对于这个程序,我应该添加两种不同的“镜像”(向前和向后的斜线代表我游戏中的镜像),分别是“/”和“\”。我已经成功地将第一组斜线添加到迷宫阵列中,但我似乎不知道如何同时添加两个不同的斜线。

    public static void placeMirrors(){
        Scanner input = new Scanner(System.in);
    
        // Promopting user for how many mirrors they want
        System.out.print("\nHow many mirrors do you want in your maze?");
        System.out.print("The maximum number of mirrors you can have is 8. The minimum is 2.\n");
        int usersMirrors = input.nextInt();
    
        // Deploying mirrors randomly within the maze
        for (int i = 1; i <= usersMirrors;) {
            int x = (int)(Math.random() * numRows);
            int y = (int)(Math.random() * numCols);
    
            // *FIGURE OUT ADDING BOTH SETS AT ONCE THING*
            if((x >= 0 && x < numRows) && (y >= 0 && y < numCols) && (maze[x][y] == ".")) {
                maze[x][y] = "\\";
                i++;
            }
        }
        System.out.println("Mirrors placed.");
    }
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   markspace    2 年前

    我想你只需要再加一点 if 在回路内部。我猜你是在成对地添加“镜子”。

    // Deploying mirrors randomly within the maze
    for (int i = 1; i <= usersMirrors;) {
        int x = (int)(Math.random() * numRows);
        int y = (int)(Math.random() * numCols);
    
        if((x >= 0 && x < numRows) && (y >= 0 && y < numCols) && (maze[x][y].equals( "." ) )) {
            maze[x][y] = "\\";
            i++;
        }
    
        x = (int)(Math.random() * numRows);
        y = (int)(Math.random() * numCols);
    
        if((x >= 0 && x < numRows) && (y >= 0 && y < numCols) && (maze[x][y].equals( "." ) )) {
            maze[x][y] = "/";
        }
    }