Deux listes chaînées à comparer et modifier

poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009 - 5 avril 2006 à 19:31
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 - 6 avril 2006 à 18:28
Bonjour,
je suis en train de créer un jeu à la shoot them up.
De façon simplifié mon problème est le suivant :
j'ai une liste chaînée qui contient des vaisseaux amis et une autre liste chaînée qui contient les vaisseaux ennemis.
Je dois gérer les collisions entre ces vaisseaux.
J'ai appris que lorsque l'on gère une liste chaînée on doit gérer deux cas:
-celui où la liste chainée possède un élément
-celui où la liste possède n éléments.

Comme j'ai deux listes, ça fait 4 cas possibles à gérer.

Losque deux vaiseaux sont en collision (ils se touchent), il y a suppression du vaisseau ennemi et ami.
Donc ça complique l'histoire puisque les cas peuvent changer en temps réel.

Je possède une fonction dans mon programme qui permet de supprimer le vaisseau suivant, par rapport à celui transmis en paramètre, et une fonction qui permet de détruire la pile.

Quelqu'un possède t il du code pour gérer ce genre de problèmes ?

Merci.

PS : ça fait plusieurs heures que je cherche, et je ne trouve pas de solutions.

3 réponses

Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
5 avril 2006 à 22:16
Bonjour,
je ne vois pas pourquoi on devrais faire un cas particulier pour une liste à un élément .
Fais voir ta structure de donnée(la liste chaînée) pour voir çà .

A m a u r y
0
poiuytrez3 Messages postés 150 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 17 mars 2009
6 avril 2006 à 15:01
Tu es obligé de faire un cas particulier puisque lorsque tu as pour objectif de supprimer un élément d'un liste, si tu veux la supprimer alors que tu es déjà dessus, c'est trop tard puisqu'il faut que tu reviennes en arrière pour faire des modifs. Donc la techinique c'est de faire des tests à chaque fois sur la structure suivante pListe->suiv. Mais pour tester le premier élément, ça ne marche pas... Donc il faut séparer les deux cas.
0
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
6 avril 2006 à 18:28
utilise des liste chaînée circulaire ou alors utilise des listes doublement chaînée(puisque tu dois utiliser des listes simplement chaînées)

A m a u r y
0
Rejoignez-nous