Трабл с назначением цвета в режиме SCREEN 12 - QBasic
Формулировка задачи:
Листинг программы
- SCREEN 12
- WIDTH 80, 60
- PALETTE 1, &H20202
- PALETTE 2, &H30303
- PALETTE 3, &H40404
- PALETTE 4, &H50505
- PALETTE 5, &H60606
- PALETTE 6, &H70707
- PALETTE 7, &H80808
- PALETTE 8, &H90909
- PALETTE 9, &HA0A0A
- PALETTE 10, &HB0B0B
- PALETTE 11, &HC0C0C
- PALETTE 12, &HD0D0D
- PALETTE 13, &HE0E0E
- PALETTE 14, &HF0F0F
- PALETTE 15, &H101010
- FOR i = 1 TO 15
- COLOR i
- PRINT "Hello, World!"
- NEXT i
WIDTH 80,30
все цвета меняются согласно программе.Не по теме:
Слово "проблема" оказалось запрещено для заголовка
Решение задачи: «Трабл с назначением цвета в режиме SCREEN 12»
textual
Листинг программы
- DECLARE SUB SetRGB (CvA%, ReV%, GrV%, BlV%) ' Палитра
- DECLARE SUB Scr9RGB (CvS9%, ReV%, GrV%, BlV%)
- SCREEN 12
- WIDTH 80, 60
- FOR i% = 1 TO 15
- Scr9RGB i%, i% * 4, i% * 4, i% * 4
- COLOR i%: PRINT i%
- NEXT i%
- SUB Scr9RGB (CvS9%, ReV%, GrV%, BlV%)
- IF CvS9% < 6 AND CvS9% > -1 THEN SetRGB CvS9%, ReV%, GrV%, BlV%
- IF CvS9% = 6 THEN SetRGB 20, ReV%, GrV%, BlV%
- IF CvS9% = 7 THEN SetRGB 7, ReV%, GrV%, BlV%
- IF CvS9% > 7 AND CvS9% < 16 THEN SetRGB CvS9% + 48, ReV%, GrV%, BlV%
- END SUB
- SUB SetRGB (CvA%, ReV%, GrV%, BlV%)
- OUT &H3C8, CvA%: OUT &H3C9, ReV%: OUT &H3C9, GrV%: OUT &H3C9, BlV%
- END SUB
Объяснение кода листинга программы
1. Объявлены две подпрограммы: SetRGB и Scr9RGB.
- Задан режим экрана 12, а также ширина и высота экрана.
- Происходит цикл по 15 элементам.
- В каждой итерации цикла вызывается подпрограмма Scr9RGB с четырьмя аргументами.
- В подпрограмме Scr9RGB происходит проверка значения первого аргумента и, в зависимости от этого значения, вызывается подпрограмма SetRGB с соответствующими аргументами.
- Если значение первого аргумента подпрограммы Scr9RGB равно 6, то в подпрограмме SetRGB передаются значения 20, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB равно 7, то в подпрограмме SetRGB передаются значения 7, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB больше 7 и меньше 16, то в подпрограмме SetRGB передаются значения CvS9% + 48, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB меньше 6 или больше 16, то в подпрограмме SetRGB передаются значения CvS9%, ReV%, GrV%, BlV%.
- В подпрограмме SetRGB происходит запись цвета в регистры OUT &H3C8, CvA%, OUT &H3C9, ReV%, OUT &H3C9, GrV%, OUT &H3C9, BlV%.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д