Главная страница
    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.045 c
1-1152207760
Andy BitOff
2006-07-06 21:42
2006.08.20
Вывод текста.


15-1153971454
Nic
2006-07-27 07:37
2006.08.20
Вопросик по php


1-1151975555
dwar
2006-07-04 05:12
2006.08.20
indy 9.0.18 проблеммы установки


2-1154495419
SerJaNT
2006-08-02 09:10
2006.08.20
Эффект 3D - кнопки


1-1152348604
17Landgraf
2006-07-08 12:50
2006.08.20
Не получается прокрутить scroll вниз





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