Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков - QBasic
Формулировка задачи:
Требуется нарисовать прямоугольник размером во весь экран, стороны которого состоят из квадратиков разного цвета. Квадратиков должно быть от 10 до 15 (как получится). Используется цикл.
Решение задачи: «Нарисовать прямоугольник, стороны которого состоят из разноцветных квадратиков»
textual
Листинг программы
DEFINT A-Z PRINT "Select screen mode" PRINT 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" PRINT 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)
- Конец основного цикла программы
- Ожидание нажатия клавиши для выхода из программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д