Université de la Polynésie

Française

Partiel Algo et prog C

Deug MIAS 2

Année 2000-01

Mardi 31 Octobre

0.                Modalités

1.Vous disposez de une heure trente minutes,

2.vos documents personnels sont autorisés,

3.le code C sera commenté (en particulier avec vos noms en début de programme),

4.le barème est donné à titre indicatif et est susceptible d'être modifié,

5.vous rendrez une copie officielle d’examen non anonymée sur laquelle vous aurez répondu aux questions d’algorithmiques et contenant le listing papier de votre programme.

1.                Le jeu des onze (env. 21 pts !)

Le but est de programmer un jeu de cartes de type solitaire et dont le déroulement est entièrement déterminé par l’ordre initial des cartes dans le paquet. En clair, il n’y a aucune stratégie, il s’agit de suivre les règles du jeu jusqu’à arriver à une situation gagnante ou perdante.

Les 52 cartes d’un jeu seront représentées par de simples entiers avec la convention 1=As, 11=Valet, 12=Dame, 13=Roi. La couleur (Pique, Trèfle, …) n’a aucune importance dans ce jeu.

On commence le jeu en posant une main de 9 cartes, face visible, sur la table. Si deux des neuf cartes totalisent 11 (par exemple un 7 et un 4), on les élimine. Si trois des neuf cartes forment un triplet 11, 12, 13 (Valet, Dame, Roi), on les élimine également. Dès que des cartes ont été éliminées, les cartes éliminées sont remplacées par les cartes suivantes du paquet.

1.1           Définir une structure de données représentant le paquet de 52 cartes (sans tenir compte des couleurs) et une autre représentant une main de 9 cartes (env. 1 pts)

1.2           Donner un algorithme (sous forme de boîtes ou de pseudo langage) de construction du paquet de 52 cartes dans un ordre quelconque (env. 1 pts)

1.3           Ecrire une procédure ou fonction implémentant l’algorithme précédent (env. 3 pts)

1.4           Donner un algorithme (sous forme de boîtes ou de pseudo langage) cherchant si il existe une paire de cartes dont la somme est 11 et rendant dans ce cas la position des cartes en question dans la main (env. 2 pts)

1.5           Ecrire une procédure ou fonction existe_paire implémentant l’algorithme précédent (env. 3 pts)

1.6           Donner un algorithme (sous forme de boîtes ou de pseudo langage) cherchant si il existe un triplet 11, 12, 13 et rendant dans ce cas la position des cartes en question dans la main (env. 2 pts)

1.7           Ecrire une procédure ou fonction existe_triplet implémentant l’algorithme précédent (env. 3 pts)

1.8           Ecrire une procédure ou fonction très simple d’affichage d’une main (env. 1 pts)

1.9.           Donner un algorithme (sous forme de boîtes ou de pseudo langage) de jeu répétant la recherche des paires et des triplets et le remplacement des cartes avec détection d’une fin victorieuse ou perdante (env. 2 pts)

1.10.      Ecrire une procédure ou fonction jeu implémentant l’algorithme précédent (env. 3 pts)