[RESOLU]Imbrication de Foreach.

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
LeCaravage
Messages : 10
Inscription : jeu. 15/sept./2011 12:08

[RESOLU]Imbrication de Foreach.

Message par LeCaravage »

Bonjour,
Je sollicite votre aide pour savoir comment on fait pour imbriquer des ForEach qui parcourent une même liste chaine de structure. Je m'explique :
J'ai crée une seule liste chaînée pour stocker tous mes sprites présents sur l'aire de jeu.
Dans la boucle principale, je fais un "ForEach" pour traiter un à un les sprites ennemis qui sont en mode "je tape sur un autre sprite". Le souci c'est que dans la même boucle je dois décrémenter le compteur de vie du sprite (ou élément de la liste chaînée) qui se fait taper dessus. Or, pour le trouver je dois faire un autre ForEach et le problème c'est que lorsque j'ai fini avec le compteur de vie de ce sprite je dois revenir à ma boucle principale de ForEach à la même position pour continuer à chercher d'autres sprites ennemis.

Je sais pas si j'etais assez clair : Donc pour résumer et faire simple, j'imbrique 2 ForEach qui scan la même liste chainee et quand j'ai fini le ForEach de niveau 2 je dois revenir à mon ForEach principal à la même position et ainsi pouvoir finir la boucle comme si de rien n'était.

Merci de votre aide.
Dernière modification par LeCaravage le sam. 10/déc./2011 21:38, modifié 1 fois.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Imbrication de Foreach.

Message par comtois »

peut-être avec PushListPosition() ?

Code : Tout sélectionner

  NewList Numbers()
  AddElement(Numbers()): Numbers() = 1
  AddElement(Numbers()): Numbers() = 2
  AddElement(Numbers()): Numbers() = 5
  AddElement(Numbers()): Numbers() = 3
  AddElement(Numbers()): Numbers() = 5
  AddElement(Numbers()): Numbers() = 2
  
  ; A simple duplicate elimination using a nested iteration
  ;
  ForEach Numbers()
    Value = Numbers()
    PushListPosition(Numbers())
    While NextElement(Numbers())
      If Numbers() = Value 
        DeleteElement(Numbers())
      EndIf
    Wend
    PopListPosition(Numbers())
  Next
  
  ForEach Numbers()
    Debug Numbers()
  Next
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
LeCaravage
Messages : 10
Inscription : jeu. 15/sept./2011 12:08

Re: Imbrication de Foreach.

Message par LeCaravage »

C'est fou, j'imaginais un truc super compliqué.
Merci de ta réponse (rapide!) comtois :D
Répondre