pascalabcnet/InstallerSamples/Games/PifTableExam1.pas

63 lines
1.9 KiB
ObjectPascal
Raw Permalink Normal View History

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