Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];

Вниз

генератор   Найти похожие ветки 

 
xman   (2003-04-17 15:23) [0]

Как генерировать случайные числа , что бы они не повторялись.
К примеру для создания карточной игры - расздача карт


 
MBo   (2003-04-17 15:51) [1]

занеси нужный диапазон чисел в список или массив и выбирай случайный индекс, при этом удаляя число.


 
Anatoly Podgoretsky   (2003-04-17 16:09) [2]

Удобно использовать множеста, это входило как класический пример в старые книги по Паскалю. Но иногда удобнее списки


 
Anatoly Podgoretsky   (2003-04-17 16:15) [3]

Да и еще не надо выдавать карты случайным образом, надо просто тусовать колоду перед сдачей, как и в реальной жизни.


 
k-man   (2003-04-17 16:22) [4]

Может я неправильно понял вопрос, но чтобы числа при генерации
не повторялись, если я не ошибаюсь, нужно использ. randomize, а потом генерировать число.


 
Anatoly Podgoretsky   (2003-04-17 16:28) [5]

k-man © (17.04.03 16:22)
randomize не влияет на уникальность последовательности, от только отвечает за выбор этой последовательности, назначая начальное значение RandSeed


 
k-man   (2003-04-17 16:32) [6]

2Anatoly Podgoretsky
Разве я буду спорить с мастером :-)
Мотаю на ус...


 
Arch-vile   (2003-04-17 16:39) [7]

Приведу пример из моей проги:

CellTrue[i] := ciphers[random(length(ciphers)) + 1];
( ciphers, pos(celltrue[i], ciphers)
Приведу пример из моей проги:

CellTrue[i] := ciphers[random(length(ciphers)) + 1];
delete(ciphers, pos(celltrue[i], ciphers), 1);

если что-то непонятно, я виноват :)


 
Anatoly Podgoretsky   (2003-04-17 16:43) [8]

Повтори 36 раз команду Random(36), но randomize использовать обязательно, кроме случаев когда для тестовой отладки требуется каждый раз одна и таже последовательность.


 
Урб   (2003-04-17 18:37) [9]

Еще делают завязку рандома на время(секунды).


 
Плохой человек   (2003-04-17 19:54) [10]

Заполняет массив неповторяющимися случайными числами.

procedure FillArray(var A: array of Integer);
var

I, S, R: Integer;
begin

for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end;
end;



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-65449
Gray Angel
2003-10-07 13:18
2003.10.20
Win <-> Dos, Ansi <-> Unicode


1-65543
Soi
2003-10-08 06:03
2003.10.20
Проблемы с компонентом RadioGroup


1-65529
bers
2003-10-08 09:56
2003.10.20
Событие OnMouseOver


4-65662
sucer
2003-08-13 20:55
2003.10.20
Как узнать что программу пытаються запустить повторно?


9-65307
MW Support
2002-12-26 18:43
2003.10.20
Алгоритмы 2D аркад, боты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский