|
Часть 16
Пример RANDOMIZE TIMER
bankroll = 100 : bet = 5 : delayVal = .5
WHILE NOT INSTAT `для завершения нажать клавишу
roll = INT(RND(1) * 6) + INT(RND(1) * 6) + 2
PRINT STRING$(30,"-")
PRINT "Сумма наличности =" bancroll
PRINT roll : DELAY delayVal
IF roll = 2 OR roll = 3 OR roll = 12 THEN
PRINT "Вы проиграли"
bancroll = bancroll + bet
ELSEIF roll = 7 OR roll = 11 THEN
PRINT "Вы выиграли !"
bancroll = bancroll - bet
ELSE
PRINT "Ваши очки" roll
noPoint = -1
WHILE noPoint
nextRoll : DELAY delayVal
IF roll = nextRoll THEN `вложенный блок IF
PRINT "Вы выиграли !"
bancroll = bancroll + bet
noPoint = 0
ELSE IF nextRoll = 7 THEN
PRINT "Вы проиграли"
bancroll = bancroll - bet
noPoint = 0
ENDIF
WEND `завершает цикл WHILE noPoint
ENDIF `завершает первый блок IF
WEND `конец цикла WHILE NOT INSTAT
Оператор INCR
----------------------------------------------------------------
Назначение INCR увеличивает значение переменной
Синтаксис INCR числовая переменная [, приращение ]
Замечания Приращение - необязательное числовое выражение,
эначение которого прибавляется к переменной.
Оператор INCR дает простую возможность уве-
личить значение переменной, не используя опера-
тор присваивания.
Отличия В интерпретаторе BASIC такого оператора нет.
См. также DECR
Пример I% = -15 'инициализация переменных-счетчиков
J% = -500
WHILE I% < 0
PRINT I%,J% 'вывод значений счетчиков
INCR I% 'эначение увеличивается на 1
INCR J%, 5 'эначение увеличивается на 5
WEND
END 'конец программы
Функция INKEY$
-------------------------------------------------------------
Назначение INKEY$ считывает коды клавиш клавиатуры без воспро-
изведения на экране их значений.
Синтаксис s$ = INKEY$
Замечания INKEY$ присваивает переменной s$ строку из 0, 1 или
2 символов, отражающую состояние буфера клавиатуры.
Пустая строка (LEN(s$)=0) означает, что буфер
пуст.
Если длина строки равна 1 (LEN(s$)=1), то строка
содержит код ASCII клавиши, которая была нажата
последней; например, значение I3 для клавишы Enter,
(наэываемой также "возвратом каретки", 65 для кла-
виши A.
Если длина строки равна 2 (LEN(s$)=2), то пос-
ледней была нажата клавиша расширенной клавиатуры,
значение которой не входит в стандартный код ASCII;
например, одна из клавиш HOME, PgDn или стрелки.
Первый символ такой строки 0, второй - вспомога-
тельный код. (Для определения нажатой клавиши см.
таблицу расширенных кодов ASCII в приложении F).
Если нажата функциональная клавиша, определяемая
пользователем (см. оператор KEY), INKEY$ возвращает
строку (по одному символу при каждом вызове функ-
ции), которая соответствует последовательности сим-
волов в определении функциональной клавиши.
Функция INKEY предоставляет надежный способ вво-
да пользователем данных в программу без
ограничений, имеющихся в операторе INPUT. INKEY$
возвращает результат не ожидая нажатия очредного
символа, и поэтому обычно используется в цикле в
подпрограмме низкого уровня для непрерывного конт-
роля и конструирования вводимой строки, проверка
которой выполняется процедурами более высокого
уровня.
INKEY$ пропускает без обработки и вывода на эк-
ран все нажатия клавиш, включая управляющие
(Tab,Enter и BackSpace), за исключением :
- Ctrl-Break - комбинация прерывающая выполнение
программы, кроме тех случаев, когда при компиля-
ции соответствующее прерывание было запрещено;
- Ctrl-Alt-Del - комбинация, вызывающая перезапуск
системы;
- Shift-PrtSc - комбинация, распечатывающая содер-
жимое экрана.
См. также INSTAT
Пример PRINT "Введите несколько символов и затем нажмите
|