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

Вниз

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

 
Филипок:)   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.057 c
2-1154348555
Neket
2006-07-31 16:22
2006.08.20
IdSNMP1


3-1150018686
cosmos
2006-06-11 13:38
2006.08.20
Как физически удалить записи из dbf?


1-1152186760
Oleon
2006-07-06 15:52
2006.08.20
Компонент: панель с кнопками открытых MDI окон.


2-1154595222
GEM
2006-08-03 12:53
2006.08.20
Не могу написать запросы. Нужна помощь


10-1122987874
Mx
2005-08-02 17:04
2006.08.20
Предоставление информации об интерфейсах





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский