Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

Помогите!!!!!!   Найти похожие ветки 

 
Филипок:)   (2006-07-30 18:46) [0]

Привет всем,я решил написать карточную игру, и у меня возникли проблемы. У меня есть 54 фотографии карт и 54 image и мне нужно что бы в них загружались картинки карт, причем при каждом запуске игры должны появляться разные карты.
P.S. Наверно вопрос дурацкий но я ещё учусь, так что не обежай


 
Ivolg ©   (2006-07-30 19:00) [1]

>Филипок:)

Можно сделать вот так:

Randomize;
Image1.Picture.LoadFromFile("Card"+IntToStr(Random(53))+"bmp");

При этом каждый файл должен быть переименован в Card0...Card53


 
Филипок:)   (2006-07-30 19:02) [2]

Но уменя Image 54 штуки и если использовать этот код со всеми то они могут повторяться!


 
PSPF2003 ©   (2006-07-30 19:05) [3]

Вот автор написал дурака скачивай и учись...
http://www.sekator13.narod.ru/


 
Ivolg ©   (2006-07-30 19:05) [4]

>Филипок:)

Могут конечно...


 
Филипок:)   (2006-07-30 19:12) [5]

А как сделать что бы они не повторялись?


 
Homo Sapiens ©   (2006-07-30 19:22) [6]


> А как сделать что бы они не повторялись?

Завести флажок и при каждом рандомизе проверять, есть такой image или нет. Если есть, то рандомизить заново


 
Ivolg ©   (2006-07-30 19:25) [7]

Можно попробовать написать комбинацию списка файлов например: Card0;Card50;Card24;Card38; и т.п, а потом их загружать...


 
DprYg ©   (2006-07-30 19:32) [8]


> Randomize;
> Image1.Picture.LoadFromFile("Card"+IntToStr(Random(53))+"bmp");
>

Правильно писать Random(54) 0<=X<54


 
DprYg ©   (2006-07-30 19:35) [9]

А если бы было 10000 карт? Для получения последнего числа  в последовательности придется рандомить приблизительно столько же раз. Время...


 
Ivolg ©   (2006-07-30 19:39) [10]

>DprYg ©

Ну у него же не 10000 карт )


 
Homo Sapiens ©   (2006-07-30 19:41) [11]

А можно ещё сначала просто зарузить по порядку, а уже загруженные
распологать случайно...


 
DprYg ©   (2006-07-30 19:46) [12]

А если попробовать после генерации какого-то числа удалять его из массива и рандомить опять и т.д.?


 
DprYg ©   (2006-07-30 19:48) [13]

То есть генерируем индекс массива random(n-1). Загружаем карту с этим индексом. Удаляем этот элемент. Снова генерим индекс random(n-2)...


 
Virgo_Style ©   (2006-07-30 19:50) [14]

помню, кто-то советовал такой метод:
массив A[1..N] заполняется A[i] = i; затем некоторое достаточно большое число раз два случайно выбранных элемента меняются местами.
Получаем массив случайно расположенных неповторяющихся чисел 1,2..N


 
DprYg ©   (2006-07-30 19:52) [15]

Да, метод неплохой. Только как определить для какого-то N это достаточно большое число?


 
default ©   (2006-07-30 20:07) [16]

Virgo_Style ©   (30.07.06 19:50) [14]
по-моему я:)
только несколько иначе
берём первый элемент и переставляем его с элементом Random(54)+1
потом второй элемент и переставляем его с элементом Random(54)+1
и тд
вроде раньше доказывал, что выборки будут равновероятны
щас этим заниматься лень
можно просто протестировать, без теории



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

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.044 c
15-1152160956
vidiv
2006-07-06 08:42
2006.08.20
Как в iPod Nano залить музыку без участия его спец. проги?


2-1154080034
Sank
2006-07-28 13:47
2006.08.20
опять кодировка


15-1153732118
Ketmar
2006-07-24 13:08
2006.08.20
как запихнуть в образ MDF ещё один файлик?


2-1154426141
Батя
2006-08-01 13:55
2006.08.20
Стили в Delphi


2-1154537092
Хуже чайника
2006-08-02 20:44
2006.08.20
Мои документы