![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть ряд процедур. Допустим first(); second(); third(); Каким образом можно выбирать случайную? Поясню - пишу бота, в процедурах различные действия. Для "реальности" нужно в процессе работы бота выбирать случайным образом то либо иное действие. Как это нужно делать? Что-то мне подсказывает, что нужно сделать массив с указанием на процедуры, и хотя бы через RandomRange выбирать случайную. Вот только возможно ли это? Массив процедур?
|
#2
|
||||
|
||||
![]() почему бы и нет? главное, чтобы функции были совместимы по типу и принимаемым параметрам
Код:
program Project2; {$APPTYPE CONSOLE} type TMyProc = procedure(param:string); TMyArr = array of TMyProc; procedure MyProc1(param:string); begin writeln(param); end; procedure MyProc2(param:string); begin writeln('ololo'); end; var Arr:TMyArr; k:char; begin Randomize; SetLength(Arr, 2); Arr[0]:=@MyProc1; Arr[1]:=@MyProc2; repeat Arr[Random(Length(Arr))]('omg'); readln(k); until k='q'; end. РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت |
#3
|
||||
|
||||
![]() Цитата:
Код:
x:=random(2); case x of 0:first(); 1:second(); 2:third(); end; Ну смысл понятен... |
#4
|
|||
|
|||
![]() сделать рандом N числа и кейс по вызову определенной процедуры в зависимости от кейса.
к примеру: randomize; K:=random(3); case K of 0: first(); 1: second(); 2: third(); 3: zero(); end; однако думаю интереснее было бы рандом сделать зависимым от действий пользователя для увеличения ощущения "правдивости" p.s. о, сорь, продублировал пост предыдущего комментатора) Последний раз редактировалось BlackDizel, 19.10.2010 в 19:51. |
#5
|
|||
|
|||
![]() Всем спасибо!
|