program tp3;
uses crt,graph;
var x,y,r,s,t,v,w,q,p,h : integer;
var j,a,b,qstring,pstring: string;



procedure fin;     {pour voir la fin les reponses sont : d,d,c,b,d}
begin
cleardevice;
settextstyle(2,0,5);
setcolor(1);
outtextxy(100,300,'Voulez vous rejouer? O/N');
B:=readkey;

end;

procedure boom ;
begin
setbkcolor(white);
setfillstyle(9,red);
bar(0,0,640,200);  {rectangle de separation}
setfillstyle(1,blue);
bar(10,10,100,50);  {rectangle de pointage}
setfillstyle(1,yellow);
bar(10,210,630,250); {rectangle d'indice}
setfillstyle(1,darkgray);
bar(120,20,630,190); {rectangle bombe}
setfillstyle(1,white);
fillellipse(140,40,10,10); {bouton}
setfillstyle(1,brown);
fillellipse(140,80,10,10); {bouton}
setfillstyle(1,red);
fillellipse(140,120,10,10); {bouton}
setfillstyle(1,blue);
fillellipse(140,160,10,10); {bouton}
setfillstyle(1,lightgray);
bar(180,30,600,180);       {decompte}

r:=400 ;
t:=100;
v:=400 ;
w:=100;
s:=90;
repeat
s:=s+10;
r:=r+50;
t:=t+20;
v:=v-50;
w:=w-30;
setfillstyle(1,red);
delay(100);
fillellipse(r,t,s,s);
delay(120);
fillellipse(v,w,s,s);
fillellipse(r,w,s,s);
delay(140);
fillellipse(v,t,s,s);
fillellipse(400,w,s,s);
fillellipse(400,t,s,s);
until r=700;
setcolor(1);
settextstyle(0,0,15);
outtextxy(100,100,'BOOM!');
delay(3000);
sound(50);
delay(150);
sound(120);
delay(150);
sound(50);
delay(5000);
nosound;
fin;
end;


procedure vie;
begin
sound(600);
delay(150);
nosound;
delay(50);
sound(400);
delay(300);
nosound;
setcolor(12);
if q>0 then
begin
dec(q);
setbkcolor(white);
setfillstyle(1,darkgray);
bar(120,20,630,190); {rectangle bombe}
setfillstyle(1,white);
fillellipse(140,40,10,10); {bouton}
setfillstyle(1,brown);
fillellipse(140,80,10,10); {bouton}
setfillstyle(1,red);
fillellipse(140,120,10,10); {bouton}
setfillstyle(1,blue);
fillellipse(140,160,10,10); {bouton}
setfillstyle(1,lightgray);
bar(180,30,600,180);       {decompte}
setfillstyle(1,lightgray);
bar(180,30,600,180);
settextstyle(0,0,8);
str(q,qstring);
outtextxy(210,75,qstring);
end
else boom;
end;

procedure point ;
begin
sound(400);
delay(150);
nosound;
delay(50);
sound(600);
delay(300);
nosound;
setcolor(14);
inc(p,1);
setbkcolor(white);
setfillstyle(1,blue);
bar(10,10,100,50);  {rectangle de pointage}
settextstyle(0,0,3);
str(p,pstring);
outtextxy(30,20,pstring);
end;

procedure boite;
begin
setbkcolor(white);
setfillstyle(9,red);
bar(0,0,640,200);  {rectangle de separation}
setfillstyle(1,blue);
bar(10,10,100,50);  {rectangle de pointage}
setfillstyle(1,yellow);
bar(10,210,630,250); {rectangle d'indice}
setfillstyle(1,darkgray);
bar(120,20,630,190); {rectangle bombe}
setfillstyle(1,white);
fillellipse(140,40,10,10); {bouton}
setfillstyle(1,brown);
fillellipse(140,80,10,10); {bouton}
setfillstyle(1,red);
fillellipse(140,120,10,10); {bouton}
setfillstyle(1,blue);
fillellipse(140,160,10,10); {bouton}
setfillstyle(1,lightgray);
bar(180,30,600,180);       {decompte}

setcolor(14);
settextstyle(0,0,3);
outtextxy(30,20,pstring);

setcolor(12);
settextstyle(0,0,8);
outtextxy(210,75,qstring);

end;





procedure q5;
begin
cleardevice;
boite;
settextstyle(0,0,0);

setcolor(darkgray);
outtextxy(50,220,'En terme de population, Bordeau detient quel rang en France?');
outtextxy(100,340,'a) cinquieme');
outtextxy(450,340,'b) sixieme');
outtextxy(100,400,'c) septieme');
outtextxy(450,400,'d) neuvieme');
end;

procedure q4;
begin
cleardevice;
boite;
settextstyle(0,0,0);

setcolor(darkgray);
outtextxy(50,220,'Quel est l''element toujours present dans un organisme vivant?');
outtextxy(100,340,'a) hydrogene');
outtextxy(450,340,'b) carbone');
outtextxy(100,400,'c) oxygene');
outtextxy(450,400,'d) or');
end;


procedure q3;
begin
cleardevice;
boite;
settextstyle(0,0,0);
setcolor(darkgray);
outtextxy(50,220,'En quelle annee l''homme a marcher sur la lune?');
outtextxy(100,340,'a) 1966 ');
outtextxy(450,340,'b) 1967');
outtextxy(100,400,'c) 1969');
outtextxy(450,400,'d) 1970');
end;

procedure q2;
begin
cleardevice;
boite;
settextstyle(0,0,0);
setcolor(darkgray);
outtextxy(50,220,'Quel film n''a pas gagner l''oscar du meilleur film?');
outtextxy(100,340,'a) La liste de Schindler');
outtextxy(450,340,'b) Titanic');
outtextxy(100,400,'c) Braveheart');
outtextxy(450,400,'d) Fight Club ');
end;

procedure q1;
begin
q:=4 ;
p:=0;
boite;
settextstyle(0,0,0);
setcolor(darkgray);
outtextxy(50,220,'Les crabes des cocotiers?');
outtextxy(100,340,'a) Mesurent un metre');
outtextxy(350,340,'b) Peuvent briser des noix de cocos');
outtextxy(100,400,'c) Grimpent au arbres');
outtextxy(350,400,'d) Toutes ses reponses');
end;

procedure choix5;
begin
repeat
A:=upcase(readkey);
if (A='A') then begin vie;q5;end;
if (A='B') then begin vie;q5;end;
if (A='C') then begin vie;q5;end;
until (A='D');
point;fin;
end;

procedure choix4;
begin
repeat
A:=upcase(readkey);
if (A='A') then begin vie;q4;end;
if (A='C') then begin vie;q4;end;
if (A='D') then begin vie;q4;end;
until (A='B');
point;q5;choix5;
end;

procedure choix3;
begin
repeat
A:=upcase(readkey);
if (A='A') then begin vie;q3;end;
if (A='B') then begin vie;q3;end;
if (A='D') then begin vie;q3;end;
until (A='C');
point;q4;choix4;
end;

procedure choix2;
begin
repeat
A:=upcase(readkey);
if (A='A') then begin vie;q2;end;
if (A='B') then begin vie;q2;end;
if (A='C') then begin vie;q2;end;
until(A='D');
point;q3;choix3;
end;

procedure choix1;
begin
repeat
A:=upcase(readkey);
if (A='A') then begin vie;q1;end;
if (A='B') then begin vie;q1;end;
if (A='C') then begin vie;q1;end;
until(A='D');
point;q2;choix2;
end;


begin

clrscr;
gotoxy(25,25);
write('quel est votre nom   ');
readln(j);
clrscr;
gotoxy(20,30);
writeln('Bonjour  ',j, '!');
delay(2000);
gotoxy(25,25);
writeln('bienvenue au jeu de la bombe');
delay(3000);
clrscr;
gotoxy(10,10);
write('le moment venue,');
gotoxy(11,11);
write('vous allez devoir appuyer sur la lettre');
gotoxy(12,12);
write('avec le choix de reponse choisi!');
gotoxy(13,13);
write('si la bonne reponse est choisi, vous allez recevoir un point et');
gotoxy(12,14);
write('passer a la prochaine question');
gotoxy(11,15);
write('si la mauvaise reponse est choisie, vous allez perdre une vie');
gotoxy(10,16);
write('et vous allez devoir reessayer jusqu''a temps');
gotoxy(11,17);
write('que la bonne reponse est trouve');
gotoxy(1,19);
write('ATTENTION, vous ne pourrez pas quitter le jeu tant que vous ne reussisez pas les 5 questions');
gotoxy(20,24);
write('Appuyez deux fois sur Entree pour jouer!');
readln;

x:=detect;
initgraph(x,y,'m:/bgi');

repeat
q:=4;
p:=0;
A:=upcase(readkey);
q1;
choix1;
until (B='n');end.