![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте! Я вот решил написать игру "Кто хочет стать миллионером".
Столкнулся с такой трудностью как создания массивов с вопросами и ответами. Инфа берется с файла. Там вот такая "иерархия": Код:
[Questions for "Кто хочет стать миллионером"] --- ^Завершите философскую русскую пословицу: "Век живи, век учись - ..." -Академиком станешь -Богатеньким будешь -В люди выйдешь +Дураком помрешь --- ^Какое небесное тело используется для определения известных актеров, спортсменов и музыкантов? -Астероид -Комета +Звезда -Планета --- Код:
Vopros: array of string; Variant1: array of string; Variant2: array of string; Variant3: array of string; Variant4: array of string; Otvet: array of string; --- обозначало новый вопрос (разделитель). ^ обозначало новый вопрос и заполнялось в массив Vopros + и - обозначало вариант ответа и все 4 варианта писались в массивы Variant (1-4) + обозначало правильный вариант ответа и заполнялось в массив Otvet И еще один вопрос: как потом послать строку массива в Lable каждый раз РАНДОМНО? Буду очень благодарен за ответы!! |
#2
|
||||
|
||||
![]() Пересмотри архитектуру игры.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
||||
|
||||
![]() Подумай как по другому хранить вопросы и ответы. Подумай о том, что, например, вопросов у тебя 10 гигов. И ты их будешь загружить в программу все кучей?
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
|||
|
|||
![]() архитектуру однозначно надо переделать.
вопросов действительно может быть много и они вначале должны быть легкие вопросы и по мере игры усложнятся. если держать их в тхт то тебе придётся загружать все вопросы, разбивать их на уровни сложности, и тд.. тут лучше БД использовать. и еще Цитата:
и почему каждый вариант идёт как массив? они что каждый раз в одном и том же порядке будут? лучше рандомно варианты распологать .а массив с вариантами сделать размером всего 4. примерная БД будет такая: таблица Вопросы: id вопроса, вопрос, уровень сложности вопроса. Таблица Ответы: id ответа, ответ, номер вопроса к которому относится ответ, правильность ответа. ну и примерная логика выборки. допустим нужно показать первый вопрос уровня сложности 1. у тебя в БД несколько вопросов с уровнем сложности 1.ты выбираешь id'ы всех таких вопросов и потом из них рандомно выбираешь один ИД и загружаешь варианты ответа для этого ид. |
#6
|
||||
|
||||
![]() Зачем новичку БД, если он ещё string от array of string не отличает.
Dmitry_DM, прочитай про типы данных и ключевое слово type Собери тип которой будет в себе содержать вопросы и к каждому вопросу 3и варианта + 1н правильный ответ. Код:
type TMyQuestion : record fquest: string fopt1: string fopt2: string fopt3: string; fans: string; end; Заведи массив таких вопросов и файл из этого типа данных: Код:
var FQuestions : file of TMyQuestion; MyQuestions : array [0..99] of TMyQuestion; Запись типизированных данных в файл и считывание оных оттуда: Записывать: Код:
AssignFile(FQuestions, 'c:\FQuestions.dat'); Rewrite(FQuestions, 1); For i:=0 to Length(MyQuestions)-1 do BlockWrite(FQuestions, MyQuestions[i], Sizeof(FQuestions)); CloseFile(FQuestions); Читать по аналогии. Последний раз редактировалось Uniq!, 28.03.2013 в 17:39. |
#7
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 09.05.2013 в 12:21. |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Dmitry_DM (29.03.2013)
|