• 8 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

Ce cours existe en livre papier.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 17/10/2022

Manipuler des notions avancées du C++

Compétences évaluées

  • Manipuler des notions avancées du C++

Description

Au fil des questions de ce quiz, vous allez créer un programme qui mélange les lettres d'un mot et demande de retrouver le mot mystère qui se cache derrière ces lettres. Pour y arriver, vous allez utiliser les notions que vous avez découvertes dans les chapitres précédents.

Voici le principe du jeu "Le mot mystère" : vous allez réaliser un jeu qui se déroule de la façon suivante :

  1. Le joueur 1 saisit un mot au clavier ;
  2. L'ordinateur mélange les lettres du mot ;
  3. Le joueur 2 essaie de deviner le mot d'origine à partir des lettres mélangées.

Le  main  sera alors décomposé en 3 parties :

int main()
{    
    //1 : On demande de saisir un mot
    //2 : On mélange les lettres du mot
    //3 : On demande à l'utilisateur quel est le mot mystère
    return 0;
}

Voici un exemple de partie du jeu que vous allez réaliser :

Saisissez un mot à l’abri des regards : MYSTERE

Quel est ce mot ? MSERETY
RESEMTY
Ce n'est pas le mot !

Quel est ce mot ? MSERETY
MYSTERE
Bravo !

Avant toute chose, il faut ajouter au début du fichier les bibliothèques ci-dessous et l’espace de nommage  std:

#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
 
using namespace std;
  • Question 1

    Vous allez commencer par créer deux variables de type  string  et un pointeur de type  string :

    • motMystere  : le mot à trouver
    • motUtilisateur  : le mot saisie par l’utilisateur
    • motMelange  : un pointeur qui contiendra le mot mélangé

     Quelles lignes permettent de déclarer les deux variables (  motMystere  ,   motUtilisateur  ) et le pointeur (  motMelange  ) ?

    • string motMystere, motUtilisateur;
      string motMelange(nullptr); 
      
    • string motMystere, motUtilisateur;
      string *motMelange(nullptr);
      
    • string motMystere, motUtilisateur;
      pointer *motMelange(nullptr);
      
    • string motMystere, motUtilisateur;
      string pointer motMelange(nullptr);
      
  • Question 2

    Ajoutez les instructions suivantes pour récupérer le mot mystère avant de commencer le jeu : 

    cout << "Saisissez un mot à l’abri des regards : ";
    cin >> motMystere;
    

    Quelle instruction permet d’allouer dynamiquement la mémoire du pointeur  motMelange  et de l'initialiser avec le mot mystère ?

    • motMelange = new(motMystere);

    • motMelange = malloc string(motMystere);

    • motMelange = allocate string(motMystere);

    • motMelange = new string(motMystere);

  • Question 3

    Vous allez utiliser la fonction ci-dessous pour mélanger le mot mystère. Elle va prendre en paramètre le pointeur  motMelange  qui contient le mot mystère. Ensuite, dans la fonction, vous allez modifier la valeur du pointeur par le mot mystère avec les lettres mélangées. Je vous invite à lire la fonction et essayer de comprendre chaque instruction avant de répondre à la question plus bas.

    void melangerLettres(string *mot)
    {
        string melange;
        int position(0);
        std::cout << *mot << endl;
     
       //Tant qu'on n'a pas extrait toutes les lettres du mot
        while (mot->size() != 0)
        {
            //On choisit un numéro de lettre au hasard dans le mot
            position = rand() % mot->size();
            //On ajoute la lettre dans le mot mélangé
            melange += mot->at(position);
            //On retire cette lettre du mot mystère
            //Pour ne pas la prendre une deuxième fois
            mot->erase(position, 1);
        }
        //On assigne le mot mélangé au pointeur
        *mot = melange;
    }
    

    Comment pouvez-vous appeler la fonction  melangerLettres  dans le  main  ?

    • melangerLettres(*motMelange);

    • motMelange = melangerLettres(motMelange);

    • melangerLettres(motMelange);

    • melangerLettres{motMelange};

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous