Как мне создать 2d массив выходов из помещения (-1 = нет выхода) для метода перемещения?

#java #arrays

#java #массивы

Вопрос:

 int[][] exits = {
                {-1, -1, -1, -1},
                {-1, -1, -1, -1},
                {-1, -1, -1, -1},
                {-1, -1, -1, -1}
             }
  

У меня есть постоянные переменные, определенные для NUMBER_OF_ROOMS как общее количество комнат в моем подземелье (8 элементов в String[] array ). Я создал таблицы для моего String[] rmDescription массива и my int[][] exits array. Константы для
final int NORTH = 0; final int EAST = 1; final int WEST = 2; и final int SOUTH = 3;

Правильно ли я говорю это?

Выше приведен инициализированный двумерный массив для подземелья меньшего масштаба с элементами, инициализированными в null. По мере перемещения игрока значения элементов меняются в зависимости от выходов, которые можно использовать.

Комментарии:

1. Привет, добро пожаловать! Вы уже изучали объектно-ориентированное программирование ?

2. Я изучаю ООП в школе, … в частности Java. Мы рассмотрели объекты, но то, как это упражнение формулирует все, сбивает с толку

3. Это потому, что лучший способ сделать это — поместить этот attr в объект. Но если ваше упражнение касается массивов, вы могли бы посмотреть, что сказал ваш профессор на прошлом уроке, чтобы увидеть, каким методом заставить это работать, вы могли бы сделать это с матрицей, картами, объектами и т. Д

Ответ №1:

Добро пожаловать, как сказал Гаспар, ООП был бы отличным способом выполнить эту задачу. Как вы заявили, вы не хотите, чтобы в вашем main было много материала в том виде, в каком он у вас есть сейчас, вы должны продолжать копировать данные о комнате в вашем main, чтобы обеспечить перемещение. Кроме того, метод, который отслеживает ваше текущее местоположение, может уменьшить некоторые параметры, которые могут быть представлены пользователю, т. Е. Если вы находитесь в блоке ячеек B, вы должны хотеть, чтобы пользователю предлагалось указать, что вы находитесь в южной ячейке и т.д.

Комментарии:

1. Я ценю обратную связь. Я только что зарегистрировал учетную запись здесь, в StackOverflow, поэтому я привыкаю к форматированию и правилам. Я добавил методы и классы, которые начинают выполнять работу, но я не уверен, считается ли это использованием массивов. Если программа работает, это моя главная цель. Есть два профессора, которые имеют разные взгляды на то, как должны выполняться домашние задания, и их чрезвычайно трудно достать.

Ответ №2:

Мне пришлось создать переменную tempRoom и запустить цикл while, который позволял игроку выходить, если он хотел. Массив поменял бы номер комнаты массива «столбец» в 2d массиве, используя направление пользовательского ввода, чтобы изменить столбец, в который они хотели переместиться. Если они действительны, они будут перемещаться, и CurrentRoom будет roomExits[i] [newRoom], который на самом деле будет новыми координатами i и j .