Шахматное поле
Lighting/Colors
Рассмотрим как с помощью цикла нарисовать шахматное поле. Шахматное поле представляет собой сетку из черных и белых квадратиков 8 на 8.

Для того чтобы нарисовать двухмерное шахмаотное поле воспользуемся вложенным циклом. Первый цикл будет пробегаться по столбцам, второй по строкам. Каждый цикл будет выполнять 8 итераций. Цвет текущего квадрата может быть либо черный либо белый, при переходе к каждой следующей клетке в строке он меняется на противоположный. При переходе на новую строку, он также меняется на противоположный. Введем специальные bool переемнную , которая будет хранить текущий выводимый цвет ячейки.
bool isBlack = false;
int CllSize=50;
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8; j++) {
isBlack = !isBlack;
gr.FillRectangle(
isBlack ? Brushes.Black : Brushes.White, // текущий цвет клетки
i * CellSize, // начальная позиция по X
j * CellSize, // начальная позиция по Y
CellSize, CellSize
); // ширина клетки по X и Y
}}
Вставив и запустив данный пример мы увидим следующую картинку:

Данный пример наглядно показывает что для раборты с 2х мерными массивами или сетками удобно использовать 2 цикла (один вложен в другой). Тем самым индексаторы пробегаются по каждому элементы 2х мерной структуры данных, в данном случае Шахматному полю. В дальнейшем эта техникак пригодится нам для обработки двухмерных массивов, вроде годовой температуры по месяцам и дням и так далее.
Исходный код данного примера вы можете найти здесь
Упражнения
- Переделать отрисовку поля таким орбразом чтобы не использовать bool переменную , а использовать только индексаторы i и j