Приветствую всех!
Подскажите как в этой задаче происходит закрашивание клеток? Это же обычный двухмерный массив (представляем в виде таблицы, где в цикле переменная Х это стоки, а переменная У это столбцы) и в цикле мы идем во внешнем цикле x=0 это первая строка нашей таблицы, а во внутреннем цикле Y++ идет по этой строке от 0 до 7(выходит из цикла) по столбцам. Но почему в решении выглядит как бы печатается сверху вниз. Я себе представил, что напечатаем первую строку, затем вторую и так далее. А через дебаг я понял, что печатается цвет по одной клетке разного цвета, но как бы по строкам, то есть первая строчка одна клетка, вторая строчка одна клетка.
Условия задачи:
Приступим к отрисовке радуги. Необходимо создать игровое поле размером 10x7 в методе initialize() и разукрасить
каждую строку разными цветами, используя метод setCellColor(int, int, Color). Порядок сверху вниз должен быть следующим:
Color.RED
Color.ORANGE
Color.YELLOW
Color.GREEN
Color.BLUE
Color.INDIGO
Color.VIOLET
Требования:
• В классе RainbowGame должен быть переопределен метод initialize() родительского класса Game.
• В методе initialize() должен быть вызван метод setScreenSize(int, int) с аргументами 10 и 7.
• В методе initialize() с помощью метода setCellColor(int, int, Color) разукрась игровое поле в радужные цвета.
Где я ошибаюсь?
Мой код: for(int i = 0; i<10; i++){
for (int j = 0; j < 7; j++) {
setCellColor(i,0,Color.RED);
setCellColor(i,1,Color.ORANGE);
setCellColor(i,2,Color.YELLOW);
setCellColor(i,3,Color.GREEN);
setCellColor(i,4,Color.BLUE);
setCellColor(i,5,Color.INDIGO);
setCellColor(i,6,Color.VIOLET);
Еще код тут идет через массив и получается 7 цветов
Color[] colors = {Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.BLUE, Color.INDIGO, Color.VIOLET};
for (int x = 0; x < 10; x++) {
for (int y = 0; y < 7; y++) {
setCellColor(x, y, colors[y]);
}
}
Sergei Kirianov
27 уровень
По столбцам или по строкам?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Преподобный Джаба Software Architect
20 января 2023, 18:47
покажи задачу и код целиком, проще будет понять в чем проблема
0
Sergei Kirianov
20 января 2023, 20:01
добавил
0
Преподобный Джаба Software Architect
21 января 2023, 15:43
Привет, перебор по вертикали или горизонтали зависит от того, в каком порядке расставили переменные, судя по всему i - это столбцы, j - строки , для уверенности надо смотреть как реализован setColor(). Раз цветов семь, то логично что он прокрашивает разными цветами 7 строк, затем здвигается на 1 клетку вправо и снова 7 цветов в том же порядке сверху вниз. Покажи реализацию setColor().
0
Sergei Kirianov
21 января 2023, 21:32
setColor(int x, int y, Color color) простой метод, в поле под координатами x and y ставим цвет (color). В этой игре устанавливаем с помощью метода размер поля, в нашем случае setScreenSize(10,7) - это двумерный массив width=10 hight=7;
Вот, например в этом цикле у нас идет по строке, то есть 0 1 2 3 4 5 6 7 8
слева направо.
А в цикле сверху, вроде как тот же самый двухмерный массив, но например, при i=0, у нас в цикле на каждой строчке будет закрашен по одному квадратику выбранного цвета. То есть получается в цикле i переменная укажет столибик.
Просто когда шли массивы, там была лекция с примером:
int[][] array=new int[3][4];
с таким пояснением три строки по 4 столбика, представляем как таблицу.
Почему тогда в нашем задании массив с размерами int[][] array=new int[10][7];
получается в ширину 10, а в высоту 7, если по аналогии 10 строк и 7 столбцов? Вот поэтому я и запутался.
0
Sergei Kirianov
21 января 2023, 21:39
Тут нашел метод setScreenSize(int, int).
В то сообщение не вошло по лимиту знаков
0