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++ Probleme Programme simple (RE)


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut C++ Probleme Programme simple (RE)
    Bonjour a vous tous,
    Ayant poster ce message dans la mauvaise Rubrique par erreur, je re-tente ma chance ici.

    Alors voilà, je suis étudiant en IUT Informatique depuis cette année et je découvre de ce fait le C++.
    J'en appel a votre aide puisque j'ai un problème concernant un programme que j'aimerai résoudre, ça n'a pas l'air compliqué et pourtant j'ai passé l'après-midi a essayer de déchiffrer les messages d'erreurs de mon compilateur...

    Alors voila, je dois créer une carte (jusque là j'ai réussi), ses dimensions sont du 3x3 les coins de cette carte corresponde a un mur (le but final de mon programme est de créer un labyrinthe) j'utilise donc le code ASCII 176 pour cela et le reste de ma carte correspond a des espaces.
    Voici mon Programme :

    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
    #include <iostream>
     
    int main()
    {
    char leC=176;
     
    int tailleCarte=3;
     
    char laCarte[tailleCarte][tailleCarte];
     
    for(int laLigne(0); laLigne<tailleCarte; laLigne++){
    for(int laColonne(0); laColonne<tailleCarte; laColonne++){
     
    laCarte[laLigne][laColonne]=' ';
    laCarte[0][0]=leC;
    laCarte[0][2]=leC;
    laCarte[2][2]=leC;
    laCarte[2][0]=leC;
    std::cout<<laCarte[laLigne][laColonne];
    }
    std::cout<<'\n';
     
    }
    }
    Ma carte était désormais créer il faut que je créer un plateau de jeu (21x21), qui peut donc contenir 7x7 cartes coller les unes aux autres, et c'est là que ça se complique...
    J'ai d'abord essayer avec un struct, mais je n'ai pas réussi j'ai donc abandonner et essayer de ne le faire qu'avec des fonctions et des boucles for or une fois de plus je n'y suis pas arrivé.

    Si parmi vous il y en aurait qui pourrais me mettre sur la bonne piste s'il vous plait, j’apprécierai énormément.

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 631
    Points : 10 558
    Points
    10 558
    Par défaut


    C'est super vague sans plus de détails

    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
    typedef struct e_Card {
    // Constructor
    public:
     
        e_Card(int init_id, int init_corner_x, int init_corner_y) :  corner_x(init_corner_x), corner_y(init_corner_y), id(init_id) {}
     
     
    // Attributes
    public:
     
        unsigned int corner_x, corner_y;
     
        unsigned int id;
    } Card;
     
     
    /* ... */
     
    //  A array of cards is a better solution
        Card card_1(1, 0, 0);
        Card card_2(2, 0, 6);
        Card card_3(3, 6, 0);
     
        unsigned char game_board[21][21];
     
    //  0: no card - or an other value as 0xFF
        std::memset(game_board, 0, 21*21/** sizeof(unsigned char)*/); // #include <string.h>
     
    //  Display card 1
        for(unsigned char x = 0, y = card_1.corner_y; y <= 7; ++y) {
            for(x = card_1.corner_x; x <= 7; ++x) {
                game_board[x][y] = card_1.id;
            }
        }

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Salut,

    déjà ton code est faux puisque tu utilises des VLA qui ne sont pas supportés en C++.

    Ensuite, avec juste un chouilla "d'archi" c'est plutôt simple à concevoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Map {
     char map[3*3];
    };
    struct Maze {
     Map[7*7];
    };
    Et voilà, tu manipules un labyrinthe de 7*7 cartes.
    Tu ajoutes des méthodes pour manipuler tout ça et basta.

    btw http://cpp.developpez.com/faq/cpp/?p...urs-dimensions
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Effectivement ton message est un peu vague, donc il y a des chances que mes conseils tombent à côté, néanmoins:

    1. Utilises les avantages de C++:
    * crée des objets qui contiennent les données et les méthodes pour les manipuler, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Card {
     
      std::vector<char> cells; // les données
     
      enum Corner { NE, NO, SO, SE };
     
      bool close_corner(Corner c); // les méthodes
      bool open_corner(Corner c);
      void draw(offset x, offset y, Grid& g);
    };
    ces méthodes forment une interface; tant qu'elle ne bouge pas tu peux modifier la représentation des données sans remettre en cause le reste du programme.

    *utilise les conteneurs C++: avec un std::vector tu peux décider de la dimension pendant l'exécution, avec un tableau C tu es coincé à 21*21 lors de la compilation.

    2) pour le dessin, utilise un tableau intermédiaire (Grid dans l'exemple ci-dessus): chaque carte se dessine dans le grand tableau (mis à disposition par la classe Maze) à l'offset qui correspond à ses coordonnées. Ensuite tu peux afficher le tableau complet et t'éviter les problèmes de retour à la ligne que tu sembles avoir. De plus tu pourras garder une interface presque identique si tu portes le programme vers une interface graphique.

Discussions similaires

  1. programme simple probleme linker
    Par ____22 dans le forum C
    Réponses: 6
    Dernier message: 02/05/2009, 00h31
  2. Réponses: 21
    Dernier message: 04/06/2006, 18h22
  3. [text] probleme avec simple quote
    Par bor1s dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/12/2005, 16h03
  4. [Debutant] Probleme de (simple) heritage
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 08/12/2004, 10h53
  5. [langage] Problème tout simple
    Par marouanitos dans le forum Langage
    Réponses: 5
    Dernier message: 24/09/2003, 11h25

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