Partager via


Utiliser l’IA pour créer une application console C++ dans Visual Studio

Ce tutoriel vous montre comment utiliser GitHub Copilot pour créer rapidement une application console C++ dans Visual Studio. Vous créez une version console de Game of Life de Conway, un automaton cellulaire classique.

Conway’s Game of Life a été conçu par le mathématique John Conway. Il se compose d’une grille de cellules qui peuvent être vivantes ou mortes. Le jeu évolue automatiquement en fonction de règles simples et produit des modèles complexes et évolutifs qui montrent comment un comportement complexe peut émerger des règles mathématiques de base.

GitHub Copilot est un assistant de codage basé sur l’IA qui vous permet d’écrire du code plus rapidement, de réduire les erreurs et d’explorer de nouvelles solutions. Certains avantages de l’utilisation de Copilot lors du codage en C++ :

  • Générez des fonctions ou des classes C++ entières à mesure que vous tapez.
  • Suggérer des complétions de code basées sur des commentaires ou des invites en langage naturel.
  • Obtenez de l’aide sur les algorithmes complexes, les structures de données et l’utilisation standard de la bibliothèque.
  • Découvrez les nouvelles API et les modèles C++ modernes par le biais d’exemples contextuels.
  • Recevez des suggestions prenant en compte le contexte en fonction de vos commentaires ou de votre code.
  • Déboguer des erreurs dans votre code.
  • Simplifiez et refactorisez le code existant.

Prerequisites

  • Visual Studio 2022 ou version ultérieure avec le développement bureau avec C++ charge de travail installée.
  • GitHub Copilot. Pour plus d’informations, consultez Prise en main de GitHub Copilot.

Pour vérifier que la charge de travail C++ est installée :

  1. Ouvrir Visual Studio Installer

  2. Sélectionnez Modifier en regard de votre installation de Visual Studio

  3. Vérifiez que le développement desktop avec C++ est activé :

    Capture d’écran de Visual Studio Installer avec l’onglet Charges de travail sélectionné. Le développement de bureau avec c++ est sélectionné.

  4. S’il n’est pas installé, sélectionnez-le et choisissez Modifier.

Pour plus d’informations sur l’installation de Copilot, consultez Gérer l’installation et l’état de GitHub Copilot.

Création d’un projet

Visual Studio utilise des projets pour organiser le code d’une application et des solutions pour organiser vos projets. Un projet contient toutes les options, configurations et règles utilisées pour générer vos applications. Il gère la relation entre tous les fichiers du projet et tous les fichiers externes. Pour créer votre application, commencez par créer un projet et une solution.

  1. Ouvrez Visual Studio et cliquez sur Créer un projet.

  2. Recherchez « Application console » et sélectionnez le modèle d’application console pour C++.

    Capture d’écran de la boîte de dialogue Créer un projet.

    La boîte de dialogue Créer un projet s’affiche avec le modèle d’application console sélectionné. Le modèle indique : Exécuter du code dans un terminal Windows. Imprime hello world par défaut. Contient les balises c++, Windows et Console.

  3. Cliquez sur Suivant.

  4. Définissez le nom du projet sur Life et choisissez l’emplacement du projet.

  5. Cliquez sur Créer.

  6. Une fois le projet ouvert, recherchez le fichier Life.cpp dans l’Explorateur de solutions.

  7. Ouvrez Life.cpp et supprimez le code par défaut « Hello, World ! » pour commencer par une nouvelle page.

Utiliser Copilot pour créer une application

Vous invitez Copilot en décrivant les fonctionnalités souhaitées. Dans cette section, vous allez apprendre à inviter Copilot à générer une implémentation de Game of Life de Conway.

  1. Ouvrez la fenêtre de conversation Copilot en sélectionnant l’icône Copilot dans la barre d’outils :

    Capture d’écran de la liste déroulante de l’icône GitHub. La fenêtre Ouvrir la conversation est sélectionnée.

  2. Dans la fenêtre de conversation, entrez l’invite suivante :

    Create a C++ console application that implements Conway's Game of Life. The program should:
    - Use a 40x20 grid displayed with asterisks (*) for live cells and spaces for dead cells
    - Start with a random initial pattern
    - Display each generation for 500ms before showing the next
    - Allow the user to press any key to exit the program
    - Include proper headers and use standard C++ practices
    - Clear the console between generations to provide an animation effect
    
  3. Copilot génère du code C++ pour Le jeu de la vie de Conway.

  4. Copiez le code généré et collez-le dans votre fichier vide Life.cpp .

  5. Générez le projet en appuyant sur F6 ou en sélectionnant Build > Build Solution.

  6. Exécutez le programme en appuyant sur F5 ou Ctrl+F5.

Note

Le code exact généré par Copilot peut varier légèrement de l’exécution à l’exécution et du modèle au modèle, mais les fonctionnalités principales doivent être cohérentes. Si le code généré ne se compile pas immédiatement, vous pouvez demander à Copilot de corriger les erreurs de compilation. Copilot est alimenté par l’IA, donc les surprises et les erreurs sont possibles. Pour plus d’informations, consultez les QUESTIONS fréquentes (FAQ) copilot.

Exemple de structure de code générée classique

Votre code généré inclut probablement ces composants clés :

  • En-têtes pour la manipulation de la console, la génération de nombres aléatoires et le minutage
  • Tableau ou vecteur 2D pour représenter la grille de jeu
  • Fonctions permettant d’initialiser la grille, d’appliquer les règles de Conway et d’afficher l’état actuel
  • Boucle principale qui se poursuit jusqu’à ce qu’une touche soit enfoncée

Voici un exemple de code généré par Copilot à l’aide de l’invite précédente :

// Code generated by GitHub Copilot
#include <iostream>
#include <chrono>
#include <thread>
#include <conio.h> // for _kbhit and _getch

using namespace std;

int step = 0;
const int rows = 20;
const int cols = 40;

void printGrid(int grid[rows][cols])
{
   cout << "Step: " << step << endl;
   for (int i = 0; i < rows; ++i)
   {
         for (int j = 0; j < cols; ++j)
         {
            cout << (grid[i][j] ? '*' : ' ');
         }
         cout << endl;
   }
}

int countNeighbors(int grid[rows][cols], int x, int y)
{
   int count = 0;
   for (int i = -1; i <= 1; ++i)
   {
         for (int j = -1; j <= 1; ++j)
         {
            if (i == 0 && j == 0)
            {
               continue;
            }

            int ni = x + i;
            int nj = y + j;
            if (ni >= 0 && ni < rows && nj >= 0 && nj < cols)
            {
               count += grid[ni][nj];
            }
         }
   }
   return count;
}

void updateGrid(int grid[rows][cols])
{
   int newGrid[rows][cols] = { 0 };
   for (int i = 0; i < rows; ++i)
   {
         for (int j = 0; j < cols; ++j)
         {
            int neighbors = countNeighbors(grid, i, j);
            if (grid[i][j] == 1)
            {
               newGrid[i][j] = (neighbors < 2 || neighbors > 3) ? 0 : 1;
            }
            else
            {
               newGrid[i][j] = (neighbors == 3) ? 1 : 0;
            }
         }
   }
   // Copy newGrid back to grid
   for (int i = 0; i < rows; ++i)
   {
         for (int j = 0; j < cols; ++j)
         {
            grid[i][j] = newGrid[i][j];
         }
   }
}

int main()
{
   int grid[rows][cols] = { 0 };

   // Initial configuration (a simple glider)
   grid[1][2] = 1;
   grid[2][3] = 1;
   grid[3][1] = 1;
   grid[3][2] = 1;
   grid[3][3] = 1;

   while (true)
   {
         if (_kbhit()) // Check if a key has been pressed
         {
            _getch(); // Consume the key
            break;   // Exit the loop
         }
         printGrid(grid);
         updateGrid(grid);
         std::this_thread::sleep_for(std::chrono::milliseconds(100));
         cout << "\033[H\033[J"; // Clear the screen
         step++;
   }

   return 0;
}

Lorsque vous exécutez l’application, vous devriez voir un affichage animé du Jeu de la vie de Conway avec des modèles qui évoluent au fil du temps. Pour quitter le programme, appuyez sur une touche.

Capture d’écran de Conway Life en cours d’exécution dans une fenêtre de commande, affichant la grille évolutive des cellules.

Dans l’exemple de code précédent, le code génère un avertissement : Return value ignored: '_getch'. Vous pouvez demander à Copilot de le corriger. Sélectionnez l’éditeur de code, puis appuyez sur Alt+/ (Windows) pour ouvrir la conversation Copilot, puis entrez :

Capture d’écran de la fenêtre de conversation

Copilot suggère un correctif pour gérer correctement la valeur de retour. Pour accepter les modifications, sélectionnez Tab :

Capture d’écran des modifications proposées par Copilot. Onglet à accepter. Alt+Del à ignorer.

Félicitations! Vous avez utilisé GitHub Copilot pour créer une application console Game of Life entièrement fonctionnelle de Conway en C++. Vous avez appris à :

  • Créer une invite efficace pour générer du code C++
  • Utiliser l’interface de conversation de Copilot pour créer une application entière à partir de zéro
  • Corriger les avertissements de compilation avec l’aide de l’IA

Améliorer vos compétences d’invite

Pour obtenir de meilleurs résultats avec Copilot, consultez les ressources d’invite suivantes :

Résolution des problèmes

Modèle d’application console manquant

La boîte de dialogue Nouveau projet doit afficher un modèle d’application console qui a des balises C++, Windows et Console . Si vous ne la voyez pas, elle peut être filtrée hors de la liste ou elle n’est peut-être pas installée. Tout d'abord, vérifiez les listes déroulantes des filtres en haut de la liste des modèles. Définissez-les sur C++, Windows et Console. Le modèle d’application console C++ doit apparaître ; sinon, le développement Desktop avec la charge de travail C++ n’est pas installé.

Pour installer Développement bureau avec C++, vous pouvez exécuter le programme d’installation directement à partir de la boîte de dialogue Créer un nouveau projet. Choisissez le lien Installer d’autres outils et fonctionnalités en bas de la boîte de dialogue Créer un projet , sous la liste des modèles. Si la boîte de dialogue Contrôle de compte d’utilisateur demande des autorisations, choisissez Oui. Dans le programme d'installation, vérifiez que la charge de travail de Développement d'applications de bureau avec C++ est cochée. Choisissez Ensuite Modifier pour mettre à jour votre installation de Visual Studio.

Copilot ne répond pas

  • Vérifiez que vous disposez d’un abonnement GitHub Copilot actif.
  • Essayez de vous déconnecter et de revenir à votre compte GitHub dans Visual Studio

Le code généré ne se compile pas

  • Demandez à Copilot de corriger des erreurs de compilation spécifiques en collant le message d’erreur dans la conversation Copilot.
  • Essayez d’affiner votre invite afin d'être plus précis sur ce que vous voulez que l'application réalise.

Étapes suivantes