List a plusieur dimension

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

List a plusieur dimension

Message par Thyphoon »

La question a déjà été demandé mais la reponse était pas claire...

Peux ton faire un tableau conteant une list
Je m'explique J'ai plusieurs personnages dans un jeu qui peuvent se balader sur une carte en autonomie (Ai).
Le chemin de chaque personnages serait stocker dans une liste (pour eviter de recalculer le chemin tout le temps)
exmple:

Code : Tout sélectionner

Nb_Perso=20; Nombre de personnage se balladant dans la carte
Structure coord
  x.l
  y.l
Endstructure

Global Newlist Dim chemin.coord(Nb_Perso)()
Y a t'il une autre solution ?
Merci
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

pour faire ca, j'utilise en ce moment la lib vector de lionel... Mais toute autre solution serait (vraiment) la bienvenue.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

@typhoon
je me trompe peut etre mais tu peux faire comme çà :

Code : Tout sélectionner

#Nb_Perso = 20 ; Nombre de personnage se balladant dans la carte 


Structure COORDS
  x.l 
  y.l 
EndStructure


Structure CHEMIN
  coord.COORDS[#Nb_Perso]
EndStructure 


Global NewList chemin.CHEMIN()


If AddElement(chemin())
  
  For i = 0 To #Nb_Perso - 1
    chemin()\coord[i]\x = Random(640)
    chemin()\coord[i]\y = Random(480)
  Next
  
EndIf
on peut facilement simuler un tableau dans une structure
grace à cette syntaxe coord.COORDS[#Nb_Perso]
et puisqu'on peut assigner une structure à une liste alors çà devrait te convenir.
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Flype a écrit :@typhoon
je me trompe peut etre mais tu peux faire comme çà :

Code : Tout sélectionner

#Nb_Perso = 20 ; Nombre de personnage se balladant dans la carte 


Structure COORDS
  x.l 
  y.l 
EndStructure


Structure CHEMIN
  coord.COORDS[#Nb_Perso]
EndStructure 


Global NewList chemin.CHEMIN()


If AddElement(chemin())
  
  For i = 0 To #Nb_Perso - 1
    chemin()\coord[i]\x = Random(640)
    chemin()\coord[i]\y = Random(480)
  Next
  
EndIf
on peut facilement simuler un tableau dans une structure
grace à cette syntaxe coord.COORDS[#Nb_Perso]
et puisqu'on peut assigner une structure à une liste alors çà devrait te convenir.
Exelent j'avais pas penser a ça .. je teste ça tout de suite ! Merci :D
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

L'idée était bonne mais ça ne fonctionnera pas ... :(

Car mon idée était que pour chaque personnage des qu'il arrive au point suivant du chemin de la supprimer de la liste..mais si je supprime pour un personnage ça supprimera pour les autres....

mmm tu vois ce que je veux dire ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Remarque à propos de çà :

Code : Tout sélectionner

Structure POS
  x.l 
  y.l 
EndStructure


Structure CHEMIN
  personnage.POS[100]
EndStructure 


Global NewList chemin.CHEMIN()


If AddElement(chemin())
  
  chemin()\personnage\x = 44
  chemin()\personnage\y = 45

  chemin()\personnage[0]\x = 46
  chemin()\personnage[0]\y = 47
  
  Debug chemin()\personnage\x
  Debug chemin()\personnage\y
  
  Debug chemin()\personnage[0]\x
  Debug chemin()\personnage[0]\y
  
EndIf

donc

chemin()\personnage\x = 44
chemin()\personnage\y = 45

équivaut à

chemin()\personnage[0]\x = 46
chemin()\personnage[0]\y = 47

mais pas à

chemin()\personnage[1]\x = 46
chemin()\personnage[1]\y = 47

je dis çà parceque j'ai jamais remarqué çà avant en plus :D
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Marrant ça ...
(tu as vu mon message juste avant le tient ?)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ah non j'avais pas vu :)

par contre désolé mais je vois pas trop en fait.
faudrait voir un aperçu de ton code...
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Flype a écrit :ah non j'avais pas vu :)

par contre désolé mais je vois pas trop en fait.
faudrait voir un aperçu de ton code...
ça serait un peu lourd... En attendant j'utilise un tableau a 2 dimensions plus un autre tableau qui me donne le nombre de point pour chaque personage. ça fonctionne :)
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Dans la Lib Vector, tu peux en effet faire ce que tu recherche...
Mais elle n'est pas encore dispo en V4

Lio :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

lionel_om a écrit :Dans la Lib Vector, tu peux en effet faire ce que tu recherche...
Mais elle n'est pas encore dispo en V4

Lio :wink:
Y a plus qu' attendre alors :P
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tout comme la lib vector,
j'ai aussi fait mon propre jeu de fonctions de liste chainees / arbre.

voir ici :
http://purebasic.forum-gratuit.com/view ... highlight=

il a plusieurs examples d'utilisation. et c'est `PureBasic 4 ready` :wink:

maintenant que TailBite est prêt je vais sans doute en faire une userlib d'ailleurs.
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Flype a écrit :tout comme la lib vector,
j'ai aussi fait mon propre jeu de fonctions de liste chainees / arbre.

voir ici :
http://purebasic.forum-gratuit.com/view ... highlight=

il a plusieurs examples d'utilisation. et c'est `PureBasic 4 ready` :wink:

maintenant que TailBite est prêt je vais sans doute en faire une userlib d'ailleurs.
A oui j'étais passé a côté durant mes recherches.
Merci beaucoup c'est exelent ! :)
Répondre