Как нарисовать шахматную доску - 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.
Объяснение кода листинга программы
- Подключается библиотека graph.
- Создается процедура Kletka, которая рисует квадрат с заданными координатами и цветом.
- Создаются переменные gd, gm, x1, y1, x2, y2, d1, i, j: integer;
- Вызывается функция initgraph для инициализации графического окна.
- Вычисляется значение d1 как половина максимальной высоты экрана минус 60.
- Рисуется прямоугольник с заданными координатами и цветом.
- Задаются начальные координаты для заполнения доски (x1, y1).
- Задаются начальные координаты для заполнения доски (x2, y2).
- Задается шаг i для заполнения доски (d1*i).
- Задается шаг j для заполнения доски (d1*j).
- Задается цвет 15 для заполнения доски.
- Задается цвет 6 для заполнения доски.
- Задается цвет 0 для очистки цвета перед каждым текстом.
- Задается координаты для вывода текста (30+d1*i+d1 div 2,460).
- Задается текст для вывода (chr(ord(i+97))).
- Задается координаты для вывода текста (20,440-d1*i-d1 div 2).
- Задается текст для вывода (chr(ord(i+49))).
- Выводится команда readln для чтения ввода.
- Вызывается функция closegraph для закрытия графического окна.