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

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

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

Как нарисовать шахматную доску. Я нарисовал одну строчку, а как дальше с помощью циклов?
uses graph;
var x, y, device, mode:integer;
begin
device:=0;
initgraph(device, mode, 'c:\tp\bgi');
x:=20;
y:=100;
repeat
rectangle(x,y,x+50,y+50);
x:=x+50;
until x>400;
readln;
closegraph
end.
Только не показывайте полностью код, а подскажите, хочу сам довести до ума. И забыл сказать, нужно сделать с помощью циклов.

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

textual
Листинг программы
uses graph;
procedure Kletka(x1,y1,c:integer;d:integer);
begin
Setcolor(c);
rectangle(x1,y1,x1+d,y1+d);
Setfillstyle(1,c);
Bar(x1,y1,x1+d,y1+d);
end;
var gd,gm,x1,y1,x2,y2,d1,i,j:integer;
begin
initgraph(gd,gm,'');
d1:=round((getmaxY-60)/8);
Setcolor(4);
Rectangle(1,1,8*d1+50,8*d1+60);
Setfillstyle(1,4);
Bar(1,1,8*d1+50,8*d1+60);
x1:=30;y1:=20;
for i:=0 to 7 do
  begin
    for j:=0 to 7 do
    if odd(i+j) then Kletka(x1+d1*i,y1+d1*j,15,d1)
    else Kletka(x1+d1*i,y1+d1*j,6,d1);
  end;
Setcolor(0);
for i:=0 to 7 do
outtextxy(30+d1*i+d1 div 2,460,chr(ord(i+97)));
for i:=7 downto 0 do
outtextxy(20,440-d1*i-d1 div 2,chr(ord(i+49)));
readln;
closegraph
end.

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

  1. Подключается библиотека graph.
  2. Создается процедура Kletka, которая рисует квадрат с заданными координатами и цветом.
  3. Создаются переменные gd, gm, x1, y1, x2, y2, d1, i, j: integer;
  4. Вызывается функция initgraph для инициализации графического окна.
  5. Вычисляется значение d1 как половина максимальной высоты экрана минус 60.
  6. Рисуется прямоугольник с заданными координатами и цветом.
  7. Задаются начальные координаты для заполнения доски (x1, y1).
  8. Задаются начальные координаты для заполнения доски (x2, y2).
  9. Задается шаг i для заполнения доски (d1*i).
  10. Задается шаг j для заполнения доски (d1*j).
  11. Задается цвет 15 для заполнения доски.
  12. Задается цвет 6 для заполнения доски.
  13. Задается цвет 0 для очистки цвета перед каждым текстом.
  14. Задается координаты для вывода текста (30+d1*i+d1 div 2,460).
  15. Задается текст для вывода (chr(ord(i+97))).
  16. Задается координаты для вывода текста (20,440-d1*i-d1 div 2).
  17. Задается текст для вывода (chr(ord(i+49))).
  18. Выводится команда readln для чтения ввода.
  19. Вызывается функция closegraph для закрытия графического окна.

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

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