program tp31; uses graph, crt; var x,p: integer; pilote, mode : integer; k,y,z,w,q,e,a,f,t,u,i,m,r: char; n: string; procedure score; forward;(* ce forward permet de faire de declarer de des procedure qui ont score dedans mais de declarer*) (* score a la fin pour que p ai une valeur*) procedure intro; (*presentation du programme a venir*) Begin clrscr; setcolor(red); settextstyle(1, horizdir, 1); outtextXY(20,30,'Bienvenue dans un programme concu par Gabrielle Picotte,'); outtextXY(120,60,'Vincent Desjardin & Guillaume Belzile'); setcolor(green); outtextXY(80,100,'Ce programme permet d''exercer votre memoire.'); outtextXY(80,120,'Vous verrez appaitre a l''ecran une serie de cubes.'); outtextXY(80,140,'Votre travail est de repeter la sequence a lecran apres'); outtextXY(80,160,'la disparition des cubes. utiliser les touches: '); outtextXY(80,180,'q-w-e-r(premiere rangee),a-s-d-f(deuxieme rangee)'); outtextXY(80,200,'z-x-c-v(troisieme rangee),t-y-u-i(quatrieme rangee)'); outtextXY(80,220,'pour faire reapparaitre les cubes dans l''ordre'); setcolor(blue); outtextXY(20,300,'Appuyez sur enter si vous vous avez bien compris!'); readln; End; procedure tableau; (* grille de jeu*) begin setcolor(green); setlinestyle(0,$c3,3); line(60,40,60,440);(*ligne verticale extreme gauche*) line(580,40,580,440); (*ligne verticale extreme droite*) line(60,40,580,40); (*ligne horizontale superieure*) line(60,440,580,440); (*ligne horizontale inferieure*) line(190,40,190,440); (*premiere ligne verticale*) line(450,40,450,440); (*troisieme ligne verticale*) line(320,40,320,440); (*deuxieme ligne verticale*) line(60,140,580,140); (*premiere ligne horizontale*) line(60,240,580,240); (*deuxieme ligne horizontale*) line(60,340,580,340); (*troisieme ligne horizontale*) outtextxy(64,44,'Q'); outtextxy(194,44,'W'); outtextxy(324,44,'E'); outtextxy(454,44,'R'); outtextxy(64,144,'A'); outtextxy(194,144,'S'); (* lettre qui vont apparaitre dans le cadriller pour aider le joueur*) outtextxy(324,144,'D'); outtextxy(454,144,'F'); outtextxy(64,244,'Z'); outtextxy(194,244,'X'); outtextxy(324,244,'C'); outtextxy(454,244,'V'); outtextxy(64,344,'T'); outtextxy(194,344,'Y'); outtextxy(324,344,'U'); outtextxy(454,344,'I'); outtextxy(80,450,'Reproduire dans l''ordre(attendre la disparition des carres)'); end; procedure menu; forward;(* ce foward permet de faire revenir au menu en declarant les niveaux avant menu*) procedure niveau1; (* procedure qui permet au joeur de jouer au niveau 1 *) begin pilote:= detect; initgraph(pilote,mode,'M:\bgi'); randomize; tableau; setfillstyle(4,yellow); delay(3100); bar(62,42,188,138); delay(250); bar(192,242,318,338); delay(250); bar(452,342,578,438); delay(250); bar(452,42,578,138); setfillstyle(1,black); delay(200); bar(62,42,188,138); delay(200); bar(192,242,318,338); delay(200); bar(452,342,578,438); delay(200); bar(452,42,578,138); delay(200); cleardevice; tableau; repeat delay(100); until keypressed; m:=readkey; if m = 'q' then begin p:= p+1; setfillstyle(4,1); bar(61,41,189,139); repeat delay(100); until keypressed; m:= readkey; if m = 'x' then begin p:= p+1; setfillstyle(4,1); bar(191,241,319,339); repeat delay(100); until keypressed; m:= readkey; if m = 'i' then begin p:=p+1; bar(450,340,580,440); repeat delay(100); until keypressed; m:= readkey; if m = 'r' then begin p:=p+1; bar(450,40,580,140); end; end; end; end else outtext('vous avez appuyer sur une mauvaise touche, retour au menu'); delay(1000); cleardevice; score; menu; clrscr; score; menu; closegraph; end; procedure niveau2; (* procedure qui permet au joeur de jouer au niveau 2*) begin pilote:= detect; initgraph(pilote,mode,'M:/bgi'); randomize; tableau; setfillstyle(4,yellow); delay(3100); bar(62,42,188,138); delay(250); bar(192,242,318,338); delay(250); bar(452,342,578,438); delay(250); bar(62,142,188,238); delay(250); bar(322,42,448,138); delay(250); bar(452,142,578,238); delay(250); setfillstyle(4,black); bar(62,42,188,138); delay(200); bar(192,242,318,338); delay(200); bar(452,342,578,438); delay(200); bar(62,142,188,238); delay(200); bar(322,42,448,138); delay(200); bar(452,142,578,238); delay(200); cleardevice; tableau; repeat delay(100); until keypressed; m:=readkey; if m = 'q' then begin p:= p+1; setfillstyle(4,1); bar(62,42,188,138); repeat delay(100); until keypressed; m:= readkey; if m = 'x' then begin p:= p+1; bar(192,242,318,338); repeat delay(100); until keypressed; m:= readkey; if m = 'i' then begin p:=p+1; bar(452,342,578,438); repeat delay(100); until keypressed; m:= readkey; if m = 'a' then begin p:=p+1; bar(62,142,188,238);; repeat delay(100); until keypressed; m:= readkey; if m = 'e' then begin p:=p+1; bar(322,42,448,138); repeat delay(100); until keypressed; m:= readkey; if m = 'f' then begin p:=p+1; bar(452,142,578,238); end; end; end; end; end; end else outtext('vous avez appuyer sur une mauvaise touche, retour au menu'); delay(1000); cleardevice; score; menu; clrscr; score; end; procedure niveau3; (* procedure qui permet au joeur de jouer au niveau trois*) begin randomize; pilote:= detect; initgraph(pilote,mode,'M:/bgi'); randomize; tableau; setfillstyle(4,yellow); delay(3100); bar(62,42,188,138); delay(250); bar(62,142,188,238); delay(250); bar(62,342,188,438); delay(250); bar(192,242,318,338); delay(250); bar(322,42,448,138); delay(250); bar(322,342,448,438); delay(250); bar(452,142,578,238); delay(250); bar(452,342,578,438); setfillstyle(3,black); (*cube noir qui efface les cubes de couleurs*) delay(150); bar(62,42,188,138); delay(200); bar(62,142,188,238); delay(200); bar(62,342,188,438); delay(200); bar(192,242,318,338); delay(200); bar(322,42,448,138); delay(200); bar(322,342,448,438); delay(200); bar(452,142,578,238); delay(200); bar(452,342,578,438); delay(200); cleardevice; tableau; cleardevice; tableau; repeat(*debut proceduss compteur*) delay(20); until keypressed; m:=readkey; if m = 'q' then begin p:= p+1; setfillstyle(4,random(15)); bar(62,42,188,138);; repeat delay(100); until keypressed; m:= readkey; if m = 'a' then begin p:= p+1; bar(62,142,188,238); repeat delay(100); until keypressed; m:= readkey; if m = 't' then begin p:=p+1; bar(62,342,188,438); repeat delay(100); until keypressed; m:= readkey; if m = 'x' then begin p:=p+1; bar(192,242,318,338); repeat delay(100); until keypressed; m:= readkey; if m = 'e' then begin p:=p+1; bar(322,42,448,138); repeat delay(100); until keypressed; m:= readkey; if m = 'u' then begin p:=p+1; bar(322,342,448,438); repeat delay(100); until keypressed; m:= readkey; if m = 'f' then begin p:=p+1; bar(452,142,578,238); repeat delay(100); until keypressed; m:= readkey; if m = 'i' then begin p:=p+1; bar(452,342,578,438); end; end; end; end; end; end; end; end else outtext('vous avez appuyer sur une mauvaise touche, retour au menu'); delay(1000); cleardevice; score; menu; clrscr; score; end;(* fin du compteur*) procedure menu; begin randomize; setbkcolor(black); outtextxy(100,140,'1- Niveau 1 ( 4 images)'); outtextxy(100,170,'2- Niveau 2 ( 6 images)'); outtextxy(100,200,'3- Niveau 3 ( 8 images)'); outtextxy(100,230,'k- Sortir du programme'); k:=readkey; case k of (*selection qui permet de renvoyer le joueur au different niveau*) '1': niveau1; '2': niveau2; '3': niveau3; 'k': begin cleardevice; (* message de au revoir*) outtextxy(200,200,'Merci beaucoup d''avoir jouer'); outtextxy(210,230,n); outtextxy(220,260,' A la proxima!!!!!!!!! XD '); end; else (*Debut Section du programme qui fait apparaitre une tete de mort pour chaque mauvaise touche*) repeat pilote:= detect; initgraph(pilote,mode,'M:/bgi'); randomize; sound(500); delay(100); sound(400); delay(100); sound(200); delay(100); setcolor(green); outtextxy(60,40,' ...----.... '); setcolor(green); outtextxy(60,45,' ..-:"'''' ''''"-.. '); setcolor(green); outtextxy(60,50,' .-'' ''-. '); setcolor(green); outtextxy(60,55,' .'' . . ''. '); setcolor(green); outtextxy(60,60,' .'' . . . . .''. '); setcolor(green); outtextxy(60,65,' .'' . . . . . . . ..:. '); setcolor(green); outtextxy(60,70,' .'' . . . . . . .. . . ....::. '); setcolor(green); outtextxy(60,75,' .. . . . . . . .. . ....:IA. '); setcolor(green); outtextxy(60,80,' .: . . . . . . .. . .. .. ....:IA. '); setcolor(green); outtextxy(60,85,' .: . . .. . . . . .. . ... ....:.:VHA. '); setcolor(green); outtextxy(60,90,' ''.. . .. . . . . .. . .. . .....:.::IHHB. '); setcolor(green); outtextxy(60,95,' .:. . . . . . . . . . . ...:.:... .......:HIHMM. '); setcolor(green); outtextxy(60,100,' .:.... . . .''::''''.. . . . .:.:.:II;,. .. ..:IHIMMA '); setcolor(green); outtextxy(60,105,' '':.:.. ..::IHHHHHI::. . . ...:.::::.,,,. . ....VIMMHM '); setcolor(green); outtextxy(60,110,' .:::I. .AHHHHHHHHHHAI::. .:...,:IIHHHHHHMMMHHL:. . VMMMM '); setcolor(green); outtextxy(60,115,' .:.:V.:IVHHHHHHHMHMHHH::..:'' .:HIHHHHHHHHHHHHHMHHA. .VMMM. '); setcolor(green); outtextxy(60,120,' :..V.:IVHHHHHMMHHHHHHHB... . .:VPHHMHHHMMHHHHHHHHHAI.:VMMI '); setcolor(green); outtextxy(60,125,' ::V..:VIHHHHHHMMMHHHHHH. . .I":IIMHHMMHHHHHHHHHHHAPI:WMM '); setcolor(green); outtextxy(60,130,' ::". .:.HHHHHHHHMMHHHHHI. . .:..I:MHMMHHHHHHHHHMHV:'':H:WM '); setcolor(green); outtextxy(60,135,' :: . :.::IIHHHHHHMMHHHHV .ABA.:.:IMHMHMMMHMHHHHV:''. .IHWW '); setcolor(green); outtextxy(60,140,' ''. ..:..:.:IHHHHHMMHV'' .AVMHMA.:.''VHMMMMHHHHHV:'' . :IHWV '); setcolor(green); outtextxy(60,145,' :. .:...:''.:.:TP'' .AVMMHMMA.:. ''VMMHHHP.:... .. :IVAI '); setcolor(green); outtextxy(60,150,' .:. ''... .:"'' . ..HMMMHMMMA::. .''VHHI:::.... .:IHW'' '); setcolor(green); outtextxy(60,155,' ... . . ..:IIPPIH: ..HMMMI.MMMV:I:. .:ILLH:.. ...:I:IM '); setcolor(green); outtextxy(60,160,' : . .'''''''''' .:.V''. .. . :HMMM:IMMMI::I. ..:HHIIPPHI::''''.P:HM. '); setcolor(green); outtextxy(60,165,' :. . . .. ..:.. . :AMMM IMMMM..:...:IV'':T::I::.''.:IHIMA '); setcolor(green); outtextxy(60,170,' ''V:.. .. . .. . . . ''VMMV..VMMV :....:V:.:..:....::IHHHMH '); setcolor(green); outtextxy(60,175,' "IHH:.II:.. .:. . . . . '''' :HB'''' . . ..PI:.::.:::..:IHHMMV" '); setcolor(green); outtextxy(60,180,' :IP""HHII:. . . . . .''V:. . . ..:IH:.:.::IHIHHMMMMM" '); setcolor(green); outtextxy(60,185,' :V:. VIMA:I.. . . . .. . . .:.I:I:..:IHHHHMMHHMMM '); setcolor(green); outtextxy(60,190,' :"VI:.VWMA::. .: . .. .:. ..:.I::.:IVHHHMMMHMMMMI '); setcolor(green); outtextxy(60,195,' :."VIIHHMMA:. . . .: .:.. . .:.II:I:AMMMMMMHMMMMMI '); setcolor(green); outtextxy(60,200,' :..VIHIHMMMI...::.,:.,:!"I:!"I!"I!"V:AI:VAMMMMMMHMMMMMM'' '); setcolor(green); outtextxy(60,205,' '':.:HIHIMHHA:"!!"I.:AXXXVVXXXXXXXA:."HPHIMMMMHHMHMMMMMV '); setcolor(green); outtextxy(60,210,' V:H:I:MA:W''I :AXXXIXII:IIIISSSSSSXXA.I.VMMMHMHMMMMMM '); setcolor(green); outtextxy(60,215,' ''I::IVA ASSSSXSSSSBBSBMBSSSSSSBBMMMBS.VVMMHIMM''"'' '); setcolor(green); outtextxy(60,220,' I:: VPAIMSSSSSSSSSBSSSMMBSSSBBMMMMXXI:MMHIMMI '); setcolor(green); outtextxy(60,225,' .I::. "H:XIIXBBMMMMMMMMMMMMMMMMMBXIXXMMPHIIMM'' '); setcolor(green); outtextxy(60,230,' :::I. '':XSSXXIIIIXSSBMBSSXXXIIIXXSMMAMI:.IMM '); setcolor(green); outtextxy(60,235,' :::I:. .VSSSSSISISISSSBII:ISSSSBMMB:MI:..:MM '); setcolor(green); outtextxy(60,240,' ::.I:. '':''SSSSSSSISISSXIIXSSSSBMMB:AHI:..MMM. '); setcolor(green); outtextxy(60,245,' ::.I:. . ..:"BBSSSSSSSSSSSSBBBMMMB:AHHI::.HMMI '); setcolor(green); outtextxy(60,250,' :..::. . ..::":BBBBBSSBBBMMMB:MMMMHHII::IHHMI '); setcolor(green); outtextxy(60,255,' '':.I:... ....:IHHHHHMMMMMMMMMMMMMMMHHIIIIHMMV" '); setcolor(green); outtextxy(60,260,' "V:. ..:...:.IHHHMMMMMMMMMMMMMMMMHHHMHHMHP'' '); setcolor(green); outtextxy(60,265,' '':. .:::.:.::III::IHHHHMMMMMHMHMMHHHHM" '); setcolor(green); outtextxy(60,270,' "::....::.:::..:..::IIIIIHHHHMMMHHMV" '); setcolor(green); outtextxy(60,275,' "::.::.. .. . ...:::IIHHMMMMHMV" '); setcolor(green); outtextxy(60,280,' "V::... . .I::IHHMMV"'' '); setcolor(green); outtextxy(60,285,' ''"VHVHHHAHHHHMMV:"'' '); setcolor(green); outtextxy(60,300,'Vous avez rentre une mauvaise commande, FERMETURE DU PROGRAMME!!!'); nosound; k:=readkey; until k < '4'; clrscr; menu; closegraph; end; (*Fin Section du programme qui fait apparaitre une tete de mort pour chaque mauvaise touche*) readln; end; procedure score; (* procedure qui permet au joueur de voir son score*) begin case p of 0: outtextxy(100,240,'Votre score est 0!!!! t un nullard'); 1: outtextxy(100,240,'Votre score est 1!!'); 2: outtextxy(100,240,'Votre score est 2!!'); 3: outtextxy(100,240,'Votre score est 3!!'); 4: outtextxy(100,240,'Votre score est 4!!'); 5: outtextxy(100,240,'Votre score est 5!!'); 6: outtextxy(100,240,'Votre score est 6!!'); 7: outtextxy(100,240,'Votre score est 7!!'); 8: outtextxy(100,240,'Votre score est 8!!'); 9: outtextxy(100,240,'Votre score est 9!!'); 10: outtextxy(100,240,'Votre score est 10!!'); 11: outtextxy(100,240,'Votre score est 11!!'); 12: outtextxy(100,240,'Votre score est 12!!'); 13: outtextxy(100,240,'Votre score est 13!!'); 14: outtextxy(100,240,'Votre score est 14!!'); 15: outtextxy(100,240,'Votre score est 15!!'); 16: outtextxy(100,240,'Votre score est 16!!'); 17: outtextxy(100,240,'Votre score est17!!'); 18: outtextxy(100,240,'Votre score est 18!!'); else outtextxy(100,240,'Vous etes trop fort on ne compte plus vos points'); end; end; (*cleardevice*) begin pilote:= detect; initgraph(pilote,mode,'M:/bgi'); (*ouverture du mode graphique*) intro; cleardevice; randomize; setbkcolor(black); textcolor(random(15)); outtextxy(80,60,'Bonjour, bienvenue au super jeux de memoire GUYVINGAB!!!'); outtextxy(100,90,'Quel est ton nom?'); readln(n); outtextxy(25,120,'Alors est-tu pret a jouer? Alors Choisit un niveau de difficulte:'); p:=0; menu; closegraph; readln; end.