Java: создание и печать сетки в консоли (без графического интерфейса)

`import java.util.Arrays;

public class Board { / ** * Атрибуты * /

// Rows and Columns
private static final int rows = 10;
private static final int cols = 10;

private static final int numOfObstacles = 5;
private static final int numOfFuelUps = 4;
// 2-D Array for the game board and obstacles and
private int[][] gameBoard;





/**
 * Constructors
 */

/**
 * Initialing the game's main board (grid).
 */

public Board() {
    this.gameBoard = new int[rows][cols];
    for(int i = gameBoard.length - 1; i >= 0; i--) {
        System.out.println();
        for(int j = 0; j < gameBoard.length; j++) {
            gameBoard[i][j] = i * rows + j + 1;
             System.out.print(gameBoard[i][j] + "\t");
        }
    }   
}

`

Хорошо, итак. Как видите, у меня есть конструктор, который собирает мою доску 10х10.

Я пока не собираюсь использовать графический интерфейс, я просто хочу, чтобы он работал в консоли. Моя доска должна быть в обратном порядке, например, я хочу, чтобы строки 1-10 были внизу, а 91-100 вверху, а игрок должен следовать в другом направлении, например, в строках 1-10, которые будут внизу. игрок должен двигаться слева направо, а с 11-20 игрок должен двигаться справа налево.

Решил постоянно обновлять доску с помощью StringBuilder

Моя проблема: как мне написать код для того, что я только что описал? 1-10 и 21-30 и 41-50 и 61-70 и 81-90 следуют определенному направлению, в то время как все остальные строки - другому направлению.

ОБНОВЛЕНО: Теперь мне нужно только перевернуть нечетные строки

ДОПОЛНИТЕЛЬНЫЙ: Это одно, а другое дело - вместо того, чтобы печатать номер, я хочу напечатать идентификатор игрока (Player1 или Player2 = в игре 2 игрока), если игрок стоит на определенном числе. Будет ли это хорошей идеей, или мне следует только распечатать сообщение? Как вы думаете?

На что вы надеетесь ответить на свой вопрос? Вы хотите, чтобы мы просто написали весь код за вас (потому что этого не произойдет)? Вам следует попытаться решить вашу проблему. Вы могли бы начать с создания вашего класса Player, нарисовать свою доску на этот раз, создать цикл обновления и так далее ... Никто не собирается кодировать ваш проект за вас. Спросите о конкретной проблеме, и мы, возможно, сможем помочь.

Ben 30.05.2018 11:24

Очевидно, они у меня уже есть ... это не то, о чем я просил, но все равно спасибо

stef 30.05.2018 11:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
1 925
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны узнать о String.format и его функциях. Пример: вы можете указать «ширину» строки. Думаю, это то, что вам нужно:

System.out.print(String.format("%-5s%-5d|", "|", 7));

Объяснение: Это даст вам такой результат:

|     7     |
You need to use one percent sign per additional parameter (we have two: "|" and 7) and a specifier for the format of the string (here: %s for string -> "|" and %d for decimal -> 7). The -5 sets the number of spaces before that variable. Additionally, if you want to update the 7 to an 8, you can call this:
System.out.print(String.format("\r%-5s%-5d|", "|", 8));

"\ R" выполняет свою работу.

Спасибо, это новая информация

stef 30.05.2018 14:12

Другие вопросы по теме