Игра сапер (4/16)

  • 3
  • Недоступна
Состояние ячеек игрового поля нужно где-то хранить. Для этой задачи создадим матрицу (двумерный массив) с размерами игрового поля. Чтобы увидеть состояние игры на экране, нам нужно передать в отображение данные из матрицы. Отображение отвечает только за визуальную информацию и смысловой нагрузки не
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (20)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Роман Князев15 уровень, Санкт-Петербург
воскресенье, 07:32
Задача скорее о том, что перед написанием кода стоит прочитать "условия проекта".
Владислав Усенко27 уровень, Алматы
11 марта, 05:55
Есть один нюанс в классе GameObject!, при объявлении переменных их нужно указывать через запятую и первым указывать переменную 'x' :
//Валидатор не примет
private int x;
private int y;
//Валидатор примет
private int x, y;
Чтобы это понять. я потратил 45 попыток!
Александр23 уровень, Казань
11 марта, 07:17
Отлично, с твоей инфой получил несколько попыток плюсом. Не принимало, пока обратно не вернул модификатор.
public int x, y;
Изначально была проблема с gameField - сначала y потом x
gameField[y][x] = new GameObject(x, y);
setCellColor(x, y, Color.AZURE);
Forest Traveler0 уровень
16 апреля, 14:56
Блин, спасибо тебе) Долго искал ошибку,в итоге вначале у потом х))
Антон15 уровень, Москва
8 марта, 00:34
Да твоюж мать... Не прошел валидацию с первого раза из-за того, что именовал метод CreateGame, а не createGame.
Kovur31 уровень
12 января, 18:20
Но ведь инвертирование только запутывает. Если оно принципиально нужно - обьясните, зачем? Почему не пользоваться логичным и интуитивным методом?
Алексей Кравчук22 уровень, Минск
13 января, 18:13
в мире программирования к матрицам принято обращаться в форме «сначала y, потом x». Это нужно принять как должное Читать 4. Массивы
Constantine22 уровень
17 января, 00:40
Тогда "мир программирования" есть подкласс "мира математики". Для ячеек матрицы в линейной алгебре используют обращение (строка, столбец). Мне кажется, что термин "инверсия" - это несколько неуклюже, если не более. Когда Вы ищете в тетрадке или книге нужную информацию, или просто пишите, Вы проходите сверху в низ - без каких либо проблем с восприятием. Ну а это и есть ось Y в декартовой системе координат. Далее в нужной строке Вы пишите/читаете то, что хотите по горизонтали, то есть по строке или же по оси X в декартовой системе. При этом у Вас не возникают ни каких психологических и других проблем отложить точку на плоскости - сначала x, а потом y. У Вас эта "инверсия" давно уже отработана рефлекторно в мозгу. Безусловно, при условии, что Вы доучились до 6-7 класса, не курили на занятиях, занимались физкультурой по утрам, и не отказывали бабушкам в их мольбах перевести через дорогу.
Денис16 уровень, Екатеринбург
4 января, 18:11
поясните, кто понял п. 3 требований: 3. В методе createGame() нужно заполнить все ячейки массива gameField новыми объектами типа GameObject с соответствующими координатами x и y. т.е. выполняя это требование создадим объекты-ячейки с адресами (i, j), правильно понимаю?
Иван22 уровень, Санкт-Петербург
9 декабря 2018, 10:22
При компиляции в IDEA не возникает поле, при компиляции на сайте возникает. В чем может быть проблема?
Ильяс35 уровень, Москва
7 декабря 2018, 00:02
Не сразу понял фразу: для каждой ячейки массива gameField нужно вызвать метод setCellColor(int, int, Color) Оказалось, от нас ждут этого: setCellColor( j, i, Color.ORANGE); Причём тут массив gameField? — непонятно.. В итоге, должны быть две строчки внутри циклов:
gameField[тут Y][тут X]=new GameObject(тут X, тут Y);
setCellColor(тут X, тут Y, Color.ORANGE);
P.S. пока заветная цифра из 157 чел 92% выдаёт, а с.п. — 7.11
Alexandr Agalarov17 уровень, Москва
23 декабря 2018, 09:36
Спасибо, добрый человек. 6 попыток (лучше 30%) из-за путаницы координат.
Oleg Savenko22 уровень, Одесса
13 января, 15:41
Даже не мог и подумать что ошибка именно в координатах. Перечитывал статьи и рекомендации, например здесь https://javarush.ru/groups/posts/2055-razdel-igrih-na-javarush-chastjh-2-opisanie-igrovogo-dvizhka то везде сначала X,Y
Kad22 уровень
5 февраля, 01:29
спасибо, перестановка координат gameField[x][y] -> gameField[y][x] помогла победить 3 пункт
Sa1ZeR_8 уровень, Владивосток
7 апреля, 05:44
Не совсем догоняю почему мы меняем местами x и y. Мы же в начале обращаемся к строке(X), потом к столбцу(Y)
Игорь40 уровень, Киев
30 ноября 2018, 16:58
"В методе createGame() нужно заполнить все ячейки массива gameField новыми объектами типа GameObject с соответствующими координатами x и y" Банальный цикл в цикле не проходит валидацию. х и у при этом текущие значения итераторов цикла.
Anton Zhukov40 уровень, Москва
30 ноября 2018, 19:59
Попробуй поменять местами координаты, gameField[y][x]. Мне помогло
Константин26 уровень
1 декабря 2018, 10:59
Спасибо! Ваш совет помог. Но я так и понял, в чём смысл головоломки с изменением мест координат.
Roman Pryshchepa41 уровень, Киев
3 декабря 2018, 08:06
https://javarush.ru/groups/posts/2057-razdel-igrih-na-javarush-chastjh-4-poleznaja-teorija Стоит почитать. Особенно о массивах
Alex Lychack4 уровень
14 апреля, 08:24
Мда... конечно. Про различие в подходе к работе с системой координат узнал впервые. Спасибо что подбросили пищу о размышлении... Сдал с 6 попытки.