7.3. ЗАДАЧА «РАЗДЕЛИ ПОПОЛАМ» Файл VESSELS.BAS
DIM Volume (3) AS INTEGER
DIM Capacity(3) AS INTEGER
Capacity(1) = 8: Capacity<2) " 5: Capacity(3) » 3
'начальное состояние Volume(1) - 8: Volume(2) » 0: Volume(3) « 0 Count% = 0: Number % = 0
Full$ - STRING$(11, 219) •I литр Half$ » STRING$(11, 220) '0.5 литра Empty$ = STRING$(11, 32) '0 литров Walls$ - SPACES(10) + CHR$(222) + Empty$ + CHR$(221)
'стенки Bottoni$ - CHR$(222) + Full$ + CHR$ (221) 'дно CLS
PRINT "РАЗДЕЛИ ПОРОВНУ" LOCATE 17,5 'вывод правил игры PRINT "Имеются 3 сосуда емкостью 8л, 5л и Зл." PRINT "Первый из них полок, другие два пустые." PRINT "Переливая жидкость из сосуда в сосуд, получи по 4л в первом и втором."
PRINT "Разрешается переливать из сосуда в сосуд" PRINT " до заполнения одного из них" PRINT " или до опорожнения другого. " PRINT "<SPACE> - поиск варианта", "<Enter> - выбор варианта" COLOR 9 'вывод изображения сосудов LOCATE 4
PRINT Walls$: PRINT Walls$: PRINT Walls$: PRIMT Walls$ + Walls$ PRINT Walla$ + Walla$: PRINT Walls$ + Walls$ + Walls$ PRINT Walls$ + Walls$ + Walls$: PRXNT Walls$ + Walls$ + Walls$ PRINT SPACE$<9) + "8" + Botton$ + SPACE$(9) + "5" + Bottom$ + SPACE$(9) + "3" + Bottom$ COLOR 4 FOR i% « 1 TO 8
LOCATE 3 + i%, 12: PRINT Full$ '8 л полный NEXT i%
LOCATE 4, 24: PRINT USING "#"; Volume(1) COLOR 1 FOR i% - 1 TO 5
LOCATB б + i%, 35: PRIHT Full$ '5 л пустой NEXT i% FOR i% - 1 TO 3
LOCATE 8 + i%, 58: PRINT Full$ '3 л пустой NEXT i% DO 'начало цикла игры
Countt « Count% + 1 'счет количества переливаний
IF Countt > 7 THEN 'проверка условия проигрыша LOCATE 16, 2: COLOR 7, 0: PRINT "Увы, Вы проиграли..." EXIT DO
END IF
COLOR 4, 0 'для маркера