Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

//случайное число от 1 до 4

 vars(vopr); {передаем число процедуре vars, которая сортирует варианты ответов}

end;

Эта процедура начинает игру. Сначала делаем все элементы видимыми и прячем метку, отображающую результат прохождения теста. Затем открываем файл, содержащий вопросы, и считываем из него по одному символу. Каждый байт расшифровывается особо и записывается в отдельный файл. Далее мы работаем с расшифрованным файлом как с обычным ini-файлом.

Первое, что мы считываем, — это общее количество вопросов в базе.

Теперь очередь процедуры question_select:

procedure TForm1.question_seleсt;

label ran; //метка ran для быстрого перехода

begin

 Randomize;

ran:

 a:=Random(n); //выбираем случайный вопрос из базы

 //проверяем: не задавали ли мы этот вопрос ранее

 for i:=1 to n do

if mass[i] = a then goto ran;

 for i:=1 to n do

if mass[i] = 0 then begin

mass[i]:= а; {записываем номер вопроса, чтобы не задавать его больше }

Break;

end;

 //сбрасываем флажки со всех вариантов ответов

 an1.Checked:= False;

 an2.Checked:= False;

 an3.Checked:= False;

 an4.Checked:= False;

end;

Эта процедура случайным образом выбирает вопрос. Затем выполняется проверка: не задавался ли этот вопрос ранее. Если мы нашли вопрос, который еще не был задан, то задаем его и помечаем как уже заданный, чтобы не задавать его больше в текущей сессии.

Процедура verno:

procedure TForm1.verno;

begin

 if an1.Checked then

if yes = an1.Caption then balls:= balls + 1;

 if an2.Checked then

if yes = an2.Caption then balls:= balls + 1;

 if an3.Checked then

if yes = an3.Caption then balls:= balls + 1;

 if an4.Checked then

if yes = an4.Caption then balls:= balls + 1;

end;

Здесь

мы сравниваем правильный ответ с вариантом, который дал пользователь, и в случае правильного ответа пополняем счетчик правильных ответов.

Процедура vars:

procedure TForm1.vars(var variant: integer);

begin

 //вызываем процедуру выбора случайного вопроса question_select;

 case variant of

 1:

begin

Win:= TIniFile.Create(dir2); //открываем ini-файл

//считываем вопрос

Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);

//считываем правильный вариант ответа

an1.Caption:= Win.ReadString('A', IntToStr(a), an1.Caption);

//считываем три неверных варианта к данному вопросу

an2.Caption:= Win.ReadString('W1', IntToStr(a), an2.Caption);

an3.Caption:= Win.ReadString('W2', IntToStr(a), an3.Caption);

an4.Caption:= Win.ReadString('W3', IntToStr(a), an4.Caption);

Win.Free; //освобождаем ini-файл

//помечаем первый вариант как правильный

yes:= an1.Caption;

end;

 2:

begin

Win:= TIniFile.Create(dir2);

Memo1.Text:= Win.ReadString('Q', IntToStr(a), Memo1.Text);

an2.Caption:= Win.Readstring('A', IntToStr(a), an2.Caption);

an1.Caption:= Win.Readstring('W1', IntToStr(a), an1.Caption);

an3.Caption:= Win.ReadString('W2', IntToStr(a), an3.Caption);

an4.Caption:= Win.ReadString('W3', IntToStr(a), an4.Caption);

Win.Free;

yes: = an2.Caption;

end;

 3:

begin

Win:= TIniFile.Create(dir2);

Поделиться:
Популярные книги

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник

Двойник Короля

Скабер Артемий
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Мастер темных Арканов

Карелин Сергей Витальевич
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных Арканов

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник