Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Tableaux multidimensionnels
#1
Hello ici.

Pour une fois, j'ai besoin d'aide, ça change les habitudes.

Je dois stocker, pour un jeu, des informations sur les personnages. Les personnages appartiennent à des joueurs (jusque là c'est normal) et un même joueur peut avoir plusieurs personnages.

Un personnage se définit (pour faire simple) par un pseudo et un royaume.
J'envisageait de faire un tableau de la forme (je l'écris au format PHP):

Code:
$chars = array(
   'nick1' => array(
      0 => array('pseudo' => 'Machin', 'realm' => 'Royaume1'),
      1 => array('pseudo' => 'MachinBis', 'realm' => 'Royaume1')
   ),
   'nick2' => array(
      0 => array('pseudo' => 'MaMachin', 'realm' => 'Royaume1'),
      1 => array('pseudo' => 'MaMachinBis', 'realm' => 'Royaume2')
   )
);
J'ai essayé de faire une création de ce tableau avec une procédure (les données venant d'un fichier):

tcl
# $line est de la forme:
# nick|pseudo|realm
 
foreach line [split $wdata "\n"] {
   set char [split $line "|"]
   if { [array exists [namespace current]::chars([lindex $char 0])]} {
      putlog "Info exists"
      set val [array size [namespace current]::chars([lindex $char 0])]
      putlog "Setted"
   } else {
      set val 0
   }
   set  [namespace current]::chars([lindex $char 0])($val)(pseudo) [lindex $char 1]
   set [namespace current]::chars([lindex $char 0])($val)(realm) [lindex $char 2]
}

Ca ne marche pas, je cherche un autre moyen de stocker mes données (utilisation de dict ?), si vous avez des idées je suis preneur.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#2
Un array est inadapté pour faire ça.
Tu pourrais faire simplement une liste imbriquée :
{{pseudo {perso1 realm1} {perso2 realm2} {...}} {pseudo {perso1 realm1} {perso2 realm2} {...}}}

La plupart des fonctions de traitement de listes permettent l'utilisation de listes imbriquées, par exemple lsearch prend le paramètre -index, lindex accepte plusieurs index afin de pointer une sous-sous-sous liste si nécessaire, etc.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#3
Après des réflexions meuchantes à mon égard, je réponds:
Comme dit sur IRC, je testerai dès que possible et je dirai ce qu'il en est en même temps. Mais là, je n'ai vraiment pas eu le temps de m'y remettre :)

This wasn't a wind :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  manipulation des tableaux tcl à plusieurs dimentions marawam 2 4,993 06/11/2009, 19:43
Last Post: Merwin

Forum Jump:


Users browsing this thread: 1 Guest(s)