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


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


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


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

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

 

Интересное

Предварительная загрузка...
Если у вас есть серия изображений для предзагрузки, то вы можете воспользоваться функцией preLoad, которую я написал для подобных ситуаций, которая проста в работе и не требует каких-либо...
Подробнее...
Интерфейс командной строки
Итак, консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...
Windows нужно поучиться у...
С каждым новым выпуском Windows, в систему добавляются новые возможности, новые фрагменты кода и увеличивается её размер. Это следствие, вытекающее из закона Мура, которое использует Гейтс при...
Подробнее...
Как выбрать телефон
На сегодняшний день на рынке имеется неограниченное число видов моделей мобильных телефонов, от самых простых, до моделей, имеющих бесчисленное количество функций, и возможностей деловым людям.
Подробнее...
ШРИФТ
Удобочитаемость шрифта.Удобочитаемость является одним из важнейших достоинств хорошего шрифта. Это не только общая оценка пригодности его формы, но и показатель красоты. На удобочитаемость влияют...
Подробнее...
Ввод ограничений на...
Введение: В среде домена централизованное управление рабочими станции можно осуществлять через групповые политики домена. Если же у вас нет сервера, всё равно можно использовать групповые политики...
Подробнее...
Windows взломали...
Специалист по компьютерной безопасности Адам Бойли (Adam Boileau) из новозеландской компании Immunity может обойти пароль Windows XP за несколько секунд. На персональном сайте он опубликовал...
Подробнее...
Горячие Клавиши
Сочетания клавиш Выполняемое действиеShift + влево Вызов контекстного менюAlt+Backspace Перейти на предыдущую страницуShift + вправо Перейти на следующую страницуAlt+Home Перейти на домашнюю...
Подробнее...
Подгрузка меню для сайта с...
Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Например, в одном окне может располагаться меню для управления...
Подробнее...