No to mam kolejny Brick.
Kod: Zaznacz cały
Program Gra;
Uses crt, dos;
Label Menu, Poczatek, Start, Koniec;
Type
Pytanie = record
Question, a, b, c, d : string;
Answer : char;
End;
Var
q : array [1..150] of Pytanie;
wybor, x, y : Byte;
punkty : Integer;
klawisz : Char;
Procedure Obramowanie;
Var a, b : Byte;
Begin
For b:=3 to 20 do
Begin
a:= 2;
gotoxy (a,b);
Writeln (chr(186));
End;
For b:= 3 to 20 do
Begin
a:= 25;
gotoxy (a,b);
Writeln (chr(186));
End;
For a:= 3 to 25 do
Begin
b:= 2;
gotoxy (a,b);
Writeln (chr(205));
End;
For a:= 3 to 25 do
Begin
b:= 20;
gotoxy (a,b);
Writeln (chr(205));
End;
Gotoxy(2,2);
Writeln (chr(201));
Gotoxy(2,20);
Writeln (chr(200));
Gotoxy(25,2);
Writeln (chr(187));
Gotoxy(25,20);
Writeln (chr(188));
End;
Function Pytaj(q : Pytanie): Boolean;
Var Odp : char;
Begin
Clrscr;
Writeln (q.question);
Writeln (q.a);
Writeln (q.b);
Writeln (q.c);
Writeln (q.d);
Readln (Odp);
If Odp = q.answer Then
Pytaj := True
Else
Pytaj := False;
End;
BEGIN
Punkty := 0;
Randomize;
Cursoroff;
Menu:
Writeln ('Witaj !');
Writeln;
Writeln ('1. Nowa gra');
Writeln ('2. Samouczek');
Writeln ('3. Ustawienia');
Writeln ('4. Wyj',chr(152),'cie');
Readln (wybor);
clrscr;
Case wybor of
1:
Begin
Obramowanie;
Poczatek:
x:= 3;
y:= 3;
Gotoxy (x,y);
Writeln (chr(254));
Start:
klawisz:= readkey;
Case Klawisz of
'a': dec(x);
's': inc(y);
'w': dec(y);
'd': inc(x);
End;
If (x > 24) Then x:= 24;
If (y > 19) Then y:= 19;
If (x < 3) Then x:= 3;
If (y < 3) Then y:= 3;
If (x = 24) and (y = 19) Then Goto Koniec;
Clrscr;
Gotoxy (x,y);
Writeln (chr(254));
Obramowanie;
Goto Start;
q[1].question := 'Jaka pojemnosc ma dyskietka 5.25 cala (Podwojnej gestosci) ?';
q[1].a := 'A. 1.44MB';
q[1].b := 'B. 5.25MB';
q[1].c := 'C. 360Kb';
q[1].d := 'D. 520Kb';
q[1].answer := 'c';
q[2].question := 'Ile to 2 + 2 ?';
q[2].a := 'A. 1';
q[2].b := 'B. 2';
q[2].c := 'C. 3';
q[2].d := 'D. 4';
q[2].answer := 'd';
q[3].question := 'Ile to 3! ?';
q[3].a := 'A. 3';
q[3].b := 'B. 6';
q[3].c := 'C. 9';
q[3].d := 'D. 12';
q[3].answer := 'b';
q[4].question := 'Inne pytanie (Odpowiedz to: C)';
q[4].a := 'A. 3';
q[4].b := 'B. 6';
q[4].c := 'C. 9';
q[4].d := 'D. 12';
q[4].answer := 'c';
If ((x = 4) and (y = 4)) Then
Begin
Pytaj(q[(1+Random(4))]);
If Pytaj(q[(1+Random(4))]) = True Then
Begin
Inc (Punkty);
Writeln ('Dobrze, jedziesz dalej!');
Writeln ('Aktualny stan punkt',chr(162),'w: ',punkty);
Goto Start;
End
Else
Begin
Dec (Punkty);
Writeln (chr(141),'le, wracasz na pocz',chr(165),'tek!');
Writeln ('Aktualny stan punkt',chr(162),'w: ',punkty);
Goto Start;
End;
End;
Koniec:
Clrscr;
Goto Menu;
End;
2:
Begin
End;
3:
Begin
End;
4: Halt;
End;
END.
Czy jakaś mądra głowa jest mi w stanie powiedzieć dlaczego jak najadę na podane w programie pole (x=4 i y=4) to nic się nie dzieje ??
Powinno się uruchomić losowe pytanie od 1 pytania do 4 pytania.