|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.04.2007, 18:55 | #1 |
/\/\Et@/\|/|$T
Пользователь
Регистрация: 26.03.2007
Сообщений: 89
|
Выбор вопроса из списка
я пишу игру(на delphi) типа кто хочет стать милионером
но у меня есть проблемка: как зделать так чтоб вопросы не повторялись т.е пример:пользователю должно задаться 5 вопросов в запасе у меня их 15 понятно что один и тот-же вопрос может попасца несколько раз так как зделать так чтоб вопросы не повторялись ещё для того чтоб вопросы шли в разной последовательности я использую random может знаете что другого?
there are no programmers there is no life
Последний раз редактировалось steck; 23.04.2007 в 18:58. |
23.04.2007, 19:07 | #2 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Завести булевский массив вопросов. Если вопрос новый, то соответствующему элементу присвоить true, если элемент был, то можно, например шагать вправо или влево по массиву, пока не найдёт вопрос, отмеченный как false. А можно и повторно запустить random.
По поводу второй части вопроса, наверное всё-таки random и использовать randomize. По-другому тяжело генерить случайную последовательность. |
18.05.2007, 16:46 | #3 |
Форумчанин
Регистрация: 25.04.2007
Сообщений: 105
|
Мой милионер
Я когдато писал такоеже. могу дать исходники, но не сейчас, позже примерно во вторник 22.05.07.
]
|
29.05.2007, 15:33 | #4 |
Форумчанин
Регистрация: 25.04.2007
Сообщений: 105
|
Вот исходник моего щасливчика. Там есть сам щасливчик и редактор вопросов.
http://conota.mylivepage.ru/file/?fileid=2406
]
|
09.08.2007, 20:22 | #5 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Можно и проще
Цитата:
Var R :Byte; rr :Set of Byte; begin rr:=[]; // Очистить множество rr:=rr + [ R ]; // Добавить в множество rr:=rr - [ R ]; // Удалить из множества If 10 in rr Then {Что-то делаем} ELSE {Ещё что-то}; end. Думаю понятно. |
|
10.08.2007, 09:14 | #6 | ||
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
Цитата:
Цитата:
Имхо, нужно завести массив индексов элемента массива. Оттуда рандомом выбирать индекс и выбирать вопрос с этим индексом из массива вопросов, а затем просто на место этого индекса ставить последний индекс и сокращать длину. Здесь никаких допопераций не требуется и размер практически не ограничен. |
||
17.08.2007, 16:26 | #7 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Если долго мучится
Цитата:
Использовать для определения наличия элемента в списке IndexOf() - возвратит индекс элемента >= 0 (если он там есть), удалять лучше так BeginUpdate; Delete; EndUpdate;. И так далее ... ----------------------------------------------------------------------- УДАЛИТЕ ЭТО СООБЩЕНИЕ!!!
Последний раз редактировалось Alter; 17.08.2007 в 16:28. |
|
17.08.2007, 16:26 | #8 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Если долго мучится, что-нибудь получится
Цитата:
Использовать для определения наличия элемента в списке IndexOf() - возвратит индекс элемента >= 0 (если он там есть), удалять лучше так BeginUpdate; Delete; EndUpdate;. И так далее ... |
|
18.08.2007, 00:02 | #9 |
Ищу работу
Форумчанин
Регистрация: 16.02.2007
Сообщений: 269
|
присвой каждому вопросу номер, и когда вопрос попадается заноси его в массив или множество. делаешь рэндом сравниваешь номер вопроса с номерами в массиве, если совпал еще раз рэндом и т.д. так что много элементов не получится ~15=))).
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
|
19.08.2007, 23:32 | #10 |
Форумчанин
Регистрация: 08.07.2007
Сообщений: 154
|
ай просто при при начале игры сделай txt файл в котором все ети вопросы удаляютса после использования хватит мудрить для таких игр.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Два тупых вопроса. | proglamer | Общие вопросы Delphi | 2 | 10.04.2008 07:12 |
Два вопроса | Никки | Общие вопросы Delphi | 2 | 19.01.2008 21:39 |
Два простых вопроса | Relrin | Общие вопросы Delphi | 3 | 28.12.2007 16:00 |
Три вопроса по клавиатуре | Никки | Общие вопросы Delphi | 14 | 20.12.2007 22:07 |