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++ Supprimer une ligne d'un tableau


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut C++ Supprimer une ligne d'un tableau
    Bonjour,

    Je souhaite savoir si en C++, il existe une fonction permettant de supprimer la ligne d'un tableau, comme ceci :
    t[0] = A
    t[1] = B
    t[2] = C

    Je supprime t[1], il reste :
    t[0] = A
    t[1] = C

    Merci d'avance, Guillaume.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Parles-tu d'un bète tableau statique/automatique (ou alloué avec new[]) ou d'un std::vector ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    En fait mon tableau est déclaré comme ceci :

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Un tableau statique ou automatique n'est pas redimensionnable.
    Ce que tu peux faire par contre, c'est copier toutes les lignes suivantes vers la ligne que tu voulais supprimer, elle sera donc écrasée.

    La fonction C memmove() peut servir, puisque c'est un bète tableau de int.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Merci pour ta réponse Médinoc.
    Je programme un jeu de "Uno" en C++, et j'ai un tableau qui contient toutes les cartes, qui indique si la carte est dans la pioche, ou si un joueur l'a.
    A la distribution, je tire une carte au hasard, si elle est dans la pioche, on la donne au joueur, sinon, on en tire une autre.
    Et le problème, dès que l'on commence à avoir 9 joueurs, la boucle while dure très longtemps...
    Je voudrai donc faire un tableau en parallèle comprenant que les cartes disponibles dans la pioche.

    Aurais-tu une idée de tableau redimensionnable ?

    Merci d'avance, Guillaume.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Plus simple: Faire un shuffle sur le tableau, et lire les cartes une à une.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    9 joueur et ca rame ????

    il y a vraiement un truc qui cloche, le probleme peut pas venir de la !

    Bouger 2*4*10 int *9 joueurs, ca donne 720 operation / allocation. A moins que ton PC et ta ram marchent a 700 HZ, ca doit venir d'ailleur ton probleme.

  8. #8
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Attention, le but du jeu est de n'allouer qu'une seule fois la mémoire nécessaire à chaque carte, de mélanger les cartes au début, puis de se contenter de faire passer les différentes cartes d'une liste à l'autre , en envisageant le cas échéant, de remélanger le tas "abandonné" quand il passe vers la pioche

    L'*idéal* étant de se baser sur ce que j'ai écrit dans mon intervention sous référence pour la gestion du jeu de carte (les XXX cartes du jeu d'UNO), puis de réfléchir un peu, et sur les bases que j'ai fournies, à la manière de gérer les cartes tenues par les différents joueur...
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Si j'ai bien compris, le plus simple est de faire :
    - Une liste pioche
    - Une liste par joueur
    - Une liste cartes posées
    Et de faire passer les cartes d'une liste à l'autre.

  10. #10
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Mais oui, tout simplement...

    Tu "crées" les cartes (tu alloue la mémoire utilisée par chaque carte) au début de partie, tu place cela dans une liste pour la pioche et tu "mélange" cette liste, pendant le jeu, les différentes cartes se contentent de passer d'une liste à l'autre, et tu détruit l'ensemble des cartes (tu libère la mémoire allouée à chaque carte)juste avant de quitter le jeu
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Bonsoir,

    J'aurai deux questions pour avancer ma prog :

    - Comment mélanger une liste ?
    - Comment créer N listes ? Si il ya 6 joueurs, 6 listes... ?

    Merci d'avance, Guillaume.

Discussions similaires

  1. Supprimer une ligne d'un tableau, et MAJ de la BDD
    Par big x dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/10/2007, 09h14
  2. Supprimer une ligne dans un tableau
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/06/2007, 15h14
  3. Réponses: 1
    Dernier message: 24/04/2007, 17h20
  4. [Conception] Supprimer une ligne d'un tableau à partir d'un CHECKBOX
    Par snakejl dans le forum PHP & Base de données
    Réponses: 71
    Dernier message: 30/05/2006, 08h43
  5. supprimer une ligne dans un tableau
    Par sandball22 dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2006, 21h53

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