#java #arraylist
Вопрос:
Я пытаюсь создать клон сапера для школы и хочу создать переменный размер доски, приведенный ниже код работает для создания 2d-минного поля, но я получаю ошибку arrayIndex за пределами границ, когда столбцы != строки. Любая помощь будет признательна. Любительский код, так что любые другие советы приветствуются.
public void genBoard(int columns, int rows) {
board = new Tile[rows][columns];
for (int y = 0; y < rows; y ) {
for (int x = 0; x < board[y].length 1; x ) {
board[x][y] = new Tile(x, y, 0, false);
}
}
}
Комментарии:
1. Вы поменялись строками и кольцами. По какой-то причине вы создаете и массив
[rows][cols]
(порядок аргументов метода замены). Затем выy
повторяете цикл сноваrows
иx
снова. Наконец вы назначаете[x][y]
—[cols][rows]
т. е.2. Пожалуйста, не редактируйте свой вопрос, чтобы существенно изменить задаваемый вопрос, как только у вас будут ответы.
3.
x < board[y].length 1
— почему 1 ?4. @BoristheSpider Очень жаль, я только что заметил, что скопировал более старый сегмент кода, в настоящее время у меня возникли проблемы с кодом, на данный момент я должен удалить вопрос и создать новый пост?
5. Я бы задал новый вопрос, да. На этот вопрос есть одобренный ответ, который ссылается на код, который вы первоначально опубликовали. Пожалуйста, возьмите урок отсюда — приложите, по крайней мере, столько усилий, задавая свой вопрос, сколько вы ожидаете, что люди ответят на него; пожалуйста, прочитайте ваши вопросы!
Ответ №1:
x < board[y].length 1;
должно быть
x < board[y].length;
Это то, что вызывает ошибку привязки индекса.
Но также, board[x][y]
должно быть board[y][x]