Написать программу, которая рисует на
Задание 8.14. Построение шахматной доски
Написать программу, которая рисует на экране шахматную доску. Идея программы подсказана К. Э. Садыровым, однако мы предпочли другую реализацию с целью демонстрации идентичных программ на разных языках.
Совет 1 (общий)
Структура программы мало чем отличается от программ, демонстрировавших палитру (см. выше). Единственная тонкость заключается в организации правильного чередования цвета заливки смежных квадратов как в пределах строки, так и при переходе на следующую строку. Для этой цели использован прием "мерцающего бита". При каждом повторении внутреннего цикла величина col принимает чередующиеся значения 7 или 8 (в "мерцающем бите" аналогичная операция выглядела бы так: bit=l- bit или bit:=not bit). Если такое же действие не было бы предусмотрено и во внешнем цикле, то две смежные линейки начинались бы с квадратов одинакового цвета.
Совет 2 (QBasic)
Для подчеркивания границ каждого поля доски приходится сначала заливать очередную клетку, а потом обводить ее границу.
Совет 3 (Си, Паскаль)
Построение залитого поля с одновременной обводкой его границы можно выполнить процедурой bar3d с нулевой глубиной трехмерного столбика.
Программа 8_14.bas
RЕМ Построение шахматной доски DEFINT A-Z SCREEN 12
х0=10: у0=10: col=8: w=50
F0R y=y0 T0 y0+7*w STEP w
col=15-col F0R x=x0 T0 x0+7*w STEP w
LINE (x,y)-(x+w,y+w),col,BF :' Заливка клетки
LINE (x,y)-(x+w,y+w),15,В :' 0бводка границ col=15-col:
' Цвет для смежной клетки NEXT x NEXT у
Программа 8_14.с
/* Построение шахматной доски */
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
main() {
int x,y,x0=10,y0=10,col=8,w=50;
int gd=0,gm;
initgraph(Sgd,&gm,"");
for(y=y0; y<y0+8*w; y+=w)
{
col-15-col;
for(x=x0; x<x0+8*w; xt=w) {
setfillstyle(1,col);
bar3d(x,y,x+w,y+w,0,1); /* 0бводка и заливка клетки */
col=15-col; /* Цвет для смежной клетки */ } }
getch();
closegraph(); }
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий