package com.javarush.task.pro.task05.task0529;
/*
Галаксианские роботанки (4)
*/
public class Solution {
public static void main(String[] args) {
String[][] chessBoard = new String[8][8];
String[] letters = new String[]{"a", "b", "c", "d", "i", "f", "j", "h",};
int[] numbers = new int[]{8, 7, 6, 5, 4, 3, 2, 1};
for (int i = 0; i < chessBoard.length; i++) {
for (int j = 0; j < chessBoard[i].length; j++) {
if ((i + j) % 2 == 0) {
chessBoard[i][j] = "W"; // Black
} else {
chessBoard[i][j] = "B"; // Black
}
}
}
for (int i = 0; i < chessBoard.length; i++) {
for (int j = 0; j < chessBoard[0].length; j++) {
for (i = 0; i < letters.length; i++) {
System.out.print(" " + chessBoard[i][j] + letters[i] + numbers[j] + " ");
}
System.out.println();
}
}
}
}ivan
40 уровень
оцените шахматное поле. что тут можно оптимизировать? сократить или сделать более понятно?
Решен
(if ((i + j) % 2 == 0))Но ведь ты точно знаешь, на каком именно поле ты сейчас находишься и точно знаешь, в какой цвет его надо покрасить, это не нужно каждый раз вычислять. Представь, что ты сам вручную красишь в парке гигантскую доску. Ты же, перейдя с одной клетки на другую, не будешь смотреть, какие у неё координаты и вычислять сумму, остаток от деления, что бы понять, красить её белым, ведь нет? Ты просто каждую вторую клетку покрасишь, потому что так проще. Вот так и тут. Циклы с шагом в 2 тебе в помощь ;-) Если чего - спрашивай, не стесняйся. А так - всё отлично, задуманное, пусть и не оптимальное, решение реализовано на заглядение.