Как закрасить шахматную доску - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Нарисовал шахматную доску,а как закрасить не знаю. Начал учиться,программированию,всего пару дней назад.Знаю что нужно пользоваться floodfill,но не могу сообразить как и где.
uses graph;
var device,mode,i,x,x1,y,y2,i2:integer;
begin
        device:=0;
        initgraph(device,mode,'');
        x:=1;        x1:=171;
        y:=1;        y2:=96;
        for i:=1 to 8 do
                begin
                     for i2:=1 to 8 do
                              begin
                                  rectangle(x,y,x1,y2);
                                  x:=x+170;
                                  x1:=x1+170;
                                end;
                y:=y+95;
                y2:=y2+95;
                x:=1;
                x1:=171;
                end;
        readln;
        closegraph;
end.

Решение задачи: «Как закрасить шахматную доску»

textual
Листинг программы
uses graph;
var device,mode,i,x,x1,y,y2,i2:integer;
begin
        device:=0;
        initgraph(device,mode,'');
        setfillstyle(1,white);
        x:=1;        x1:=171;
        y:=1;        y2:=96;
        for i:=1 to 8 do
                begin
                     for i2:=1 to 8 do
                              begin
                                  rectangle(x,y,x1,y2);
                                  if (i+i2) mod 2=0 Then
                                  FloodFill(x+1,y+1,white);
                                  x:=x+170;
                                  x1:=x1+170;
                                end;
                y:=y+95;
                y2:=y2+95;
                x:=1;
                x1:=171;
                end;
        readln;
        closegraph;
end.

Объяснение кода листинга программы

  1. Объявлены переменные: device, mode, i, x, x1, y, y2, i2.
  2. Установка переменных device и mode в начальные значения.
  3. Установка текущей графической настройки в режим заполнения (setfillstyle).
  4. Установка начальных координат (x,y) и размеров (x1,y2) прямоугольника.
  5. Цикл for для рисования 8 строк и столбцов шахматной доски.
  6. Внутри цикла for второй вложенный цикл for для рисования клеток.
  7. Рисование прямоугольника (rectangle).
  8. Если (i+i2) mod 2=0, то используется функция FloodFill для заливки клетки белым цветом.
  9. Увеличение координат (x,y) и размеров (x1,y2) на 170 для перехода к следующей строке/столбцу.
  10. После завершения внутреннего цикла for, увеличение координат (y,y2) на 95 для перехода к следующей строке.
  11. После завершения внешнего цикла for, считывание ввода (readln).
  12. Закрытие графического окна (closegraph).
  13. Конец программы (end).

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы