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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.