Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков - QBasic
Формулировка задачи:
Требуется нарисовать прямоугольник размером во весь экран, стороны которого состоят из квадратиков разного цвета. Квадратиков должно быть от 10 до 15 (как получится). Используется цикл.
Решение задачи: «Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков»
textual
Листинг программы
- DEFINT A-Z
- PRINT "Select screen mode"
- PRINT " 1 : 320 x 200 x 4 bit [ EGA / VGA ]"
- PRINT " 2 : 640 x 200 x 4 bit [ EGA / VGA ]"
- PRINT " 3 : 640 x 350 x 4 bit [ EGA / VGA ]"
- PRINT " 4 : 640 x 480 x 4 bit [ VGA ]"
- PRINT " 5 : 320 x 200 x 8 bit [ VGA ]"
- PRINT " Another : Exit"
- INPUT "Your choise [1-5] : ", Scrn
- cvt = 1
- SELECT CASE Scrn
- CASE 1: SCREEN 7: xr = 320: yr = 200: cv = 16
- CASE 2: SCREEN 8: xr = 640: yr = 200: cv = 16
- CASE 3: SCREEN 9: xr = 640: yr = 350: cv = 16
- CASE 4: SCREEN 12: xr = 640: yr = 480: cv = 16
- CASE 5: SCREEN 13: xr = 320: yr = 200: cv = 256: cvt = 32
- CASE ELSE: END
- END SELECT
- LOCATE 3, 5: PRINT "Resolution X:"; STR$(xr); " Y:"; STR$(yr)
- Kv = 10 ' Отношение разрешения к стороне квадрата
- kx = xr \ Kv ' Кол-во квадратов по X
- ky = yr \ Kv ' Кол-во квадратов по Y
- xs = xr \ kx ' Сторона квадрата по X
- ys = yr \ ky ' Сторона квадрата по Y
- FOR ix = 0 TO kx - 1
- cvt = cvt + 1
- LINE (ix * xs, 0)-(ix * xs + xs - 1, ys - 1), cvt MOD cv, BF
- LINE ((kx - ix - 1) * xs, yr)-((kx - ix - 1) * xs + xs - 1, yr - ys), (cvt + ky + kx - 2) MOD cv, BF
- NEXT
- FOR iy = 1 TO ky - 2
- cvt = cvt + 1
- LINE (0, (ky - iy - 1) * ys)-(xs - 1, (ky - iy - 1) * ys + ys - 1), (cvt + kx + ky - 2) MOD cv, BF
- LINE (xr - xs, iy * ys)-(xr, iy * ys + ys - 1), cvt MOD cv, BF
- NEXT
- WHILE INKEY$ = "": WEND
Объяснение кода листинга программы
- Начало программы
- Вывод списка доступных разрешений экрана
- Ввод выбранного разрешения экрана
- Определение выбранного разрешения экрана
- Вывод выбранного разрешения экрана
- Определение отношения разрешения к стороне квадрата
- Определение количества квадратов по X и Y
- Определение стороны квадрата по X и Y
- Цикл по всем квадратам по X
- Рисование горизонтальной линии для текущего квадрата по X
- Цикл по всем квадратам по Y
- Рисование вертикальной линии для текущего квадрата по Y
- Цикл по всем квадратам от 1 до ky-2 (для ky>2)
- Рисование диагонали для текущего квадрата по Y (для ky>2)
- Цикл по всем квадратам от 1 до kx-2 (для kx>2)
- Рисование диагонали для текущего квадрата по X (для kx>2)
- Конец основного цикла программы
- Ожидание нажатия клавиши для выхода из программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д