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


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


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


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

Процедура 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;

 

Интересное

Запуск несколкьих...
Введение: Virtual Server 2005 R2 позволяет размещать на сервере гостевые операционные системы. При работе с несколькими виртуальными машинами могут возникнуть некоторые сложности.Мы вам уже...
Подробнее...
Установка свойств для...
Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так:
Подробнее...
Продвижение сайтов в...
Описание: Продвижение сайтов в поисковых системах и интернет-маркетинг поисковых машин очень актуальны в современном бизнесе для достижения коммерческого успеха. Эта книга — прежде всего...
Подробнее...
Тестирование настроек...
Можно смело предположить, что нет таких пользователей, которые были бы полностью довольны производительностью своих dial-up соединений в Интернет. Приходится долго ждать загрузки web-страниц,...
Подробнее...
Криптография: палка о двух...
В первой части статьи мы обсудили основные понятия криптовирологии. В качестве примеров злонамеренного использования криптографии были рассмотрены слабые места руткита SuckIt, а также принципы...
Подробнее...
Cмогут ли пауки...
Основа вашей уверенности в том, что сайт появится в индексной базе поисковой системы, это «успешный» программный код. В конце концов, если робот не может проиндексировать ваших страниц, тогда...
Подробнее...
Обзор Windows XP Service...
На прошлой неделе Microsoft выпустила Release Candidate 1 (RC1) версию Windows XP Service Pack 3 (SP3). Windows XP SP3 станет последним аккордом долгой песни так полюбившейся Windows XP.Для меня...
Подробнее...
Социальная инженерия
Что такое социальная инженерия?? Многие задают себе этот вопрос.Одни думают что это какая то новая точная наука наподобоие математики или физики. А нет!!!!Это искусство ведения разговора и...
Подробнее...
Дюжина вопросов по...
Существуют несколько вопросов, которые изо дня в день повторяются на доске сообщений сервера ISAServer.org и в списках подписчиков. Эти же самые вопросы задают также в общих новостных лентах...
Подробнее...
Чтение почты через...
В последнее время довольно популярными стали почтовые системы с web-интерфейсом.Надо заметить, это довольно удобно, особенно для пользователей,которые выходят в интернет с разных машин.Для...
Подробнее...