152_______________________________________________

можете получить чистые кварты и квинты). Это гораздо труднее, но может быть ваше новаторство принесет удобоваримые плоды.

Дабы не быть обвиненным в пристрастиях к той или иной из музыкальных школ, приведу в качестве примера музыкантскую дразнилку и "чижик-пыжик где ты был":

PLAY "L16 CDECDC" PLAY "ECECFED"

Использование "музыки" может в некоторой степени украсить игровые программы, но можно обойтись и без этого украшения.

Перейдем к знакомству с использованием процедуры и функции, обеспечивающих генерацию случайных чисел. Без них программирование многих игр невозможно. Строго говоря, программно генерируемые числа не являются случайными, но факт вычисления этих чисел по некоторому алгоритму не важен в том случае, если играющий не может воспользоваться существующей закономерностью. При программировании игры важно обеспечить большое разнообразие создаваемых ситуаций при достаточно редкой их повторяемости. При этом распределение случайной величины должно быть таким, чтобы играющий не смог воспользоваться статистическими оценками этого распределения в свою пользу.

Начнем знакомство со свойствами функции RND при помощи однострочной программы, которая должна выдавать 10 целых положительных чисел не превышающих 99:

FOR I%=1 ТО 10: PRINT USING "####" ;INT (100*KND (-1) ) ; : NEXT It: PRINT

Здесь специально исключено стирание экрана, чтобы можно было видеть результаты предыдущих запусков программы. А для облегчения сравнения результатов используется форматированный вывод в одну строку с последующим переводом строки по завершении цикла.

Экспериментируя с различными значениями параметра функции, убедитесь, что результаты подтверждают ее описание. При отрицательных значениях параметра выдается значение каким-то образом соответствующее модулю параметра, при нуле — повторяется выдача предыдущего значения, а при положительных или при умолчании параметра (независимо от значения параметра) - последовательность чисел заданная начальными условиями.

Для создания начальных условий может быть использована процедура RANDOMIZE. Пример использования этой процедуры:

RANDOMIZE: PRINT RND

По умолчанию аргумента процедура запрашивает целое число, затем функция RND выдает значение соответствующее этому числу.

Попробуйте найти какую-нибудь закономерность между введенными значениями параметра и выведенными значениями функции. Кажется, что без "взлома" программы, реализующей эту процедуру такая задача вряд ли может быть решена. Однако используя другой вариант

RANDOMIZE: PRINT RND(O)