Нарисовать шахматную доску - QBasic
Формулировка задачи:
Всем привет) помогите пожалуйста) с программками я более менее разбираюсь или пытаюсь разобраться, но с графикой никак, как создать шахматную доску в графическом режиме бейсика?
Решение задачи: «Нарисовать шахматную доску»
textual
Листинг программы
DEFINT A-Z SCREEN 12 OUT &H3C8, 1: OUT &H3C9, 39: OUT &H3C9, 30: OUT &H3C9, 17 OUT &H3C8, 2: OUT &H3C9, 53: OUT &H3C9, 47: OUT &H3C9, 37 OUT &H3C8, 3: OUT &H3C9, 23: OUT &H3C9, 15: OUT &H3C9, 10 k = 40 xc = (640 - k * 8) \ 2 yc = (480 - k * 8) \ 2 WINDOW (639 - xc, 479 - yc)-(-xc, -yc) LINE (-k \ 2, -k \ 2)-(k * 8 + k \ 2, k * 8 + k \ 2), 3, BF FOR y = 0 TO 7 FOR x = 0 TO 7 Cv = (x + y) AND 1 LINE (x * k, y * k)-(x * k + k - 1, y * k + k - 1), Cv + 1, BF NEXT NEXT
Объяснение кода листинга программы
В данном коде на языке QBasic реализуется рисование шахматной доски.
- DEFINT A-Z - команда определения переменных от A до Z. В данном случае используется для создания псевдослучайных чисел в диапазоне от 1 до 64.
- SCREEN 12 - команда установки размера экрана 12.
- OUT &H3C8, 1: OUT &H3C9, 39: OUT &H3C9, 30: OUT &H3C9, 17 - команда вывода на экран символов в кодировке CP-1252 (в данном случае используются символы
@
и#
). Эти символы будут использоваться в качествешахматных клеток
. - OUT &H3C8, 2: OUT &H3C9, 53: OUT &H3C9, 47: OUT &H3C9, 37 - вывод на экран символов
!
,$
,%
и^
. - OUT &H3C8, 3: OUT &H3C9, 23: OUT &H3C9, 15: OUT &H3C9, 10 - вывод на экран символов
*
,(
и|
. - k = 40 - присваивание переменной k значение 40 (размер доски в клетках).
- *xc = (640 - k 8) \ 2** - присваивание переменной xc значение, равное ширине доски в пикселях.
- *yc = (480 - k 8) \ 2** - присваивание переменной yc значение, равное высоте доски в пикселях.
- WINDOW (639 - xc, 479 - yc)-(-xc, -yc) - установка размера окна таким образом, чтобы оно было немного меньше доски (на 8 пикселей с каждой стороны).
- LINE (-k \ 2, -k \ 2)-(k 8 + k \ 2, k 8 + k \ 2), 3, BF - вывод на экран горизонтальной линии (разделяющей доску на две части).
- FOR y = 0 TO 7 - цикл, выполняющийся 8 раз (для каждой строки доски).
- FOR x = 0 TO 7 - вложенный цикл, выполняющийся 8 раз (для каждого столбца доски).
- Cv = (x + y) AND 1 - присваивание переменной Cv значение 1, если сумма текущего столбца и строки нечетная, и 0 в противном случае.
- LINE (x k, y k)-(x k + k - 1, y k + k - 1), Cv + 1, BF - вывод на экран вертикальной линии (разделяющей клетки доски). Значение Cv + 1 соответствует цвету линии: для черных клеток -1, для белых -2, для светло-серых -3.
- NEXT - выход из вложенного цикла.
- NEXT - выход из внешнего цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д