Mélange d'une liste chaînée
Bonjour à vous,
Etant étudiant en première année d'informatique, j'ai comme projet de programmer un jeu de cartes (la bataille) pour 2 joueurs en Pascal. J'ai déjà commencé par définir les types en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| TYPE
Couleurs = (pique, coeur, carreau, trefle);
Liste = ^Carte;
NumFig = record
num : integer;
figure : char;
end;
Carte = record
couleur : Couleurs;
valeur : NumFig;
suivant : Liste;
end;
Pile = ^Carte; |
Puis la procédure pour remplir le paquet de cartes (liste chaînée) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| PROCEDURE remplissage (VAR paquet1 : Liste);
VAR
ElementP : liste; i : integer;
BEGIN
paquet1 := NIL;
FOR i:=1 TO 13 DO
BEGIN
NEW (ElementP);
ElementP^.couleur := pique ;
ElementP^.valeur.num := i;
ElementP^.suivant := paquet1;
paquet1 := ElementP;
NEW (ElementP);
ElementP^.couleur := coeur ;
ElementP^.valeur.num := i;
ElementP^.suivant := paquet1;
paquet1 := ElementP;
NEW (ElementP);
ElementP^.couleur := trefle ;
ElementP^.valeur.num := i;
ElementP^.suivant := paquet1;
paquet1 := ElementP;
NEW (ElementP);
ElementP^.couleur := carreau ;
ElementP^.valeur.num := i;
ElementP^.suivant := paquet1;
paquet1 := ElementP;
END;
END; |
Là où je bloque, c'est comment mélanger cette liste chaînée, pour pouvoir ensuite distribuer directement les cartes vers les 2 autres listes (celles des joueurs). Je sais qu'à la place d'une liste chaînée, je pourrais utiliser un tableau, la manipulation y serait plus facile. Mais le professeur a bien précisé qu'il fallait utiliser les structures de données dynamiques. Toute aide me serait précieuse!
Merci d'avance.
Très cordialement.