pascalabcnet/InstallerSamples/Games/PifTableExam.pas

61 lines
1.8 KiB
ObjectPascal
Raw Permalink Normal View History

uses GraphWPF,Controls,Sounds;
var x, y: integer;
procedure NextQuestion;
begin
Window.Clear;
(x, y) := Random2(2, 9);
DrawText(GraphWindow.ClientRect,$'{x} × {y} = ?');
end;
function Оценка(ВерныхОтветов: integer): integer;
begin
case ВерныхОтветов of
10, 9: Оценка := 5;
8, 7: Оценка := 4;
4..6: Оценка := 3;
else Оценка := 2;
end;
end;
begin
Window.Title := 'Проверка таблицы умножения';
Font.Size := 40;
var l := LeftPanel(200);
l.FontSize := 16;
var sb := StatusBar;
NextQuestion;
var Результат := IntegerBox('Введите ответ:',0,100);
var b := Button('Ответить');
var КоличествоОтветов := IntegerBlock('Ответов:');
var ВерныхОтветов := IntegerBlock('Верных ответов:');
b.Click := procedure begin
if x * y = Результат then
begin
sb.Text := 'Верно!';
ВерныхОтветов += 1;
end
else
begin
sb.Text := 'Неверно :(';
end;
КоличествоОтветов += 1;
Результат := 0;
if КоличествоОтветов = 10 then // Конец опроса
begin
MessageBox.Show('Тест окончен.'#10#10'Верных ответов: ' +
ВерныхОтветов.Value + #10#10 + 'Оценка: ' + Оценка(ВерныхОтветов));
// Переход к следующему тесту
ВерныхОтветов := 0;
КоличествоОтветов := 0;
end;
NextQuestion;
end;
OnResize := procedure begin
Window.Clear;
DrawText(GraphWindow.ClientRect,$'{x} × {y} = ?');
end;
end.