Position sur l'echiquier

Résolu
Bonjour,
je suis debutant en programmation, je suis tombe sur un exercice sur le net et j'arrive pas a le faire, j'aurais besoin de votre aide. Il s'agit d'un un programme C qui lit un triplet de caractères (p, c, r) représentant une pièce p du jeu d'échec à une position (c, r) déterminée sur l'échiquier. Les différentes valeurs que peut prendre p sont: R (roi blanc), r (roi noir), D (dame blanche), d (dame noire), F (fou blanc), f (fou noir), C (cavalier blanc), c (cavalier noir), T (tour blanche), t (tour noire), P (pion blanc) et p (pion noir). La coordonnée c (c pour colonne) de la position peut prendre une des valeurs suivantes: a (colonne 1), b (colonne 2), c (colonne 3), …, h (colonne 8). La coordonnée r (r pour rangée) de la position peut prendre une des valeurs suivantes: 1 (rangée 1), 2 (rangée 2), 3 (rangée 3), …, 8 (rangée 8).
merci.
Configuration: Windows XP
Firefox 3.0.6

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut,
    Oui, mais le programme doit faire quoi ?
    Sinon, tu peux commencer par faire une structure définissant le triplet.
    Mais excepté ton triplet, je n'ai pas compris le but du programme.
    1. le but du programme est d'indiquer la position d'un objet sur l'echiquier.
      1. Contributeur
        Oui, mais tu dis dans ton premier post, que le programme lit les triplets à partir d'un échiquier ?
        Comme l'échiquier est passé ? Quelle est sa représentation ?
        1. Voici quelques sorties possibles du programme:

          Le roi blanc est sur la case de la colonne 5 et de la rangee 1.
          La tour noire est sur la case de la colonne 1 et de la rangee 8.
          Le code X est une piece inconnue.
          La dame noire est sur une case inexistante.
          1. Contributeur
            Oui, mais ça ne répond pas à ma question, même si ça aide déjà.
            Je repose ma question : comment les positions des pièces sur l'échiquier seront lues ? Initialisées à la main ? L'utilisateur à l'exécution ? Scan d'un échiquier...
            1. Remarque: Une lettre peut être invalide: comme dans le troisième exemple où la pièce a été spécifiée par la lettre X; ou dans le dernier exemple où la position est invalide (soit que c a été spécifié par une lettre autre que a à h, soit que r a été spécifié par un chiffre autre que 1 à 8).

              Remarque: Lors de la lecture du triplet, en supposant que vous avez nommez vos variables piece, col, et rang, utilisez l'appel suivant à la fonction scanf: scanf(" %c%c%c", &piece, &col, &rang); Petit rappel: un espace devant la spécification de conversion %c demande à la fonction scanf d'ignorer
              tous les «espaces» (espace, tabulation, «enter», etc.).

              Remarque: Pour calculer le numéro de colonne (ou le numéro de ligne), il suffit de se rappeler qu'il est tout à fait correct, avec le langage C, de soustraire 2 caractères afin d'obtenir un entier. Par exemple: 'b' – 'a' + 1 donne l'entier 2.

              Remarque: Votre programme doit calculer tant que l'utilisateur désire entrer de nouveaux triplets de caractère.

              Votre programme doit obligatoirement utiliser l'instruction sélective switch pour tester quelle pièce du jeu a été spécifiée.
              1. Contributeur
                Salut,
                Ok, maintenant je comprends mieux.
                Commence par poser tes questions d'implémentations, ou si t'as déjà commencé ton code poste-le que je puisse t'aider.
                Cdlt
                1. je pense qu'il faut utiliser un tableau, mais je ne suis pas encore arrivé là dans mes lectures, y a t il un autre moyen sans avoir recours au tableau? parce que moi j'arrive pas a le faire avec mes connaissances sur les fonctions.
                  1. Contributeur
                    Tu fais un tableau 8x8 de char;
                    La première dimension représentera la colonne et la seconde la rangée. L'élément contiendra le nom de la figure (r, R, ou autre).
                    Cdlt