Форум: "Игры";
Текущий архив: 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