C/C++

Программирование на Паскале

Как создать викторину "своя игра" на Паскале? У кого-нибудь, может, есть готовый код?
 program MyQuizGame; 

uses
SysUtils;

type
Question = record
Text: string;
Options: array[1..4] of string;
CorrectOption: Integer;
end;

const
TotalQuestions = 3;

var
Questions: array[1..TotalQuestions] of Question;
Score: Integer;

procedure InitializeQuestions;
begin
Questions[1].Text := 'Какая столица Франции?';
Questions[1].Options[1] := 'Амстердам';
Questions[1].Options[2] := 'Париж';
Questions[1].Options[3] := 'Мадрид';
Questions[1].Options[4] := 'Лондон';
Questions[1].CorrectOption := 2;

Questions[2].Text := 'Какой язык программирования популярен для разработки Android-приложений?';
Questions[2].Options[1] := 'Java';
Questions[2].Options[2] := 'Python';
Questions[2].Options[3] := 'C++';
Questions[2].Options[4] := 'C#';
Questions[2].CorrectOption := 1;

Questions[3].Text := 'Сколько планет в солнечной системе?';
Questions[3].Options[1] := '7';
Questions[3].Options[2] := '8';
Questions[3].Options[3] := '9';
Questions[3].Options[4] := '10';
Questions[3].CorrectOption := 2;
end;

procedure DisplayQuestion(Q: Question);
var
i: Integer;
begin
Writeln(Q.Text);
for i := 1 to 4 do
Writeln(i, '. ', Q.Options[i]);
end;

function GetAnswer: Integer;
var
UserInput: string;
begin
Readln(UserInput);
try
Result := StrToInt(UserInput);
except
Result := -1; // Некорректный ввод
end;
end;

procedure EvaluateAnswer(ChosenOption, CorrectOption: Integer);
begin
if ChosenOption = CorrectOption then
begin
Writeln('Правильный ответ!');
Inc(Score);
end
else
Writeln('Неправильный ответ.');
end;

procedure PlayQuiz;
var
i, ChosenOption: Integer;
begin
Score := 0;
for i := 1 to TotalQuestions do
begin
Writeln;
DisplayQuestion(Questions[i]);
repeat
Writeln('Введите номер правильного варианта ответа (1-4):');
ChosenOption := GetAnswer;
until (ChosenOption >= 1) and (ChosenOption
Баглан Мырзабаев
Баглан Мырзабаев
3 518
Лучший ответ
Дима Поляков Отлично) но нужно немного посложнее: необходимо, чтобы были вопросы различной степени сложности: за 200, 300, 500 и т д
А также, чтобы была графика и обязательно 2 игрока (и победитель соответственно)))
С этим помочь сможете, пожалуйста?)) Но ваш ответ лучший безусловно
Создание викторины "своя игра" на языке Паскаль достаточно просто. Вам понадобится базовое понимание синтаксиса Паскаля и работы с текстовым вводом/выводом. Ниже представлен пример кода для консольной викторины на Паскале:

```pascal
program QuizGame;

const
NumQuestions = 3;

type
Question = record
Text: string;
CorrectAnswer: string;
end;

var
Questions: array[1..NumQuestions] of Question;

procedure InitializeQuestions;
begin
// Задайте свои вопросы и правильные ответы здесь
Questions[1].Text := 'Какая столица Франции?';
Questions[1].CorrectAnswer := 'Париж';

Questions[2].Text := 'Сколько будет 2 + 2?';
Questions[2].CorrectAnswer := '4';

Questions[3].Text := 'Какой язык программирования мы изучаем?';
Questions[3].CorrectAnswer := 'Паскаль';
end;

function AskQuestion(const Q: Question): boolean;
var
UserAnswer: string;
begin
writeln(Q.Text);
write('Ваш ответ: ');
readln(UserAnswer);

Result := SameText(UserAnswer, Q.CorrectAnswer);
end;

procedure Main;
var
Score: integer;
i: integer;
begin
Score := 0;
for i := 1 to NumQuestions do
begin
if AskQuestion(Questions[i]) then
begin
writeln('Правильно!');
Inc(Score);
end
else
begin
writeln('Неправильно!');
end;
end;

writeln('Игра окончена. Ваш счет: ', Score, ' из ', NumQuestions);
end;

begin
InitializeQuestions;
Main;
end.
```

Приведенный выше код создает консольную викторину с тремя вопросами. Вы можете добавить/изменить вопросы и ответы, обновив процедуру `InitializeQuestions`.

Просто скопируйте этот код в среду разработки для Паскаля (например, Free Pascal) и запустите программу. Вам будут заданы вопросы, и вы сможете вводить свои ответы. В конце игры вы получите результаты.

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