简体   繁体   English

Java 2D阵列网格

[英]Java 2D array grid

So basically I am trying to make a 9x9 grid for a minesweeper game. 因此,基本上,我正在尝试为扫雷游戏制作9x9网格。 I need the grid to be filled with question marks to represent a minefield that has not been selected yet. 我需要在网格中填充问号,以表示尚未选择的雷区。 Ex: [?][?][?][?][?] Basically my question is how would I get my program to output an array of question marks like that? 例如:[?] [?] [?] [?] [?]基本上,我的问题是如何让我的程序输出这样的问号数组?

import java.util.Scanner;
import java.util.Arrays;

public class H4_Minesweeper {

    public static void main(String[] args) {
        //Game Description and rules
        System.out.println("Minesweeper is a very straightforward game, the rules are simple.");
        System.out.println("Uncover a mine (x), and the game ends. Uncover an empty square (o), and you keep playing.");
        System.out.println("A question mark (?) will represent tiles you have not uncovered yet.");
        System.out.println("Uncover a number, and it tells you how many mines lay hidden in the eight surrounding squares.");
        System.out.println("Use this information to carefully choose which squares to click.");
        System.out.println("\n\n\n");

        Scanner userin;


        String[][] board = new String [9][9];
        for (int r = 0; r<board.length;r++){
            for (int c = 0; c <board.length;c++){

            }
        }
    }
}     

First, you must initialize the array by setting all its elements to "?" 首先,必须通过将数组的所有元素设置为"?"来初始化数组。 :

String[][] board = new String [9][9];
for (int r = 0; r<board.length;r++){
    for (int c = 0; c <board.length;c++){
        board[r][c] = "?";
    }
}

Then you can print it: 然后可以打印它:

for (int r = 0; r<board.length;r++){
    for (int c = 0; c <board.length;c++){
        System.out.print (board[r][c] + " ");
    }
    System.out.println();
}

This should do it. 这应该做。

for (int r = 0; r<board.length;r++){
   for (int c = 0; c <board.length;c++){
      board[r][c] = "?";  // Initialize the cell
      System.out.print("[" +board[r][c] + "]"); // Display the content of cell board
   }
   System.out.println();  // go to next line
}

Fill your 2d array with the String "?" 用字符串“?”填充2d数组 for each of the grid spaces, and then, go row by row printing out the values of each array index 对于每个网格空间,然后逐行打印出每个数组索引的值

Filling array: 填充数组:

String[][] board = new String[9][9];

for(int y=0;y<9;y++){
    for(int x=0;x<9;x++){
        board[x][y] = "?";
    }
}

Displaying the rows: 显示行:

for (int r = 0; r<9;r++){
    String line = "";
    for (int c = 0; c <9;c++){
        line+="["+board[c][r]+"]";
    }
    System.out.println(line);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM