Vous êtes sur la page 1sur 27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

TAROT AFRICAIN
Projet de C, IF3

Mots clefs :jeu de carte, tarot, structure, langage C, passage par rfrence

1/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

Je remerc e pour le prsent rapport !sraf "a#er et !le$andre %a&or e a ns 'ue l('u pe ense gnante d( nformat 'ue pour leur a de, sout ent , et conse l en mat )re de programmat on*

Remerciements

2/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

TAROT AFRICAIN
+emerc ements ,omma re
p2 p3 pp. p. p. p7 p7 p7 p7 p7 p7 p7 p7 p7 p7 p7 p7 p7 p7 p3 p3 p3 p3 p3 p4

I] Introduction II] Analyse du sujet


2*1/ +eprsentat on de l( nformat on 2*2/ !lgor t0me pr nc pal 2*3/ !lgor t0mes seconda res
2*3*11/ Au_sui ant!" 2*3*12/ A##ic$e_cartes!" 2*3*13/ A##ic$e_nom_joueur!" 2*3*1-/ A##ic$e_pari!" 2*3*1./ A##ic$e_table!" 2*3*12/ %reation_joueur!" 2*3*17/ %ree_pioc$e!" 2*3*13/ &istribuer!" 2*3*14/ Faire_compte!" 2*3*11/ 'ouer_manuel!" 2*3*11/ 'ouer_(ero_carte!" 2*3*12/ )elan*e_pioc$e!" 2*3*12/ )ise_automati+ue!" 2*3*13/ ,aisie_pari!" 2*3*1-/ ,-ap!" 2*3*1./ .ri_croissant!" 2*3*12/ .rou e_carte!" 2*3*17/ /aleur_interdite!"

III] Problmes rencontrs


3*1/ Pro&l)mes d(ordre algor t0m 'ue 3*2/ Pro&l)mes d(ordre s5nta$ 'ue

IV] Guide d utilisation V] Conclusion VI] Anne!e


2*1/ ,ource

p11 p11 p12

3/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

I] Introduction
%e prsent rapport est rd g dans le cadre du cours de programmat on en C 6IF3/ pour prsenter le projet 'ue j(a programm* %e sujet tant l &re, j(a c0o s , a7ec l(accord de mon professeur, de 8P de programmer l('u 7alent d(un jeu de carte pour PC* Ce jeu de carte se joue 9 'uatre, o&l gato rement* :n ut l se les 21 atouts d(un jeu de tarot et l(e$cuse* %e pr nc pe du jeu est de pronost 'uer le nom&re de pl 'ue l(on pourra remporter 9 la 7ue de ses cartes, et de ral ser ensu te ce par pendant le jeu* :n d& te le crd t de po nt du joueur de l(erreur sur le par 'u( l a fa t* %e jeu s(arr;te lors'u(un joueur atte nt <ro po nt* C0acun des joueurs re=o 7ent du d str &uteur, 9 sa prem )re d str &ut on c n' cartes , 'u( ls regardent pour par er* %e joueur s tu apr)s le d str &uteur parle en prem er, et de m;me le d str &uteur en dern er* %ors'ue le d str &uteur fa t son par l n(est pas l &re de par er le nom&re de pl s 'u( l sou0a te* >n effet, pour a7o r un perdant 9 c0a'ue d str &ut on de carte, la somme des par s do t ;tre d ffrente du nom&re de cartes dans la ma n des joueurs* ,ou7ent le d str &uteur ne peut pas c0o s r le par 'u l(arrange* %ors du jeu, c0acun des joueurs pose success 7ement une carte de son jeu de son c0o $ sur la ta&le sans aucune contra nte* %e pl est remport par le joueur 'u pose la plus grosse carte* C(est 9 lu de rejouer en prem er pour le pl su 7ant* ?ne fo s 'ue toutes les cartes ont t joues on soustra t les po nts, et s( l n(5 a pas de perdant, le d str &uteur red str &ue les cartes, ma s une de mo ns 'u(au tour su 7ant* %ors'u( l do t d str &uer <ro carte, l d str &ue les cartes au$ joueurs de sorte 'ue c0acun pu sse 7o r les cartes des autres ma s pas la s enne* %es par s su 7ent les m;mes modal ts* C(est seulement au tour d(apr)s 'ue le d str &uteur c0ange, j(appelle manc0e les s $ d str &ut ons d(un d str &uteur et tour une d str &ut on, un tour comportant un nom&re 7ar a&le de pl s*

-/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

II] Analyse du sujet


%es d ff cults d(un jeu sont, du po nt de 7ue de la programmat on de celu @c , un pro&l)me de r)gles 'ue l(algor t0me do t respecter scrupuleusement, et un pro&l)me d( nterface a7ec le joueur, pour 'ue le jeu, auss ntressant so t@ l, so t agra&le 9 jouer* J(a c0o s de me concentrer sur la prem )re d ff cult, pour pou7o r prsenter un programme oprat onnel*

2*1/ +eprsentat on de l( nformat on


Pour commencer, je cre une structure 'u cont ent l(ensem&le des joueurs* J(ut l se une structure pour pou7o r prof ter de plus de souplesse s je sou0a te augmenter ultr eurement le nom&re de joueurs* Cette structure appele struct spiel 0jeu1 cont ent un 'uement un ta&leau de joueurs de t5pe struct spieler 0joueur1 'ue j(a cr* ! ns les joueurs seront nd cs par un numro 'u permet d( dent f er le joueur dans tout le jeu* %a structure struct spieler 0joueur1 cont ent toutes les nformat ons personnelles du joueur* Celles@c sont : le nom du joueur dans un ta&leau de caract)res, les cartes du joueur dans un ta&leau d(ent ers, le "ari effectu 6en fa t le nom&re de pl 'ue le joueur do t encore gagner pour ral ser son par /, les "oints 'ue poss)de le joueur, le ty"e de joueur cad contrAle 0uma n ou ord nateur* Par souc s de s mpl c t, j(ut l se des constantes glo&ales, 'ue je n(a donc pas &eso n de passer en param)tres, j(a c0o s de reprsenter ses constantes en majuscules dans mon code pour la l s & l t* %es constantes sont int const J=4 ; pour le nom&re de joueurs int const M=5 ; pour le nom&re ma$ mum de place dans la ma n int const C_MAX=5 ; pour le nom&re ma$ mum de cartes d str &ues au d&ut de c0a'ue manc0e* int const N=22 ; 'u est le nom&re de carte dans le jeu* int const P=14 ; nom&re de po nts crd t 9 c0a'ue joueur au d&ut du jeu* >nf n certa nes 7ar a&les sont remar'ua&les* Il faut d st nguer par e$emple le numro du joueur act f dans l(algor t0me, celu 'u 9 la ma n pour le pl , et celu 'u d str &ue* Pour cela j(ut l se tro s 7ar a&les ent )re jeton2 maitre et distributeur* Be m;me la 7ar a&le nb_carte sert 9 se reprer dans la manc0e, alors 'ue n_coup est ut le pour dterm ner la f n du tour*

2*2/ !lgor t0me pr nc pal

%(algor t0me su 7ant est un algor t0me s mpl f du programme pr nc pal, 'u cac0e les rpt t ons dues au$ 'uatre joueurs, et au$ protect ons des sa s es* Be plus l mas'ue les d ff cults comme la gest on d( dent f cat on du joueur pendant les d ffrentes p0ases du jeu, ou les d ffrences d(aff c0age lors'u(on fa t le 2e tours 6cartes des autres/*

./27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

IE8+:B?C8I:E F IEI8I!%I,!8I:E, C+>!8I:E B>, - J:?>?+,

P+>P!+!8I:E M!ECC> ,?IG!E8> P+>P!+!8I:E 8:?+ ,?IG!E8

Prparat on PI:CC> et BI,8+I"?8I:E B>, C!+8>, MI,>, : !FFICC!D> H ,!I,I> 6$- joueurs/

Prparat on de la ta&le de jeu et encore des n t al sat ons J>? : M!E?>% ou !?8:M!8II?> 6$- joueurs/ +ecompter les P%I, !FFICC>+ %> G!EI?>?+ B? P%I +este des cartes J +ecompter les P:IE8, Manc0e perdant J perdant Perdant J

ou

Manc0e non f n e, non

!ucun

!FFICC!D> B? P>+B!E8

2/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

2*3/ !lgor t0mes seconda res


Pour la l s & l t du programme pr nc pal on ut l se des fonct ons et rout nes, cette mt0ode permet auss de rut l ser du code* 2*3*11/ Au_sui ant!" Cette fonct on calcule s mplement l( nd ce du joueur su 7ant par rapport 9 l( nd ce pass en param)tre* 2*3*12/ A##ic$e_cartes!" permet d(aff c0er les cartes prsentent dans la ma n* 2*3*13/ A##ic$e_nom_joueur!"permet d(aff c0er le nom du joueur d( nd ce pass en param)tre* 2*3*1-/ A##ic$e_pari!" rense gne le joueur sur les po nts et les par s dj9 effectu par les autres joueurs, pendant * 2*3*1./ A##ic$e_table!" rense gne le joueur sur les cartes dj9 joues, et les pl s et les po nts restants de c0a'ue joueurs* 2*3*12/ %reation_joueur!" cette rout ne permet de rense gner la structure spieler joueur pour les c0amps po nts, pl s, nomKL, t5pe* 2*3*17/ %ree_pioc$e!" cette rout ne rempl un ta&leau a7ec des ent ers conscut fs* 2*3*13/ &istribuer!" permet de d str &uer nb_carte 9 c0a'ue joueur 6 l 5 a J joueur en tout*/ 2*3*14/ Faire_compte!" cette fonct on dtecte la prsence d(un joueur 'u aura perdu et ren7o e son nd ce* ?n joueur est cons dr comme a5ant perdu d)s 'ue le nom&re de po nt passe 9 <ro* 2*3*11/ 'ouer_manuel!" Cette fonct on permet 9 un joueur 0uma n de c0o s r 'uelle cartes l 7a jouer, pendant la p0ase de jeu 6pl / dans une sa s e protge de la 7aleur de la carte* Cette fonct on est enr c0 e d(un tra tement de l(e$cuse, ma s n(est pas ut l sa&le pour le s $ )me pl * >lle retourne la 7aleur de l( nd ce de la carte dans la ma n du joueur* 2*3*11/ 'ouer_(ero_carte!" !u 6. eme et / 2 eme tour, l n(5 a 'u(une carte 9 jouer, donc pas de c0o $ tact 'ue dans l(ordre de pose des cartes* Cette fonct on 7 te au joueur de poser manuellement la carte* >lle n(est prsentement act 7e 'ue pour le 2e tour* Cette fonct on retourne la 7aleur de l( nd ce de la carte dans la ma n du joueur, 'u est s5stmat 'uement 1* 2*3*12/ )elan*e_pioc$e!" Cette rout ne permet 9 la p oc0e de se mlanger, on ut l se un mcan sme 'u ressem&le 9 du tr par slect on, ma s a7ec une autre 7olont, on c0o s au 0asard un nd ce d(une entre du ta&leau et on la cop e 9 la su te dans un autre* 2*3*12/ )ise_automati+ue!" Cette fonct on ren7o e un ent er 'u correspond 9 la m se d(un joueur* Cette fonct on est ut le dans le cadre d(un contrAle du joueur par l(ord nateur* ! noter 'ue cette fonct on prend en c0arge de s(assurer 'ue le par propos est 7al de* Cependant on pourra t proposer 'uel'ue c0ose de mo ns lmenta re et 'u a un rsultat mo ns pr7 s &le et plus pert nent, de m;me 'ue le par du 2e tour n(est pas fa t 0onn;tement* 2*3*13/ ,aisie_pari!" Cette fonct on est le pendant de )ise_automati+ue!", elle demande 9 l(0uma n d( nd 'uer le par 'u( l sou0a te fa re* " en entendu la sa s e est protge*

7/27

Pierre-Emmanuel Prillon 10200712 2*3*1-/ ,-ap!" ut le au tr "ulle, permute deu$ 7ar a&les*

projet IF3 dcembre 2004

2*3*1./ .ri_croissant!" Cette rout ne e$cute un tr "ulle sur les lments d(un ta&leau pass en param)tre* 2*3*12/ .rou e_carte!" permet de retrou7er l( nd ce de la carte passe en param)tre dans la ma n du joueur* %a fonct on retourne @1 s elle ne trou7e pas* 2*3*17/ /aleur_interdite!" Cette fonct on permet de dterm ner la 7aleur 'ue le d str &uteur n(a pas le dro t de par er au 7u des par s prcdent*

3/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

III] Problmes rencontrs


3*1/ Pro&l)mes d(ordre algor t0m 'ue
Je n(a pas eu le temps de remettre en place une fonct on permettant 9 l(ord nateur de jouer seul, 9 cause de la comple$ t apparente du pro&l)me et les em&Mc0es nattendues poses par le comp lateur* J(a pass du temps 9 mettre au po nt une solut on s mple pour passer en re7ue tous les joueurs 6 c d( nd ce jeton/ sans perdre le jeton et en fa sant en sorte 'ue le prem er joueur 9 passer so t le prem er a5ant parl ou pos une carte* Comme sur cet e$emple ssu du ma n6/: for 6compteurN1O 33on a compter de 0 compteur PJO 33jus+u45 '64 e7clu compteurFF, jetonN!uQsu 7ant6jeton/ / 33 et 5 c$a+ue boucle on c$an*e de joueur R 8r Qcro ssant6jeu*joueurKjetonL*cartes/O 33on trie les cartes du joueur f 6jeu*joueurKjetonL*t5pe/ 33selon le t8pe de joueur R !ff c0eQpar 6jeu,jeton,d str &uteur,nQcoup/O 33puis on les a##ic$e jeu*joueurKjetonL*pl N,a s eQpar 6jeu,jeton,d str &uteur,nQcoup/O 33 demande du pari S else R jeu*joueurKjetonL*pl NM seQautomat 'ue6jeu,jeton,d str &uteur,n&Qcarte/O S S >nf n l peut 5 a7o r un pro&l)me lors'ue l 5 a deu$ perdants s multanment : on r s'ue de n(en trou7er 'u(un *

3*2/ Pro&l)mes d(ordre s5nta$ 'ue

%e programme se plante lors'ue sur une n7 te c n TT on rentre des caract)res alors 'u( l attend des ent ers* Par un grand m5st)re le la &oucle de protect on ntercepte l(erreur ma s lors'ue le programme sem&le de7o r repasser par c n TT le programme ne s(arr;te pas pour demander une nou7elle 7aleur et &oucle ndf n ment* %a mt0ode getc0ar6/ dans creation _joueur me compta t s5stmat 'uement deu$ caract)res lors'ue je tapa s Uo( et Uentre(* Pet t dsagrment so gn par un ##lus$!stdin" >t tant d(autresV

4/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

IV] Guide d utilisation


Pour dmarrer le programme Utarot afr ca n( l suff t de le dmarrer l(e$cuta&le 6en dou&le cl 'uant dessus sur les s5st)mes W ndoXs/ dans le rperto re Ud&ug( au m;me n 7eau 'ue 7otre source dans l(ar&orescence s 7ous a7e< comp l le programme 9 part r de la source* >nsu te je sous conse lle de l re les nd cat ons 'u s(aff c0ent 9 l(cran et de 7ous la sser gu der dans le jeu* !u$ prem )res 'uatre 'uest ons rponde< en enfon=ant la touc0e : ou C de 7otre cla7 er, nd ffremment en majuscules ou m nuscules* >nsu te 7ous pou7e< 7ous l m ter 9 l(ut l sat on du pa7 numr 'ue, pour nd 'uer les c0o $ 'ue 7ous fere< 9 la mac0 ne au cours du jeu* Gous pou7e< nterrompre l(e$cut on de ce programme 9 tout moment, en cl 'uant sur la cro $ en 0aut 9 dro te de la fen;tre ou par la press on s multane des touc0es K!%8LFKF-L

V] Conclusion
!u n 7eau du programme , on est en prsence d(un programme 'u fonct onne & en, et on peut ma ntenant se penc0er sur le pro&l)me de rendre l(aff c0age ntressant et agra&le* :n pourra auss dans l(opt 'ue d(aml orer le programme mplmenter un module pour enreg strer les param)tres de jeu$ pour pou7o r cont nuer plus tard ce jeu 'u est relat 7ement long* B(un po nt de 7ue programmat on , ce projet est le deu$ )me 'ue je ral se dans son mportance et comple$ t en langage C* J(a pu ut l ser mass 7ement des mt0odes de passages par rfrence et des structures 'ue j(a du comprendre et anal5ser*

11/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

ANNEXE

11/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

/Y P erre@>mmanuel P>+I%%:E nZ11211712 l cence M!8C, IEF: semestre 3 anne septem&re@dcem&re 211Y/ /Y cette source est rd gue dans le cadre des tra7eau$ d[ nformat 'ue 6IF-/ 9 l[un 7ers te l5on 1 6la doua/ anne 2113@211cette source est la propr t nal na&le de P erre@>mmanuel P>+I%%:E, contact: per llonpe\0otma l*com l[ut l sat on non commerc ale de cette source est l &re, le nom de l[auteur de7ant s mplement ;tre ment onn la reponsa& l t de l[auteur ne saura t ;tre engage en cas d[ut l sat on 'uelcon'ue de cette source, Cependant tous commenta res sur le fonct onnement de cette source, sont la & en7enue* >EJ:] I8 ^^^ Y/ /Y YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYY reprsentat 7 t des 7ar a&les YYY YY YY Y Y PA9A)E.9E, 9E:A.IF, A;< '=;E;9, structure spiel un jeu liste 4 joueurs !nombre de joueur" mais plus tard structure spierler cartes +u4il possede dans sa main !int $and0i1" le nombre de pli +u4il lui reste 5 *a*ner le nombre de point +ui lui reste le nom du joueur t8pe de joueur 1 pour $umain 0 pour ordinateur PA9A)E.9E, 9E:A.IF, A; 'E; distributeur reprsente la personne +ui redistribue le jeu jeton desi*ne le joueur acti# 5 c$a+ue instant du jeu nb_carte non redondant a ec %2lors de la premiere distribution initialisation 5 % puis dcrment n_tour in#ormation redondante a ec nb_carte2initialis 5 0 pour c$a+ue distributeur n_tour>> 5 c$a+ue distribution n_coup nb de pli restant 5 jouer initialis 5 nb_carte tombe jus+u4a 0 pioc$e perdant tableau des cartes 5 distribuer numro associ au joueur perdant

12/27

Pierre-Emmanuel Prillon 10200712 compteur maitre majorant table0indice1 joues0i1 indi+ue le ran* du parieur3joueur

projet IF3 dcembre 2004

indi+ue l4indice du joueur a8ant pos la plus *rosse carte sur la table indi+ue la aleure de la carte la plus *rosse retient les cartes joue indic par le no du joueur retient les cartes poses au cour du jeu?

@3 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ AIA:I=.BEC;E, @@@ 33@@ @@ 33@ Y _ nclude `stdaf$*0` _ nclude ` ostream*0` _ nclude `t me*0` _ nclude `stdl &*0` 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ &E%:A9A.I=D, @@@ 33@@ @@ 33@ @ 33les constantes et les ariables *lobales nt const JN-O 33nombre de joueurs nt const MN.O 33nombre de case dans un tableau pour .ri%roissant2nb ma7 de carte dans une main nt const EN22O 33nb de carte dans le jeu2 1 5 21 plus e7cuse !(ro ou 22" nt const CQM!aN.O 33nb de cartes ma7imale donn nt const PN1-O 33nb de points 33des #onctions et des routines nt !uQsu 7ant 6 nt jeton/O 7o d !ff c0eQcartes6struct sp el jeu, nt jeton, nt n&Qcarte, &ool cac0e/O 7o d !ff c0eQnomQjoueur6struct sp el jeu, nt jeton/O 7o d !ff c0eQpar 6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/O 7o d !ff c0eQta&le6struct sp el jeu, nt ta&leKJL, nt d str &uteur/O 7o d Creat onQjoueur6struct sp el Hjeu, nt /O 7o d CreeQp oc0e6 nt p oc0eKEL/O 7o d B str &uer6 nt p oc0eKEL,struct sp el Hjeu, nt n&Qcarte/O nt Fa reQcompte6struct sp el Hjeu/O nt JouerQmanuel6struct sp el Hjeu, nt ma tre, nt majorant, nt jeton, nt d str &uteur, nt ta&leKL, nt nQcoup/O nt JouerQ<eroQcarte 6struct sp el Hjeu, nt compteur, nt jeton/O 7o d MelangeQp oc0e6 nt p oc0eKEL/O nt M seQautomat 'ue6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/O nt ,a s eQpar 6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/O 7o d ,Xap6 nt Ha, nt H&/O

13/27

Pierre-Emmanuel Prillon 10200712 7o d 8r Qcro ssant6 nt ta&KL/O nt 8rou7eQcarte6struct sp el jeu, nt jeton, nt nQcoup, nt carteQ7oulue/O nt GaleurQ nterd te6struct sp el jeu, nt d str &uteur, nt jeton, nt n&Qcarte/O 33 structures struct sp eler R nt cartesKCQM!aLOc0ar nomK.1LO nt pl ,po ntO&ool t5peOSO struct sp el Rstruct sp eler joueurKJLOSO

projet IF3 dcembre 2004

33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@@ @@@@ 33@@@@ main @@@@ 33@@@@ @@@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7o d ma n6/ R srand6 6uns gned/t me6 E?%% / /O 33init *nrateur alatoire - time du t8pe lon* et non unsi*ned nt p oc0eKEL,ta&leKJLO nt ,j,compteur,d str &uteur,jeton,n&Qcarte3@2n_tour@3,nQcoup,ma tre,majorant,perdantN1O struct sp el jeuO cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PP`bnc c`O cout PP`bnc 8!+:8 !F+II?!IE c`O cout PP`bnc c`O cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PPendlO cout PP`bnbtCe jeu de cartes se joue a7ec `PPJPP` joueurs, a7ec 22 cartes de 1 a 21 et`O cout PP`bn l[>$cuse* Gous regarde< 7os cartes, et 7ous fa tes un par sur le nom&re de `O cout PP`bn pl s 'ue 7ous remportere< en jouant*bn`O cout PP`bn Bans la p0ase de jeu, c0a'ue joueur peut jouer une de ses cartes sans`O cout PP`bn cond t on sur la 7aleur* %e pl est attr &ue a la personne 'u pose la plus`O cout PP`bn grosse carte* %e joueur apres le d str &uteur commence, ensu te c[est celu `O cout PP`bn 'u a remporte le pl *bn`O cout PP`bn %e jeu s[arrete lors'u[ un joueur a perdu tout ses po nts, a force de`O cout PP`bn se tromper dans ses par s*`PPendlO cout PP`bnF@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F@F`O cout PPendlPPendlO

for 6 N1O PJO FF/ 33 attention on eu7 bien ' joueur de 1 5 ' inclu R Creat onQjoueur6jeu, /O cout PP`nom retenu:`O!ff c0eQnomQjoueur6jeu, /O cout PPendlO S d str &uteurNrand6/d JO 33le premier distributeur est c$oisi au $asard

1-/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

doR 33manc$e 33on c$oisi un distrib c4est la *rande boucle de la manc$e +ui se #erme tant +u4il restera des points 33prparation du distributeur d str &uteurN!uQsu 7ant6d str &uteur/O 33 en $omma*e 5 'ac+ue Arel n&QcarteNCQM!aF1O 33 on rentre sur un nb_carte-3@n_tour60E@3 doR 33tour 33combien de cartesF n&Qcarte@@O //la main est diminu d4une carte 5 la proc$aine distrib nQcoupNn&QcarteO 335 la proc$aine distrib il 8 aura nb_carte dans la main jetonN!uQsu 7ant6d str &uteur/O 33le premier joueur est??? //nQtourFFO 33compte le nb de distribution 33distribution des cartes 33prparation de la pioc$e CreeQp oc0e6p oc0e/O MelangeQp oc0e6p oc0e/O 33la distribution B str &uer6p oc0e,jeu,n&Qcarte/O cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PP`bnc c`O cout PP`bnc %e d str &uteur est le joueur `PP6d str &uteurF1/O cout PP` c`O cout PP`bnc c`O cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PPendlPPendlO 33PA9I, for 6compteurN1O //on 7a compter de 1 compteurPJO //jus'u[9 JN- e$clu compteurFF,jetonN!uQsu 7ant6jeton/ / 33 et 5 c$a+ue boucle on c$an*e de joueur R 8r Qcro ssant6jeu*joueurKjetonL*cartes/O 33on trie les cartes du joueur f 6jeu*joueurKjetonL*t5pe/ 33selon le t8pe de joueur R !ff c0eQpar 6jeu,jeton,d str &uteur,nQcoup/O 33puis on les a##ic$e jeu*joueurKjetonL*pl N,a s eQpar 6jeu,jeton,d str &uteur,nQcoup/O 33demande pari S elseR jeu*joueurKjetonL*pl NM seQautomat 'ue6jeu,jeton,d str &uteur,n&Qcarte/O S S //%> J>? cout PP`bnYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY`O cout PP`bnYYYY YYYY`O cout PP`bnYYY Be&ut du tour a `PPn&QcarteO cout PP` cartes* YYY`O

1./27

Pierre-Emmanuel Prillon 10200712 cout PP`bnYY YY`O cout PP`bnY Y`O

projet IF3 dcembre 2004

cout PPendlO doR 33plis 33prparation de la table2 mal$eureusement non int*rable dans le #or sui ant for6compteurN1OcompteurPJOcompteurFF/ ta&leKcompteurLN@1O 33-1 6 pas encore jou ma treN@1OmajorantN@1O 33et ra( for 6compteurN1OcompteurPJOcompteurFF,jetonN!uQsu 7ant6jeton// 33appel du joueur R 8r Qcro ssant6jeu*joueurKjetonL*cartes/O f 6n&QcarteP1/ autres R nQcoupN1O jNJouerQ<eroQcarte 6jeu,compteur,jeton/O 33la seule carte se trou e en 0 S else R 33 tour a ec ses propres cartes 33 dans tous les cas #o trier G 33 tour a ec les cartes des

jNJouerQmanuel6jeu,ma tre,majorant,jeton,d str &uteur,ta&le,nQcoup/O S Njeu*joueurKjetonL*cartesKjLO ta&leKjetonLN O 33on recopie la carte sur la table jeu*joueurKjetonL*cartesKjLN44O 33on e##ace la carte du jeu du joueur f 6 Tmajorant/ 33on ractualise R ma treNjetonO majorantNta&leKma treLO S S 33passa*e au joueur sui ant //tous les joueurs ont pos une carte jetonNma treO 33donner la main au maitre jeu*joueurKma treL*pl @@O 33le nb de pli restant est diminu nQcoup@@O 33le nb de coup restant aussi est diminu cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PP`bnc c`O cout PP`bnbtbtTTT pl remporte par `O!ff c0eQnomQjoueur6jeu,jeton/Ocout PP` PPP`O cout PP`bnc c`O cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PPendlPPendlO SX0 le6nQcoup^N1/O //tant 'ue le nQcoup n[est pas tom& 9 1 cout PP`bnY Y`O cout PP`bnYY YY`O

12/27

Pierre-Emmanuel Prillon 10200712 cout PP`bnYYY cout PP` cartes* cout PP`bnYYYY YYYY`O F n du tour a `PPn&QcarteO YYY`O

projet IF3 dcembre 2004

cout PP`bnYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY`O perdantNFa reQcompte6jeu/O//dtecte un perdant SX0 le6 6n&QcarteT1/HH6perdantNN1/ /O//on reste a7ec le m;me d str &uteur 6red str &/ SX0 le6 perdantNN1/O // on c0ange de d str &uteur cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PP`bnc c`O cout PP`bn %> P>+B!E8 >,8 %> J:?>?+ `PP6perdantF1/O cout PP`bn `O!ff c0eQnomQjoueur6jeu,perdant/O cout PP`bnc c`O cout PP`bnF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F`O cout PPendlPPendlO //!ttendreQact on6/O S//ende fer Cauptprogramme

//YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY B>FIEI8I:E, YYY //YY YY //Y Y //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY !ff c0eQCartes YYY //YYY aff c0e les cartes du joueur nd ce jeton YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d !ff c0eQcartes6struct sp el jeu, nt jeton, nt nQcoup,&ool cac0e/ R cout PP`bnbn7os cartes : `O for 6 nt jN1OjPnQcoupOjFF/ R f 6jeu*joueurKjetonL*cartesKjL^N1/ R cout PPjeu*joueurKjetonL*cartesKjLO SelseR cout PP`>$cuse`O f 6cac0e/ cout PP`KNT1L`O S cout PP` `O S cout PPendlO S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY !ff c0eQnomQjoueur YYY //YYY 9 l[aff c0e et 'u cr)7e l[cran,ma s on 7eut des noms YYY

17/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

//YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d !ff c0eQnomQjoueur6struct sp el jeu, nt jeton/ R for6 nt jN1Ojeu*joueurKjetonL*nomKjL^NE?%%OjFF/ coutPPjeu*joueurKjetonL*nomKjLO S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY !ff c0eQta&le YYY //YYY aff c0e le contenu d[une structure sp eler YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d !ff c0eQta&le6struct sp el jeu, nt ta&leKJL, nt d str &uteur/ R nt N!uQsu 7ant6d str &uteur/O for6 nt jN1OjPJOjFF, N!uQsu 7ant6 // R coutPP`bn`PP6 F1/PP`/ `O!ff c0eQnomQjoueur6jeu, /O f 6ta&leK LNN@1/ R cout PP`bnn[a pas encore joue`O SelseR cout PP`bna pose un `PPta&leK LO S cout PP`bn l lu reste `PPjeu*joueurK L*pl O cout PP` pl 6s/ a prendre et `PPjeu*joueurK L*po ntPP` po nts*`O S// ende fer F:+ J S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY !ff c0eQpar YYY //YYY aff c0e les carte du joueur et les par s des autres s ^N@1 YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d !ff c0eQpar 6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/ R nt jO cout PP`YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY`PPendlO cout PP6jetonF1/PP`/ nom du joueur:`O !ff c0eQnomQjoueur6jeu,jeton/O f 6n&Qcarte ^N1/ R !ff c0eQcartes6jeu,jeton,n&Qcarte,false/O //on passe 9 l[aff c0age des prtent ons for 6jN!uQsu 7ant6d str &uteur/Oj^NjetonOjN!uQsu 7ant6j// R cout PP`bt`PP6jF1/PP`/ `O !ff c0eQnomQjoueur6jeu,j/O f 6jeu*joueurKjL*pl NN@1/ R cout PP` n[a pas parle`PPendlO

13/27

Pierre-Emmanuel Prillon 10200712 S else R

projet IF3 dcembre 2004

cout PP` 7eut prendre `PPjeu*joueurKjL*pl PP` pl 6s/*`PPendlO S S// ende fer for Selse3@si nb_carte660@3R cout PP`Cartes des !?8+>,:`O for 6jN1OjPJOjFF,jetonN!uQsu 7ant6j// R cout PP`joueur `PP6jetonF1/PP`: `O !ff c0eQnomQjoueur6jeu,j/O cout PP` a le `PPjeu*joueurKjetonL*cartesK1LO f 6jeu*joueurKjetonL*pl NN@1/ R cout PP` et n[a pas parl`PPendlO S else R cout PP` et a d t `PPjeu*joueurKjetonL*pl PPendlO S S 33ende #Hr #or j S S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ Au_sui ant @@@ 33@@@ cette #onction permet de passer au joueur sui ant @@@ 33@@@ En Bomma*e 5 'ac+ue Arel @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ nt !uQsu 7ant6 nt jeton/ R jetonFFO f 6jetonTNJ/ jetonN1O return jetonO S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ creation_joueur @@@ 33@@@ remplie et cre les joueurs33pourrait Itre remplac par une sau e*arde du jeu @@@ 33@@@ attentions les joueurs sont a##ic$ de 1 5 4 mais sont numrot de 0 5 3 !'" @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7o d Creat onQjoueur6struct sp el Hjeu, nt / R 33inituialisations nt test,jO c0ar &of,coeurK4LN`C:>?+ `,carreauK4LN`C!++>!?`,p 'ueK4LN`PII?> `,trefleK4LN`8+>F%> `,$gamerK4LN`a@D!M>+`O 33a##ectations des aleurs jeu*joueurK L*pl N@1O

14/27

Pierre-Emmanuel Prillon 10200712 jeu*joueurK L*po ntNPO testN@1O X0 le 6testNN@1/ R fflus06std n/O cout PP`Par 'u do t etre controle le joueur `PP6 F1/PP` J`PPendlO cout PP`K8ape< : pour :rd nateur, C pour Cuma n, s7pL` PPendlO &ofNgetc0ar6/O 33*etc$!" pour+uoi pas

projet IF3 dcembre 2004

sX tc06&of/ R case [C[: case [0[: jeu*joueurK L*t5peNtrueO 33ici une a##ectation =rdi3Bumain testN1O 33passa*e d4un tmoin cout PP`Geu lle< entrer 7otre nomK,!I,I> E:E P+:8>D>>L:`O c n TT jeu*joueurK L*nomO cout PP`bn merc `PPendlO &rea#O case [:[://s on tapa un : maj ou m n case [o[: jeu*joueurK L*t5peNfalseO testN1O sX tc06 / //on pourra t ecr re =a en 2 l gnes a7ec des ta&leau de structures R case 1: //on rempl le nom du joueur a7ec le nom par dfaut for6jN1OcarreauKjL^NE?%%OjFF/jeu*joueurK L*nomKjLNcarreauKjLO &rea#O case 1: for6jN1OcoeurKjL^NE?%%OjFF/jeu*joueurK L*nomKjLNcoeurKjLO &rea#O case 2: for6jN1Op 'ueKjL^NE?%%OjFF/jeu*joueurK L*nomKjLNp 'ueKjLO &rea#O case 3: for6jN1OtrefleKjL^NE?%%OjFF/jeu*joueurK L*nomKjLNtrefleKjLO &rea#O default: //cas mpro&a&le ma s &on s e$tent on 9 . joueurs for6jN1O$gamerKjL^NE?%%OjFF/jeu*joueurK L*nomKjLN$gamerKjLO SO// end sX tc06 / jeu*joueurK L*nomKjLNE?%%O 33#o le remettre u +u4on ne l4a pas encore copi &rea#O default: testN@1O 33normalement % inutileGGG S//ende 7on sX tc0 S //ende 7on X0 le 6testNN@1 JJ/

21/27

Pierre-Emmanuel Prillon 10200712 S //ende 7on creat onQjoueur

projet IF3 dcembre 2004

33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ %ree_pioc$e @@@ 33@@@ rempli un tableau de D cartes de 0 5 D @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7o d CreeQp oc0e6 nt p oc0eKEL/ R for6 nt N1O PEO FF/ p oc0eK LN O S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ &istribuer @@@ 33@@@ distribue nb_carte au ' joueurs utilise %_)A< @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7o d B str &uer6 nt p oc0eKEL,struct sp el Hjeu, nt n&Qcarte/ R f 6n&QcarteNN1/ n&QcarteN1O for R for 6 nt jN1OjPJOjFF/ 33 5 c$a+ue joueur R f 6 Pn&Qcarte/ Rjeu*joueurKjL*cartesK LNp oc0eKjYMF LOS else Rjeu*joueurKjL*cartesK LN44OS S 33ende on #or i S 33 ende on #or j S 33ende on distribuer 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ 'ouer_manuel @@@ 33@@@ *ere toutes la p$ase E3, pour 1 joueur @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ nt JouerQmanuel6struct sp el Hjeu, nt ma tre, nt majorant, nt jeton, nt d str &uteur, nt ta&leKL, nt nQcoup/ R nt ,j,e$cuseO 33prsentation des cartes dej5 jou !a##ic$a*e de la table" doR 33 tant +ue la saisie est in alide cout PPendlO cout PP`bnNNNNNNNNNNNNNNNNNNNNNNNNNTTT `O !ff c0eQnomQjoueur6jeu,jeton/O cout PPendlO !ff c0eQta&le6jeu,ta&le,d str &uteur/O //aff c0age de la ma n du joueur f 6ma tre^N@1/ 6 nt N1O PCQM!aO FF/ 33 on distribue une carte

21/27

Pierre-Emmanuel Prillon 10200712 R cout PP`bnbnMa tre `O !ff c0eQnomQjoueur6jeu,ma tre/O cout PP` a7ec un `PPmajorantO

projet IF3 dcembre 2004

S !ff c0eQcartes6jeu,jeton,nQcoup,true/O 33cout JJKLn/os pointsM KJJjeu?joueur0jeton1?pointE cout PPendlO !ff c0eQnomQjoueur6jeu,jeton/O cout PP`, 7ous de7e< encore remporter `PPjeu*joueurKjetonL*pl PP` pl 6s/*`O 33table0j16dsi*nation de carte 5 jouer coutPP`bnbt>ntre< la 7aleur de la carte 'ue 7ous sou0a te< jouer JN`O c n TT O jN8rou7eQcarte6jeu,jeton,nQcoup, /YcarteQ7oulueY//O f 6jNN@1/ //0um je cro s 'ue =a ne marc0e pas R cout PP`bnbnPPP Ce n[est pas une entree correcte TTTbnbn`O //Kact on au cla7 er pour cont nuerL //!ttendreQact on6/O S f 66jNN1/HH6 NN1// R cout PP`bnGous joue< 7otre escuse,`O cout PP`bn7ous pou7e< lu donner la 7aleur de 7otre c0o $ entre 1 et 22`O cout PP`bnIuelle 7aleur c0o s sse< 7ous J K,!I,I> E:E P+:8>D>>L: `O c n TTe$cuseO jeu*joueurKjetonL*cartesK1LNe$cuseO S SX0 le6jNN@1/O// tant 'ue la sa s e est n7al de return jO S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY JouerQ<eroQcarte YYY //YYY dtourne la &oucle des - joueurs pour aff c0age des cartes YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY nt JouerQ<eroQcarte 6struct sp el Hjeu, nt compteur, nt jeton/ R f 6compteurNN1/ R cout PP`bn8our a7ec les cartes des autres*** attent on ^`O cout PP`bnles cartes: `O S f 6jeu*joueurKjetonL*cartesK1LNN1/ // gest on automat 'ue de l[e$cuse*** R jeu*joueurKjetonL*cartesK1LN22Yjeu*joueurKjetonL*pl O S cout PPjeu*joueurKjetonL*cartesK1LPP` `O return 1O S

22/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

//YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY melangeQp oc0e YYY //YYY mlange un ta&leau de E cartes YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d MelangeQp oc0e6 nt p oc0eKEL/ R nt l steKELO //l ste au$ l a re nt &ofO //locale srand6 6uns gned/t me6 E?%% / /O// n t gnrateur alato re @ t me du t5pe long et non uns gned for 6 nt NEO T1O @@/ R f 6 ^N1/// on sa t jama s a7ec les d 7 s on par <ro R &ofNrand6/ d O //on c0o s un nd ce au 0asard dans le ta&leau l steKE@ LNp oc0eK&ofLO //on cop e dans la l ste au$ p oc0eK&ofLNp oc0eK @1LO//on replace dans p oc0e par la 7aleur la plus 9 dro te de la l ste //9 la proc0a ne trat on on racourc era la l ste* SelseRcout PP`conner e`Oc n TT&ofOS S//ende fur fer for6 N1O PEO FF/ p oc0eK LNl steK LO//on recop e la l ste au$ dans la p oc0e ^^^ S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY M seQautomat 'ue YYY //YYY m se automat 'ue comme son nom l[ nd 'ue YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY nt M seQautomat 'ue6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/ R nt ,jN1O float #N1O f 6n&QcarteNN1/ n&QcarteN1O//Go l9 =a d str due 'uand meme pour n&carteNN1 O@/ for 6 N1O Pn&QcarteO FF/ R #FN6float/jeu*joueurKjetonL*cartesK LO f 6 jeu*joueurKjetonL*cartesK LT611Fn&Qcarte/ / jFFO S f 66jeu*joueurKjetonL*cartesK1LNN1/HH6jNN1// jN1O//s on a l[e$cuse*** //s on est d str &uteur attent on 9 la 7aleur nterd te f 6 6jetonNNd str &uteur/HH6jNNGaleurQ nterd te6jeu,d str &uteur,jeton,n&Qcarte// / R f 6jNN1/ //s on est au m n pas le c0o $ R jFFO S else//6j^N1/

23/27

Pierre-Emmanuel Prillon 10200712 R d4a ant f 6jNNn&Qcarte/

projet IF3 dcembre 2004 33si on est au ma7 pas le c$oi7 33r+ si nb_carte660 on se retrou e dans le cas

R j@@O S else //6j^Nn&Qcarte/ R #N6#//66float/n&Qcarte/O f 6#T12/ 33si la mo8enne est suprieure 5 12 R jFFO 33on au*mente S else R j@@O 33sinon on diminue S S 33ende #Hr !jG6nb_carte" S 33ende #Hr !jG60" S 3@ cout JJK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KJJendlE cout JJ!jeton>1"JJK" nom du joueurMKE A##ic$e_nom_joueur!jeu2jeton"E cout JJKLnLtmise proposeeM KJJjJJendlE @3 return jO S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ ,aisie_pari @@@ 33@@@ dtecte la prsence d4un perdant au moins @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ nt Fa reQcompte6struct sp el Hjeu/ R nt perdantN1O for6 nt compteurN1OcompteurPJOcompteurFF/ R jeu*joueurKcompteurL*po ntNjeu*joueurKcompteurL*po nt@a&s6jeu*joueurKcompteurL*pl /O f 6jeu*joueurKcompteurL*po ntP1/ perdantNcompteurO S 33dans le cas ou il 8 a deu7 perdants2 ce +ui n4est pas impossibleM A;N minime return perdantO S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ ,aisie_pari @@@ 33@@@ saisie prote*e du pari du joueur et en o8ant celui des autres @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ nt ,a s eQpar 6struct sp el jeu, nt jeton, nt d str &uteur, nt n&Qcarte/ R

2-/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

nt j, O f 6n&QcarteNN1/ n&QcarteN1O//marc0e pour 1 carte doR cout PP`bnCom& en de pl s pense< 7ous gagnerJ`PPendlO cout PP`bnPour etre 7al de le par do t etre compr s entre 1 et `PP n&Qcarte PP`*`O f 6jetonNNd str &uteur/ R cout PP`bnGous etes le d str &uteur, 7ous ne de7e< pas d re `O NGaleurQ nterd te6jeu,d str &uteur,jeton,n&Qcarte/O cout PP PPendlO cout PP`, non l n[5 aura pas de perdant***`O S cout PP` !lorsNJ`O //fflus06std n/O c n TTjO jN6 nt/jO 33un planta*e semblerai til SX0 le6 6jP1/ cc 6n&QcartePj/ cc 6 6jetonNNd str &uteur/HH6jNN / / /O return jO S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY ,Xap YYY //YYY c0ange deu$ 7aleurs donne en parametre YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d ,Xap6 nt Ha, nt H&/ R nt tmp N aO a N &O & N tmpO S //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY //YYY 8r Qcro ssant YYY //YYY tr e un ta&eau de . entre YYY //YYY ut l se la fct 7o d sXap,et M YYY //YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 7o d 8r Qcro ssant6 nt ta&KML/ R nt ,jO for 6 N6M@1/O T1O @@/ R for 6jN1OjP OjFF/ R f 6ta&KjLTta&KjF1L/ ,Xap6ta&KjL,ta&KjF1L/O S 33#or j S 33 #or i S 33end .ri%roissant 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ .rou e_carte @@@ 33@@@ #onction retrou ant la carte joue par le joueur @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

2./27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

nt 8rou7eQcarte6struct sp el jeu, nt jeton, nt nQcoup, nt carteQ7oulue/ R nt &N@1O for6 nt N1O6 PnQcoup/HH6jeu*joueurKjetonL*cartesK L^N44/O FF/ R //cout PP`bnrteQ7oulueN`PPcarteQ7ouluePP` cartesK LN`PPjeu*joueurKjetonL*cartesK LO f 6jeu*joueurKjetonL*cartesK LNNcarteQ7oulue/ &N O S return &O S 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ /aleur_interdite @@@ 33@@@ 9etourne la aleur +ue le distributeur ne peut dire @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ nt GaleurQ nterd te6struct sp el jeu, nt d str &uteur, nt jeton, nt n&Qcarte/ R f 6n&QcarteNN1/ n&QcarteN1O//7o l9 ca marc0era nt sommeN1,jO for 6jN!uQsu 7ant6d str &uteur/,sommeN1Oj^NjetonOjN!uQsu 7ant6j// sommeNjeu*joueurKjL*pl FsommeO return 6n&Qcarte@somme/O S

3@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ &EA;NANE @@@ 33@@ @@ 33@ @ 33 oid Attendre_action!"E 33int Au_precedant!int jeton"E 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ Au_precedant @@@ 33@@@ cette #onction permet de re enir au joueur precedant @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int Au_precedant!int jeton" O jeton--E i# !jetonJ0" jeton6!'-1"E return jetonE P 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ A##ic$e_structure1 @@@ 33@@@ a##ic$e le contenu d4une structure spieler @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ oid A##ic$e_structure1 !struct spiel jeu2int i"

22/27

Pierre-Emmanuel Prillon 10200712

projet IF3 dcembre 2004

O cout JJendlE cout JJK_______________________________________________________KJJendlE cout JJKindice KJJiJJK KE A##ic$e_nom_joueur!jeu2i"E cout JJendlE #or!int j60EjJ%_)A<Ej>>" O cout JJK KJJjJJK6QKJJjeu?joueur0i1?cartes0j1E PE cout JJKLn pli KJJjeu?joueur0i1?pliE cout JJKLn point KJJjeu?joueur0i1?pointE cout JJKLn t8pe KJJjeu?joueur0i1?t8peE cout JJendlE cout JJ_______________________________________________________KJJendlE cout JJendlE P 33 33 33 33 oid A##ic$e_structure1!struct spiel jeu2int i"E oid A##ic$e_structure1!struct spiel jeu2int i"E oid A##ic$e_pioc$e!int pioc$e0D1"E oid %opie_tableau!int dest012int ori*012int ma7"E

33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ A##ic$e_pioc$e @@@ 33@@@ a##ic$e le contenu d4une structure spieler @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ oid A##ic$e_pioc$e!int pioc$e0D1" O #or!int i60EiJDEi>>"cout JJK p0KJJiJJK16KJJpioc$e0i1EP 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ %opie_tableau @@@ 33@@@ trie un tabeau de R entre @@@ 33@@@ utilise la #ct oid s-ap2et ) @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ oid %opie_tableau!int dest012int ori*012int ma7" O #or!int i60EiJma7Ei>>" dest0i16ori*0i1EP 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@ Attendre_action @@@ 33@@@ %omme son auteur cette routine ne #ait rien @@@ 33@@@ oil5 supprim car Sb$it n4est pas une mt$ode standart @@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ oid Attendre_action!" O ##lus$!stdin"E -$ile !GSb$it!""E P 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 33@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @3

27/27