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 :

Affichage pendu - tableau de char


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Par défaut Affichage pendu - tableau de char
    Bonjour Tous !

    Bon, je pose ça ici car ça me semble être le bon endroit...
    On m'a refilé un jeu de pendu à coder, je m'en suis bien sorti mais je bloque sur un truc : l'affichage du pendu !!!

    Pour cela on nous a fourni un tableau (de tableau) de chaînes de caractères et il faut implémenter la fonction qui sera ensuite appelée dans le main pour afficher le pendu.
    Sauf que je ne sais pas du tout comment on manipule ce truc là

    Voici le tableau en question :

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
     
    #define nbStep 7
    #define height 12
    #define width 15
     
    char pendu[nbStep][height][width] =
    {
        "  _______     ",
        " |       |    ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |      _|_   ",
        " |      | |   ",
        " |      |_|   ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |      _|_   ",
        " |     /| |   ",
        " |    / |_|   ",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |      _|_   ",
        " |     /| |\\ ",
        " |    / |_| \\",
        " |            ",
        " |            ",
        " |            ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |      _|_   ",
        " |     /| |\\ ",
        " |    / |_| \\",
        " |       ^    ",
        " |      /     ",
        " |     /      ",
        " |            ",
     
     
        "  _______     ",
        " |       |    ",
        " |       _    ",
        " |      / \\  ",
        " |      \\_/  ",
        " |      _|_   ",
        " |     /| |\\ ",
        " |    / |_| \\",
        " |       ^    ",
        " |      / \\  ",
        " |     /   \\ ",
        " |            "
    };
    Je suppose que selon le coup joué on veut effectuer renvoi des "lignes" du tableau correspondant à l'état du pendu.
    Renvoi de 12 lignes à partir de la première ligne correspondant au coup en cours (sans oublier le \n)
    La "largeur" de nombre pendu restant toujours 15.

    Bref, en tout cas mon pendu je ne sais pas comment l'afficher !
    Du coup toute aide, remarque ou commentaire est le bienvenu

    Merci les gens !!!!

  2. #2
    Membre émérite
    Avatar de emixam16
    Homme Profil pro
    Chercheur en sécurité
    Inscrit en
    Juin 2013
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chercheur en sécurité

    Informations forums :
    Inscription : Juin 2013
    Messages : 335
    Par défaut
    Bonjour,

    Pour résoudre ton problème tu dois te poser les questions (simples!) suivantes.
    -> Comment afficher une ligne. Exemple: quelle ligne de code dois-je utiliser si je veux afficher la 2 ligne de la 3 ème situation?
    -> Comment afficher la situation complète c.-à-d la 2ème situation.


    Évidemment tu n'es pas sur tu peux faire un petit programme de test pour vérifier.

    NOTE: c'est un détail mais je trouve que c'est une idée très moyenne de déclarer comme ça. C'est extrêmement dépendant des paramètres de ton tableau. Par exemple si une ligne passe à une largeur de 8 ça va décaler tous les autres éléments. Il aurait été bien plus juste et propre de le déclarer comme pendu={ {"val1", "val2"}, {"val1", "val2"}, ...};. Mais c'est la faute de ton prof pas la tienne donc ne t'occupe pas de ça.

  3. #3
    Membre éclairé Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par défaut
    Je te réponds par l'exemple, à toi d'adapter à un code plus générique.
    Exemple d'un affichage de l'état final, soit la figure n°7 :

    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
     
    #include <stdio.h>
     
    int main()
    {
      int s = 7;
      int h = 0;
     
      for (; h < height; h++)
        {
          printf("%s\n", pendu[s-1][h]);
        }
     
      return 0;
    }
    Nom : capture.jpg
Affichages : 436
Taille : 18,5 Ko

  4. #4
    Membre confirmé
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Par défaut
    Merciiiiiii à vous deux !!!!
    J'avoue que je ne suis pas certaine d'avoir bien plus compris le bazar que précédemment mais j'arrive à afficher mon pendu, j'ai même ajouté un step !
    Ce sont ces fameux steps que je ne comprends pas bien. Pour être plus précise, je crois que je ne comprends pas la déclaration du tableau de tableau de char.
    Bref, il faudrait que je m'y penche à nouveau mais on attaque java maintenant donc je vais vous solliciter sur d'autre sujets
    Nom : Capture du 2020-02-04 12-17-39.png
Affichages : 340
Taille : 3,8 Ko

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 831
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par viry0ne Voir le message
    Ce sont ces fameux steps que je ne comprends pas bien. Pour être plus précise, je crois que je ne comprends pas la déclaration du tableau de tableau de char.
    En fait, ce n'est pas un tableau de tableau de char... mais un tableau de tableau de tableau de char. Bref un truc 3D.
    Toutefois il a été écrit comme un truc 1D et c'est probablement ça qui te gêne. On a le droit de faire ça quand l'ensemble des éléments colle parfaitement au schéma du tableau (car il faut que tu saches que quelle que soit les dimensions d'un tableau, en mémoire ça reste du 1D).
    Voici l'écriture exacte telle qu'elle aurait dû être si on veut être rigoureux

    Code c : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    char pendu[nbStep][height][width] =
    {
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |	  _|_   ",
    		" |	  | |   ",
    		" |	  |_|   ",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |	  _|_   ",
    		" |	 /| |   ",
    		" |	/ |_|   ",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |	  _|_   ",
    		" |	 /| |\\ ",
    		" |	/ |_| \\",
    		" |			",
    		" |			",
    		" |			",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |	  _|_   ",
    		" |	 /| |\\ ",
    		" |	/ |_| \\",
    		" |	   ^	",
    		" |	  /	 ",
    		" |	 /	  ",
    		" |			",
    	},
    	{
    		"  _______	 ",
    		" |	   |	",
    		" |	   _	",
    		" |	  / \\  ",
    		" |	  \\_/  ",
    		" |	  _|_   ",
    		" |	 /| |\\ ",
    		" |	/ |_| \\",
    		" |	   ^	",
    		" |	  / \\  ",
    		" |	 /   \\ ",
    		" |			"
    	},
    };
    Et c'est bien du 3D car le compilo remplace une string (ex "123") par un tableau (ex {'1', '2', '3', '\0'}).

    Citation Envoyé par viry0ne Voir le message
    mais on attaque java maintenant donc je vais vous solliciter sur d'autre sujets
    Ce ne sera pas nous
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2005
    Messages : 60
    Par défaut
    Merci pour les explications !
    C'est vrai que quand on débute, les "raccourcis" que peuvent prendre les initiés déstabilisent
    J'avais bien compris que c'était un truc 3D mais j'avais vraiment du mal à me le représenter. C'est plus clair en l'écrivant de façon explicite !

    Citation Envoyé par Sve@r Voir le message
    Bonjour
    Ce ne sera pas nous
    ça c'est pô grave, j'vous aime bien toujours quand même et je crois (mais cela reste à confirmer), que je préfère le C au java...
    donc je reviendrais p'têt par ici :p

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

Discussions similaires

  1. affichage de tableau char
    Par Phlogos dans le forum Débuter
    Réponses: 5
    Dernier message: 24/06/2010, 07h08
  2. Ansistring et tableau de char
    Par rabbi_jaccob dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/12/2004, 11h51
  3. affichage de tableau dynamique
    Par EJ dans le forum XMLRAD
    Réponses: 12
    Dernier message: 04/06/2004, 10h58
  4. Adresse d'un tableau de char
    Par Trap D dans le forum C
    Réponses: 8
    Dernier message: 23/12/2003, 12h02
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

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