Ошибка: Failed to parse the Currency Converter XML document.
$78 139.81


Ошибка: Failed to parse the Currency Converter XML document.
$13 749.48


Ошибка: Failed to parse the Currency Converter XML document.
$1 799.90


Поговорим о случайных числах

Процедура Randomize

Эта процедура инициализирует (проще говоря запускает) генератор случайных чисел. Надо также заметить, что генератор случайных чисел может быть инициализирован не только с помощью обращения к Randomize , но и с помощью присвоения переменной RandSeed (об этом поговорим ниже).

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

Получение случайного числа

Для того, чтобы получить случайное число нужно воспользоваться функцией Random. Вот ее заголовок:


function Random [ ( Range: Integer) ];

Если обращаться к функции без параметров, то она вернет значение типа Real в диапазоне:

0 <= X < 1

А если в качестве параметра указано целое число k, то функция вернет целочисленное значение в диапазоне:

0 <= X < k,

или, для наглядности, можно записать так:

0 <= X <= k — 1

Важно что реализация функции Random может меняться в зависимости от версии компилятора, поэтому не рекомендуется использовать эту функцию, например, в шифровании.

Пример использования функции Random .

Вы легко можете собрать небольшой тир, используя таймер и картинку Image, ну и конечно же генератор случайных чисел.


Поставим на форму таймер Timer1 и картинку Image1 (не забудьте загрузить в нее изображение) и напишем обработчик события OnTimer

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Randomize; //запускаем генератор случайных чисел
Image1.left:=Random(Form1.width);
Image1.top:=Random(Form1.height);
end;

Мы просто каждый раз меняем случайным образом координаты изображения, которое начинает двигаться по форме беспорядочно. Хотя здесь было бы логичнее Randomize вызвать один раз при загрузке формы.

Теперь сделаем реакцию на попадание в картинку. Естественно это событие OnClick для картинки:

procedure TForm1.Image1Click(Sender: TObject);
begin
Timer1.Enabled:=false; //остановим таймер
Showmessage(«Попадание в цель!»); Timer1.Enabled:=true; //запустим его обратно end;

Здесь можно было бы вести учет очков, уменьшение линии жизни картинки и еще какие-нибудь игровые финты. Увеличить скорость игры можно просто уменьшив свойство Interval таймера

Вот и готова простая игра.

Заполним массив с помощью Random

Randomize;
//заполним массив
for i:= 1 to 10 do a[i]:=Random(10);

//Выведем массив на канву формы
for i:= 1 to 10 do Canvas.TextOut(10+10*i,10,IntToStr(a[i]));

Массив в любом случае будет содержать неотрицательные элементы, чтобы заполнить массив еще и неотрицательными элементами надо написать так:

for i:= 1 to 10 do a[i]:=Random(20) — 10;

Таким образом диапазон значений массива будет ( — 10 .. 9)

Получение случайного числа с помощью RandSeed

Запустить генератор случайных можно получить и без вызова процедуры Randomize. Это делается с помощью переменной RandSeed. Вот пример, демонстрирующий это:

procedure TForm1.Button1Click(Sender: TObject);
var RandSeed: LongInt;
begin
RandSeed:=random(10);
ShowMessage(IntToStr(RandSeed));
end;

 

Интересное

Средства Delphi 7 для...
Рассмотрим наборы компонентов, которые присутствуют в библиотеке компонентов delphi 7, предназначенных для работы с базами данных. Вы узнаете, что такое набор данных, источник данных и...
Подробнее...
Прячем трафик: техника...
До сих пор рассматриваемые нами способы маскировки трафика сводились к сокрытию сетевых соединений, но на физическом уровне весь левый трафик элементарно обнаруживался сниферами и прочими...
Подробнее...
CSS дизайн: с учетом контекста
Веб-стандарты обещают нам улучшенную поддержку мультимедиа: возможность оптимизировать контент под возможности компьютерных экранов, портативных устройств, принтеров, проекторов, и других...
Подробнее...
Защита зрения от компьютера
Технический прогресс принес не только пользу человечеству, но еще и ощутимый вред здоровью людей, которые пользуются дарами цивилизации. О чем это я? Ну, конечно же, речь здесь идет о компьютерах...
Подробнее...
Создание разделов на...
Большой объем винчестера — это здорово, но в этом же заключается и его самый главный недостаток. Со временем в процессе чтения и записи Windows разбрасывает по всему пространству жесткого диска...
Подробнее...
Полезные функции для...
Эта статья фактически краткий справочник по функциям для работы с файлами.Описываемые функции редко кто использует, но это не значит, что они бесполезны.Напротив, они очень даже полезны... Но они...
Подробнее...
Программное управление...
ВведениеТема нашего сегодняшнего разговора — ODBC. Если вы хоть раз писали СУБД (системы управления базами данных), то вам, наверное, знакома эта аббревиатура. Расшифровывается ODBC как Open...
Подробнее...
Чем плохи новые видеокамеры
Обычно от того, что пленочные кассеты становятся достоянием истории, потребитель только выигрывает. Так было, к примеру, когда DVD-плееры пришли на смену кассетным видеомагнитофонам. Но с...
Подробнее...
Система X Window
Система X Window представляет собой графическую оболочку для операционных систем семейства Unix.Топологически X Window состоит из двух частей: это Х-сервер и Х-клиент.Х-сервер — это программа...
Подробнее...
Продлеваем жизнь Windows XP
<img src=«http://i-faq.ru/uploads/posts/2007-09/1190884587_computer.jpg» align=«left» style=«border: none;» alt=«Продлеваем жизнь Windows XP» />Windows Vista можно назвать яркой и новой, но...
Подробнее...