Proposition d’une solution du problème :
Partie 1 :
1) T.D.N.T
Nouveaux Types
Type Domino =
Enregistrement
P1 : Entier
P2 : Entier
Fin
Fich = Fichier de Domino
Tab=Tableau de 28 Domino
2)Remplir le fichier [Link] par 28 pièces de dominos
distinctes
procédure Remplir (@F : Fich)
Début
Ouvrir ("c:\[Link]", F, "wb")
T.D.O.L
Pour i de 0 à 27 faire
Répéter Objet T/N
T[i]. P1←aléa (0,6) i Entier
T[i]. P2←aléa (0,6) Dstinct Fonction
Jusqu’à (Distinct(T,i))
Fin pour
Pour i de 0 à 27 Faire
Ecrire(F, T[i])
Fin pour
Fermer(F)
Fin
Fonction Distinct (T :Tab, i :entier) :booléen
Début
v← vrai
j←0
Tant que j<i et v= vrai faire
Si(T[j].P1= T[i].P1)et (T[j].P2= T[i].P2) ou (T[j].P1= T[i].P2) et
(T[j].P2= T[i].P1) alors
v← Faux
si non T.D.O.L
j← j+1 Objet T/N
Fin si j Entier
Fin Tant que v booleen
Retourner v
Fin
Partie 2 :
1) Ouverture des fichiers (sur C:)
Ouvrir("c:\[Link]", FJ, "rb")
Ouvrir("c:\[Link]", F1, "rb")
2) vérifier si le joueur 1 peut poser un domino ou non
Procédure Peut Jouer (@FJ, F :Fich)
T.D.O.L
Début
Lire(FJ, D) Objet T/N
V1 ← D.P1 D ,X Domino
Tant Que Non Fin_Fichier(FJ) Faire V1,V2 Entier
Lire (FJ, D) Trouvé Booléen
Fin Tant Que
V2 ← D.P2
Trouvé ← Faux
Tant Que Non Fin_Fichier(F1) ET Non Trouvé Faire
Lire(F1, X)
Si (X.P1 = V1) Ou (X.P2 = V1) Ou (X.P1 = V2) Ou (X.P2 = V2) Alors
Trouvé ← Vrai
Fin Si
Fin Tant Que
Fermer (FJ)
Fermer(F1)
Si Trouvé Alors
Écrire ("Le joueur peut poser un domino.")
Sinon
Écrire ("Le joueur ne peut pas jouer.")
Fin Si
Fin