program MENUppp; uses crt, graph; var A:char; N,T,U:string; pilote, mode,x1,R,C,W: integer; charx,chary:integer; {variables de graphique et variable du tir} b1,b2,b3,b4:integer; {variables position du ballon} resultat:integer; {score de lusage} info:integer; {les informations complementaires} nom:string; procedure charpuissance; begin outtextxy(40,385,'PUISSANCE'); rectangle(10,400,634,420); readln; charx:=12; delay(20); repeat setfillstyle(1,red); bar(12,402,charx,418); delay(33); inc(charx,20); until (keypressed) or (charx>632); delay(30); end; procedure chardirection; begin outtextxy(40,335,'DIRECTION'); rectangle(10,350,634,375); readln; chary:=12; delay(20); repeat setfillstyle(1,red); bar(12,352,chary,373); delay(33); inc(chary,20); until (keypressed) or (chary>632); delay(30); end; procedure poteau; (*procedure pour les poteaux de football*) begin outtextxy(245,40,'JEU DE FOOTBALL'); setfillstyle(9,green); bar(1,310,650,630); setfillstyle(1,yellow); bar(195,40,200,240); bar(400,40,405,240); bar(195,240,405,245); bar(298,245,303,350); end; procedure ballondessus; (*procedure qui servira quand le ballon est en deplacement*) begin setfillstyle(1,brown); fillellipse(b1,b2,b3,b4); setcolor(white); line(b1,(b2-20),b1,(b2+20)); line((b1-3),(b2-20),(b1+3),(b2-20)); line((b1-3),(b2-10),(b1+3),(b2-10)); line((b1-3),b2,(b1+3),b2); line((b1-3),(b2+10),(b1+3),(b2+10)); line((b1-3),(b2+20),(b1+3),(b2+20)); delay(500); end; procedure ballonface; (*procedure qui servira quand le ballon est en deplacement*) begin setfillstyle(1,brown); fillellipse(b1,b2,b3,b3); delay(500); end; procedure reussite; (*procedure en cas de reussite*) begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,50); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,50); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; sound(349); delay(200); nosound; delay(20); sound(349); delay(200); nosound; sound(392); delay(200); nosound; sound(349); delay(200); nosound; sound(392); delay(200); sound(440); delay(600); nosound; Delay(1000); end; procedure echec1; (*Procedure en cas d''echec*) begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,20); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,20); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; sound(370); delay(300); nosound; sound(349); delay(300); nosound; sound(329); delay(300); nosound; sound(311); delay(800); nosound; Delay(1000); end; procedure echec2; begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,50); inc(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,50); inc(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; sound(370); delay(300); nosound; sound(349); delay(300); nosound; sound(329); delay(300); nosound; sound(311); delay(800); nosound; Delay(1000); end; procedure echec3; begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,50); dec(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,50); dec(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; sound(370); delay(300); nosound; sound(349); delay(300); nosound; sound(329); delay(300); nosound; sound(311); delay(800); nosound; Delay(1000); end; procedure echec4; begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,20); dec(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,20); dec(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; sound(370); delay(300); nosound; sound(349); delay(300); nosound; sound(329); delay(300); nosound; sound(311); delay(800); nosound; Delay(1000); end; procedure echec5; begin clrscr; setfillstyle(1,black); bar(1,1,640,630); poteau; b1:=300; b2:=450; b3:=30; b4:=50; delay(500); W:=0; repeat ballondessus; dec(b2,20); inc(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); ballonface; dec(b2,20); inc(b1,30); dec(b3,3); dec(b4,3); delay(100); cleardevice; poteau; inc(W); until W=8; ballondessus; Delay(1000); end; procedure bonhomme; (*la procedure Bonhomme pour afficher Rejean*) begin b1:=350; b2:=200; b3:=100; b4:=150; setfillstyle(1,brown); bar(b1-250,b2-70,b1-240,b2+70); {poteau} setcolor(white); {panneau} rectangle(b1-340,b2-190,b1-50,b2-70); setfillstyle(1,yellow); {bras droit} bar(b1-255,b2-20,b1-235,b2+30); bar(b1-235,b2,b1-100,b2+10); setfillstyle(1,brown); bar(b1-250,b2-10,b1-240,b2); bar(b1-250,b2+10,b1-240,b2+20); setfillstyle(1,yellow); bar(b1+100,b2,b1+200,b2+10);{bras gauche} bar(b1+200,b2-100,b1+210,b2+10); bar(b1+180,b2-140,b1+230,b2-100); bar(b1+155,b2-110,b1+180,b2-100); bar(b1+180,b2-170,b1+190,b2-140); bar(b1+200,b2-170,b1+210,b2-140); bar(b1+220,b2-170,b1+230,b2-140); setfillstyle(1,yellow);{pied gauche} bar(b1-75,b2+100,b1-65,b2+200); fillellipse(b1-115,b2+200,50,15); setfillstyle(1,yellow);{pied droit} bar(b1+65,b2+100,b1+75,b2+200); fillellipse(b1+115,b2+200,50,15); setfillstyle(1,brown);{ballon} fillellipse(b1,b2,b3,b4); setcolor(white); line(b1,(b2-100),b1,(b2+100)); line((b1-3),(b2-100),(b1+3),(b2-100)); line((b1-3),(b2-50),(b1+3),(b2-50)); line((b1-3),b2,(b1+3),b2); line((b1-3),(b2+50),(b1+3),(b2+50)); line((b1-3),(b2+100),(b1+3),(b2+100)); setfillstyle(1,white); fillellipse(b1-35,b2-50,20,40); fillellipse(b1+35,b2-50,20,40); setfillstyle(1,black); fillellipse(b1-35,b2-50,8,8); fillellipse(b1+35,b2-50,8,8); setcolor(white); arc(b1,b2+6,210,330,75); arc(b1,b2+7,210,330,75); arc(b1,b2+8,210,330,75); arc(b1,b2+9,210,330,75); arc(b1,b2+10,210,330,75); end; procedure jeu; (*la procedure jeu*) begin clrscr; pilote:=detect; initgraph(pilote, mode, 'M:\bgi'); delay(1000); cleardevice; poteau; delay(50); chardirection; delay(40); charpuissance; delay(50); cleardevice; if (chary>250) and (chary<450) and (charx>450) then resultat:=1; if (chary>250) and (chary<450) and (charx<450) then resultat:=2; if (chary<150) and (charx>450) then resultat:=3; if (chary>450) and (charx>450) then resultat:=4; if (chary<450) and (charx<450) then resultat:=5; if (chary>450) and (charx<450) then resultat:=6; inc(C); delay(100); case resultat of (*relie le resultat obtenu avec les animations graphiques*) 1: begin reussite; inc(R); end; 2: echec1; 3: echec3; 4: echec2; 5: echec4; 6: echec5; end; cleardevice; randomize; bonhomme; info:=random(5); (*procedure pour l''affichage des informations apres une partie*) case info of 0: begin outtextxy(20,42,'Saviez vous que le stade le'); outtextxy(20,52,'plus onereux de la NFL est'); outtextxy(20,62,'le Cowboy''s Stadium, avec un'); outtextxy(20,72,'cout de 1,15 milliards de'); outtextxy(20,82,'dollars US'); end; 1: begin outtextxy(20,42,'Saviez vous que l''equipe'); outtextxy(20,52,'ayant remporte le plus de'); outtextxy(20,62,'coupes Grey est les Eskimos'); outtextxy(20,72,'d''Edmonton, avec 13 victoires'); end; 2: begin outtextxy(20,42,'Saviez vous que l''equipe'); outtextxy(20,52,'ayant remporte le plus de'); outtextxy(20,62,'Super Bowl est les Steelers'); outtextxy(20,72,'de Pittsburg, avec 6 victoires'); end; 3: begin outtextxy(20,42,'Saviez vous que 6 stades dans le'); outtextxy(20,52,'football universitaire americain'); outtextxy(20,62,'comptent plus de 80 000 places,'); outtextxy(20,72,'le Michigan Stadium en comptant'); outtextxy(20,82,'pas moins de 109 000'); end; 4: begin outtextxy(20,42,'Saviez vous que le joueur ayant'); outtextxy(20,52,'participe au plus de match des'); outtextxy(20,62,'etoiles consecutifs dans l''histoire'); outtextxy(20,72,'de la NFL est Merlin Olsen, avec 14'); outtextxy(20,82,'participations consecutives'); end; 5: begin outtextxy(20,42,'Saviez vous que le plus long Field'); outtextxy(20,52,'Goal de l''histoire de la NFL est de'); outtextxy(20,62,'63 verges, fait par Tom Dempsey,'); outtextxy(20,72,'en 1970 pour les Saints de Nouvelle-'); outtextxy(20,82,'Orlean'); end; 6: begin outtextxy(20,42,'Saviez vous que le joueur de la NFL'); outtextxy(20,52,'ayant accumule le plus de verges par'); outtextxy(20,62,'passe de sa carriere est Brett Favre'); outtextxy(20,72,'avec plus de 71 000 verges. Sa'); outtextxy(20,82,'carriere n''est toujours pas termine'); end; 7: begin outtextxy(20,42,'Saviez vous que le joueur de la NFL'); outtextxy(20,52,'ayant accumule le plus de verges au'); outtextxy(20,62,'sol est Emitt Smith, avec 31 225'); outtextxy(20,72,'verges. Sa carriere s''est termine'); outtextxy(20,82,'en 2004'); end; 8: begin outtextxy(20,42,'Saviez vous que le joueur de la NFL'); outtextxy(20,52,'ayant accumule le plus de touches en'); outtextxy(20,62,'carriere est Jerry Rice, avec 208'); outtextxy(20,72,'touche. Sa carriere a pris fin en 2004'); end; 9: begin outtextxy(20,52,'Saviez vous que le joueur de la NFL'); outtextxy(20,62,'ayant accumule le plus de sacs du'); outtextxy(20,72,'corps est Bruce Smith, avec 200.'); end; 10:begin outtextxy(20,42,'Saviez vous que la seule equipe '); outtextxy(20,52,'de la NFL a etre possedee par des'); outtextxy(20,62,'citoyens est les Packers de Green'); outtextxy(20,72,'Bay. Avec les nouveaux reglements'); outtextxy(20,82,'de la NFL, une telle organisation'); outtextxy(20,92,'ne pourrait pas etre possible'); end; end; delay(8000); end; procedure menu; begin (*Procedure de l''affichage du menu*) pilote:= detect; initgraph(pilote,mode,'m:\bgi'); bonhomme; outtextxy(25,31,'Rebonjour '); outtextxy(105,31,N); outtextxy(25,61,'J - Jouer'); outtextxy(25,71,'C - Comment jouer'); outtextxy(25,81,'Q - Sortie'); A := upcase(readkey); end; Procedure aide; (*affiche la procedure d''aide*) begin clrscr; setfillstyle(1,0); bar(0,0,1000,1000); bonhomme; outtextxy(25,20,'Alors,'); outtextxy(75,20,N); outtextxy(25,30,'Voici comment fonctionne le jeu:'); outtextxy(25,40,'1-Dans le menu, choisissez'); (*les instructions du jeu apparaiterons dans la pancarte de Rejean*) outtextxy(25,50,' l''option 1'); outtextxy(25,60,'2-Pour choisir votre'); outtextxy(25,70,' puissance et votre direction'); outtextxy(25,80,' appuyez sur la touche ENTREE'); outtextxy(25,90,' quand vous le voulez'); delay(8000); cleardevice; bonhomme; outtextxy(25,20,'3-Pour reussir le placement,'); outtextxy(25,30,' vous devez choisir une direction'); outtextxy(25,40,' dans le milieu de la barre de'); outtextxy(25,50,' direction et une puissance'); outtextxy(25,60,' maximale'); outtextxy(25,70,'4-Une fois vos parametres'); outtextxy(25,80,' rentres, appuyez sur ENTREE'); outtextxy(25,90,' pour faire bouger le ballon'); delay(8000); cleardevice; bonhomme; outtextxy(25,20,'5-Vous avez 10 esais a'); outtextxy(25,30,' tenter pour avoir le plus'); outtextxy(25,40,' de placement reussit'); outtextxy(25,50,'6-Des stastiques vous'); outtextxy(25,60,' seront affichees suite a'); outtextxy(25,70,' votre performance'); delay(8000); cleardevice; end; procedure choix; (*Procedure a suivre durant le menu*) begin if (A = 'J') (*Si le joueur entre la lettre J alors la procedure jeu sera lancee*) then jeu else if (A = 'C') (*Si le joueur entre la lettre C alors la procedure Aide sera lancee*) then aide else if ( A='Q') (*Si le joueur entre la lettre Q alors la procedure de fermeture sera lancee*) then else begin clrscr; bar(0,0,1000,1000); setbkcolor(black); outtextxy(20,20,'Choisissez entre J, C et Q'); (*Si le joueur entre une lettre*) outtextxy(20,30,'Pressez ENTREE pour revenir au menu'); (*inconnue alors le joueur sera rappele a l''ordre*) readln; end; end; begin clrscr; pilote:= detect; initgraph(pilote,mode,'m:\bgi'); cleardevice; bonhomme; settextstyle(sansseriffont,horizdir,6); outtextxy(20,21,'FIELD GOAL'); settextstyle(sansseriffont,horizdir,1); outtextxy(25,81,'Par Marc-Olivier Hetu'); outtextxy(25,101,'et Julien Huel'); delay(5000); cleardevice; bonhomme; settextstyle(defaultfont,horizdir,1); outtextxy(25,50,'Bonjour, je m''appel Rejean.'); outtextxy(25,60,'et je vais te guider durant'); outtextxy(25,70,'ta periode de divertissement'); delay(8000); cleardevice; bonhomme; outtextxy(30,30,'Quel est ton nom de joueur? '); gotoxy(10,5); readln(N); clrscr; setfillstyle(1,0); bar(0,0,1000,1000); bonhomme; outtextxy(20,60,'Bonjour '); outtextxy(80,60,N); outtextxy(20,70,'Bienvenue dans l''equipe!'); delay(4000); repeat clrscr; menu; choix; until (A = 'Q'); begin clrscr; setfillstyle(1,0); bar(0,0,1000,1000); setbkcolor(black); settextstyle(sansseriffont,horizdir,5); (*Ecrit un message d''au revoir*) setcolor(white); outtextxy(100,100,'Au Revoir'); outtextxy(300,100,N); delay(500); sound(349); (*joue un son de victoire pour epater la galerie*) delay(200); nosound; delay(20); sound(349); delay(200); nosound; sound(392); delay(200); nosound; sound(349); delay(200); nosound; sound(392); delay(200); sound(440); delay(600); nosound; x1:=-300; (*Point de depart du ballon*) repeat cleardevice; setfillstyle(1,brown); (*choisit la couleur et la texture du ballon *) fillellipse(x1,300,150,80); (*Parametre de dimension Ballon*) setfillstyle(1,white); (*choisit la couleur et la texture des lignes sur le ballon *) bar(x1-90,302,x1+90,298); (*Parametres de dimension lignes*) bar(x1-60,310,x1-56,290); bar(x1-30,310,x1-26,290); bar(x1,310,x1-4,290); bar(x1+30,310,x1+34,290); bar(x1+60,310,x1+64,290); inc(x1,10); delay(70); until x1=900; (*Quand la position du ballon atteint une position en X de 900, la procedure arrete*) settextstyle(sansseriffont,horizdir,3); (*Ecrit un message d''au revoir*) outtextxy(100,100,'Au revoir '); case R of (*lie le nombre de partie jouee gagnee au nombre en lettre*) 0: T:='zero'; 1: T:='une'; 2: T:='deux'; 3: T:='trois'; 4: T:='quatre'; 5: T:='cinq'; 6: T:='six'; 7: T:='sept'; 8: T:='huit'; 9: T:='neuf'; 10: T:='dix'; 11..1000: T:='Vous avez triche en faisant plus de 10 parties'; end; Case C of (*lie le nombre de partie jouee au nombre en lettre*) 0: U:='zero'; 1: U:='une'; 2: U:='deux'; 3: U:='trois'; 4: U:='quatre'; 5: U:='cinq'; 6: U:='six'; 7: U:='sept'; 8: U:='huit'; 9: U:='neuf'; 10: U:='dix'; 11: U:='onze'; 12: U:='douze'; 13: U:='treize'; end; outtextxy(100,120,'Voici votre nombre de victoires'); (*Affiche le nombre de victoire du joueur et le nombre de partie fait*) outtextxy(200,140,T); outtextxy(200,160,'sur'); outtextxy(200,180,U); outtextxy(200,200,'parties'); readln; end; end.