program echelle; uses graph,crt; var v,p,x,y,a,b,pilote,mode,c,k:integer; (*c= couleur du pion choisie par l'usager, k=couleur pion*) r:char; n:string; (*k=couleur du pion*) (*p=pointage, x=option choisie, x,y=coordonnee*) Procedure accueil; begin cleardevice; (*Nettoie l''ecran*) setbkcolor(15); (*fond decran de couleur blanc*) setcolor(4);(*police de couleur verte*) settextstyle(3,0,4);(*police SansSerifFont, direction horizontale, grandeur 4*) outtextxy(100,100,'JEU: SERPENT ET ECHELLE'); settextstyle(4,0,2); (*Police Gothic, direction horizontale, grandeur 2*) outtextxy(200,150,'Version questionnaire'); settextstyle(3,0,3); setcolor(1); (*noms de couleur bleu*) outtextxy(100,200,'PAR: Jordan Collard et Gabrielle Germain'); Settextstyle(3,0,2); outtextxy(120,250,'PESEZ SUR ENTREE POUR COMMENCER'); setcolor(6); setlinestyle(0,$c3,1); line(25,50,25,150);(*echelle branche gauche*) line(50,50,50,150); (*echelle branche droite*) line(25,65,50,65); (*barres de l'echelle*) line(25,80,50,80); line(25,95,50,95); line(25,110,50,110); line(25,125,50,125); line(25,140,50,140); sound(264); delay(500); sound(297); delay(500); sound(330); delay(500); sound(352); delay(500); sound(396); delay(500); sound(440); delay(500); sound(495); delay(500); sound(528); delay(1000); nosound; (*fin de la chanson de debut*) settextstyle(0,0,1); readln; (*permet de voir la procedure a lecran*) end; Procedure reglements; (*instructions du jeu*) begin cleardevice; setbkcolor(14); setcolor(4); outtextxy(100,50,'Quel est votre nom?'); readln(n); outtextxy(100,90,'Bonjour '+n +'!'); delay(500); outtextxy(100,135,'Voici le deroulement du jeu:'); outtextxy(25,160,'1.Vous devez repondre a la question posee'); outtextxy(25,180,'2.Chaque bonne reponse vaut 1 point ou 2, dependamment de la difficulte'); outtextxy(25,200,' Chaque point vous fait avancer d''une case'); outtextxy(25,220,'3.Si votre reponse est fausse, vous restez a la meme case'); outtextxy(25,240,'4. Vous devez vous rendre a la derniere case avant la fin des questions'); outtextxy(25,260,'5. Si vous reussissez, vous gagnerez, sinon, vous perdrez'); outtextxy(25,280,'6. Si vous arrivez a un serpent, vous descendez'); outtextxy(25,300,'7. Si vous arrivez a une echelle, vous montez!'); outtextxy(25,320,'Meme si vous arrivez a la derniere case, vous devez repondre a toutes les '); outtextxy(25,330,'questions afin d''accumuler le plus de points possibles!'); outtextxy(25,350,'8. Il y a 10 questions au total'); outtextxy(200,390,'BONNE CHANCE '+n+'!'); readln; end; Procedure pion; (*choisir la couleur du pion*) begin cleardevice; setbkcolor(5); setcolor(15); outtextxy(50,50,n+' , choisissez la couleur de votre pion...'); outtextxy(50,100,'Vous avez le choix entre...'); outtextxy(50,150,'1. Rouge'); outtextxy(50,170,'2. Gris'); outtextxy(50,190,'3. Magenta'); readln(c); (*choix de la couleur*) if (c=1) then k:=4 (*rouge*) else if (c=2) then k:=7 (*gris*) else if (c=3) then k:=5; (*magenta*) x:=225; (*Pour s'assurer que le pion soit sur la case depart*) y:=325; end; Procedure emplacement; (*pour mettre pion au bon endroit sur la planche de jeu*) Begin case v of 0: begin x:=225; y:=325; end; 1: begin x:=275; y:=325; end; 2: begin x:=325; y:=325; end; 3: begin x:=375; y:=325; end; 4: begin x:=375; y:=275; end; 5: begin x:=325; y:=275; end ; 6: begin x:=275; y:=275; end; 7: begin x:=225; y:=275; end; 8: begin x:=225; y:=225; end ; 9: begin x:=275; y:=225; end; 10: begin x:=325; y:=225; end ; 11: begin x:=375; y:=225; end; 12: begin x:=375; y:=175; end; 13: begin x:=325; y:=175; end ; 14: begin x:=275; y:=175; end; else begin x:=225; y:=175; end; end; end; procedure question1; begin repeat cleardevice; setbkcolor(7); (*couleur de fond pour questions a 2 points*) setcolor(5); (*couleur de police a 2 points*) settextstyle(2,0,5); outtextxy(70,30,'Question 1:'); delay(50); outtextxy(70,45,'Qui est le capitaine des Canadiens de Montreal? (2 points)'); delay(50); outtextxy(75,60,'a) Koivu'); outtextxy(75,75,'b) Gionta'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); (*permet de lire le choix de reponse selectionnee*) case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+2; (*pointage*) v:=v+2; (*emplacement du pion*) end; else begin sound(341); (*Son pour une mauvaise touche*) delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question2; begin repeat cleardevice; setbkcolor(2); (*fond vert pour les questions a 1 point*) setbkcolor(0); (*police blanche pour les questions a 1 point*) settextstyle(2,0,5); outtextxy(70,30,'Question 2:'); delay(50); outtextxy(70,45,'Combien de litres de sang y a t-il dans le corps humain? (1 point)'); delay(50); outtextxy(75,60,'a) 10 L'); outtextxy(75,75,'b) 5 a 6 L'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+1; v:=v+1; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question3; begin repeat cleardevice; setbkcolor(7); setcolor(5); settextstyle(2,0,5); outtextxy(70,30,'Question 3:'); delay(50); outtextxy(70,45,'Qui est l''homme qui court le plus vite au monde?(2 points)'); delay(50); outtextxy(75,60,'a) Regis K.N Zi'); (*A verifier*) outtextxy(75,75,'b) Usan Bolt'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+2; v:=v+2; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question4; begin repeat cleardevice; setbkcolor(2); setbkcolor(0); settextstyle(2,0,5); outtextxy(70,30,'Question 4:'); delay(50); outtextxy(70,45,'Quelle est la tour tres celebre qui se situe a Paris?(1 point)'); delay(50); outtextxy(75,60,'a) La tour de Pise'); outtextxy(75,75,'b) La tour Eiffel'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+1; v:=v+1; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question5; begin repeat cleardevice; setbkcolor(7); setcolor(5); settextstyle(2,0,5); outtextxy(70,30,'Question 5:'); delay(50); outtextxy(70,45,'Ou sont situees les plus grandes pyramides? (2 points)'); delay(50); outtextxy(75,60,'a) Mexique'); outtextxy(75,75,'b) Egypte '); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+2; v:=v+2; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question6; begin repeat cleardevice; setbkcolor(2); setbkcolor(0); settextstyle(2,0,5); outtextxy(70,30,'Question 6:'); delay(50); outtextxy(70,45,'Qui est le Premier Ministre du Canada?(1 point)'); delay(50); outtextxy(75,60,'a) Jean Charest'); outtextxy(75,75,'b) Stephen Harper'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+1; v:=v+1; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question7; begin repeat cleardevice; setbkcolor(2); setbkcolor(0); settextstyle(2,0,5); outtextxy(70,30,'Question 7:'); delay(50); outtextxy(70,45,'Qui est le superheros surnomme le chevalier noir? (1 point)'); delay(50); outtextxy(75,60,'a) Superman'); outtextxy(75,75,'b) Batman'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+1; v:=v+1 end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question8; begin repeat cleardevice; setbkcolor(7); setcolor(5); settextstyle(2,0,5); outtextxy(70,30,'Question 8:'); delay(50); outtextxy(70,45,'Qui sont les premiers qui ont decouvert l''amerique?(2 points)'); delay(50); outtextxy(75,60,'a) Christophe-Colomb'); outtextxy(75,75,'b) Les Vikings'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+2; v:=v+2; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question9; begin repeat cleardevice; setbkcolor(2); setbkcolor(0); settextstyle(2,0,5); outtextxy(70,30,'Question 9:'); delay(50); outtextxy(70,45,'Quel est le film qui a fait le plus d''argent?(1 point)'); delay(50); outtextxy(75,60,'a) Titanic'); outtextxy(75,75,'b) Avatar'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+1; v:=v+1; end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; procedure question10; begin repeat cleardevice; setbkcolor(7); setcolor(5); settextstyle(2,0,5); outtextxy(70,30,'Question 10:'); delay(50); outtextxy(70,45,'Quelle est la capitale de la Thailande?(2 points)'); delay(50); outtextxy(75,60,'a) Tokyo'); outtextxy(75,75,'b) Bangkok'); outtextxy(70,90,'Faites votre choix et pesez sur ENTREE:'); readln(r); case r of 'a': outtextxy(70,115,'MAUVAISE REPONSE!'); 'b': begin outtextxy(70,115,'BONNE REPONSE! '); p:=p+2; v:=v+2 end; else begin sound(341); delay(1500); nosound; outtextxy(70,115,'VEUILLEZ CHOISIR A OU B SEULEMENT.'); outtextxy(70,125,'PESEZ SUR ENTREE POUR RECOMMENCER'); readln; end; end; until (r='a') or (r='b'); emplacement; readln; end; Procedure planche; begin cleardevice; setbkcolor(0); setcolor(15); line(200,150,200,350); (*lignes de la planche*) line(250,150,250,350); line(300,150,300,350); line(350,150,350,350); line(400,150,400,350); line(200,150,400,150); line(200,200,400,200); line(200,250,400,250); line(200,300,400,300); line(200,350,400,350); setfillstyle(1, green); fillellipse(375,250,5,35); (*serpent*) line(265,175,220,275); (*echelle*) line(285,175,240,275); line(255,195,275,195); line(246,215,266,215); line(237,235,257,235); line(228,255,248,255); settextstyle(2,0,20); outtextxy(150,50,'Planche de jeu'); (*titre de la page*) settextstyle(2,0,2); outtextxy(210,340,'DEPART'); outtextxy(210,190,'ARRIVEE'); if (x=375) and (y=225) then begin setfillstyle(10,k); fillellipse(375,225,15,15); outtextxy(100,100,'Vous etes sur le serpent! Vous allez redescendre...'); setfillstyle(1,k); fillellipse(375,275,15,15); v:=4 end else if (x=225) and (y=275) then (*echelle*) begin circle(225,275,15); outtextxy(100,100,'Vous etes sur l''echelle! Vous montez! Bravo!'); setfillstyle(1,k); fillellipse(275,175,15,15); v:=14 end else setfillstyle(1,k); fillellipse(x,y,15,15); readln; end; Procedure fin; (*nous ne sommes plus en mode graphique*) begin clrscr; gotoxy(200,100); writeln('FIN DE LA PARTIE!'); Gotoxy(50,150); writeln('Vous avez ', p,'points'); if (x=225) and (y=175) then begin gotoxy(100,200); writeln('Vous avez gagne!'); end else begin gotoxy(100,250); writeln('Vous avez perdu!'); end ; gotoxy(200,200); writeln('Si vous voulez quitter, appuyez sur e'); writeln('Si vous voulez rejouer, appuyez sur n''importe quelle touche'); readln(r); end; procedure aurevoir;(*Au revoir a l''usager avant de sortir*) begin clrscr; gotoxy(100,200); writeln('Au revoir ', n); readln; end; begin repeat Pilote:=Detect; Initgraph(Pilote,Mode,'m:/bgi'); cleardevice; p:=0; a:=0; v:=0; accueil; reglements; pion; planche; Question1; planche; Question2; planche; Question3; planche; Question4; planche; Question5; planche; Question6; planche; Question7; planche; Question8; planche; Question9; planche; Question10; planche; closegraph; fin; until (r='e'); aurevoir; end.