Нарисовать шахматную доску - 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 реализуется рисование шахматной доски.

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 4.077 из 5