IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[c#] nomer nom d'un objet..


Sujet :

C#

  1. #1
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut [c#] nomer nom d'un objet..
    Bonjour,
    j'aimerai pouvoir nomer le nom d'un objet par une chaine de caractere.
    En gros, j'ai une classe "player", et j'aimerai donner au nom de l'objet representant chaque joueur, le nom du joueur.J'ai aucune idée de comment faire ça, et sur google, je vois pas comment lancer une recherche efficace pour m'aider.
    Merci.
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

  2. #2
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Hum, si tu veux nommer les joueurs et pouvoir les manipuler avec leur noms, moi j'ai une solution (que j'utilisais en C++ donc je sais pas si ya pas plus mieux en C#) :
    Tu créé les variables/fonctions suivantes dans ta classe Player :
    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
    public static ArrayList m_PlayerList;
     
    public Player()
    {
       //Ton code
       AddPlayer(this);
    }
     
    public ~Player()
    {
       RemovePlayer(this);
    }
     
    public static Player[] GetAllPlayers()
    {
        return (Player[]) m_playerList; // Pas trop sûr du cast là
    }
     
    public static Player GetPlayerByName(string Name)
    {
       foreach(Player player in GetAllPlayers())
         if(player.Name == Name) 
            return player;
       return null;
    }
     
    public static void AddPlayer(Player player)
    {
       RemovePlayer(player);
       m_PlayerList.Add(player);
    }
    public static void RemovePlayer(Player player)
    {
       if(!m_PlayerList.Contains(player))
          return;
       m_PlayerList.Remove(player);
    }
    Et ainsi pour manipuler un player par son nom tu n'as que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Player.GetPlayerByName("DeusXL").Fonction();
    à faire....

    Voilà j'ai bon docteur ?

  3. #3
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    oups! excuse Deus, je me suis mal exliqué (ton code pourra me servir pour autre chose si ca marche).
    En fait j'aimerai instancier l'objet de cette facon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Player <nom du joueur> = new Player();
    <nom du joueur> etant connu à l'avance.

    Si jamais ce n'est pas possible, je crois que j'avais vu un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Player player{i} =new Player();
    i++;
    Ainsi, on aurait une liste de joueur comme ca: player1, player2,etc

    J'espere que l'une des methode marche(la 1ere serait la mieux)

    edité par neguib pour
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Je ne crois pas que ce soit possible, mais d'un autre côté je ne connais pas toutes les possibilités du Framework

    Par contre, même si c'était possible, je ne vois pas l'intérêt de la chose. Pourquoi veux-tu nommer tes instances uniquement ainsi ? Pour quelles utilisations ? Car à mon avis ce que tu souhaites n'est probablement pas nécessaire
    Pas de questions techniques par MP

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tu te trompes orelero
    Tu n'es pas en train de nommer un objet lorsque tu veux faire cela mais tu es en train de nommer son adresse mémoire, ce qui n'est pas la même chose
    Autant correctement faire de la POO en te demandant ce que represente un Player
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public struct Player
    {
       public string Name;
       //...etc..
    }
    Ensuite le Jeu lui même doit être en mesure de manager sa collection de joueurs, l'identification par le nom n'interresse que lors d'un affichage par exemple mais c'est accessoire et sans utilité pour le deroulement du jeu n'est-ce pas
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre actif
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Points : 260
    Points
    260
    Par défaut
    Sinon, tu peux te servir d'un dictionnaire (par exemple un Hashtable) qui fera la correspondance entre l'identifiant de ton joueur (son Id, son nom, ou ce que tu veux) et la classe qui lui est associée.
    ZTAB (Ze Text Adventure Builder)

    Logiciel très intuitif et ergonomique de création de jeux d'aventure et de livres dont vous êtes le héros.

    http://sites.google.com/site/ztabsoft/

  7. #7
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    ok ok d'accord, c'est vrai qu'en y reflechissant c'est pas nessaire du tout .
    Je programme en amateur donc j'ai pas l'esprit POO.
    Donc en fait ce que je peux faire, à chaque fois que je veux créer un joueur, c'est juste: Player player=new player();
    et ensuite placer player dans un tableau .
    Et dés que je veux chercher un joueur, je fais un parcours du tableau en verifiant si "nom du joueur"==tableau[i].getName() ?
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

  8. #8
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    Citation Envoyé par orelero
    Et dés que je veux chercher un joueur, je fais un parcours du tableau en verifiant si "nom du joueur"==tableau[i].getName() ?
    ou tu utilise un HashTable comme le suggere Harry_polin.
    la table de hash fonctionne comme un index en associant une cle (le nom du joueur ici) avec une données (la classe du joueur ici).
    tu as juste à demandé la données de la clé a la hash table après pour obtenir ta classe sans avoir à rechercher dans le tableau.

  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Je soutiens l'idée du HashTable qui va te simplifier la vie orelero
    donc abandon de l'idée d'une classe specifique Player
    mais utilisation d'un IDictionary
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    HashTable MyPlayers = new HashTable();
     
    //...
    private void AddPlayer(string name, int score)
    {
       this.MyPlayers.Add(name, score);
    }
    //...
    private void SetNewScore(string name, int newscore)
    {
       this.MyPlayers[name] =newscore;
    }
    //...etc...
    Classe Hashtable
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  10. #10
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    hashtable je ne connaissais pas, je vais essayer. Merci à vous
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net 2.0] Comment récuperer le nom d'un objet pour le modifier ?
    Par pti_pierrot dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/07/2006, 13h46
  2. Nom d'un objet swing
    Par menuge dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 09/05/2006, 17h09
  3. [POO] Contenu d'une variable nom d'un objet
    Par reventlov dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/05/2006, 17h04
  4. Recuperer le nom de l'objet du champ en cours.
    Par gregco1 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/02/2006, 14h36
  5. Réponses: 7
    Dernier message: 03/12/2004, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo