Partilhar via


Usar IA para criar um aplicativo de console C++ no Visual Studio

Este tutorial mostra como usar o GitHub Copilot para criar rapidamente um aplicativo de console C++ no Visual Studio. Você cria uma versão de console do Jogo da Vida de Conway, um autômato celular clássico.

O Jogo da Vida de Conway foi concebido pelo matemático John Conway. Consiste numa grelha de células que podem estar vivas ou mortas. O jogo evolui automaticamente com base em regras simples e produz padrões complexos e evolutivos que demonstram como o comportamento intrincado pode emergir de regras matemáticas básicas.

O GitHub Copilot é um assistente de codificação alimentado por IA que ajuda você a escrever código mais rapidamente, reduzir erros e explorar novas soluções. Alguns benefícios de usar o Copilot ao codificar em C++:

  • Gere funções ou classes C++ inteiras à medida que escreve.
  • Sugira completações de código com base em comentários ou prompts em linguagem simples.
  • Obtenha ajuda com algoritmos complexos, estruturas de dados e uso padrão de bibliotecas.
  • Aprenda novas APIs e padrões C++ modernos por meio de exemplos no contexto.
  • Receba sugestões sensíveis ao contexto com base nos seus comentários ou código.
  • Depurar erros no seu código.
  • Simplifique e refatore o código existente.

Pré-requisitos

  • Visual Studio 2022 ou posterior com o pacote de ferramentas desenvolvimento para ambiente de trabalho com C++ instalado.
  • Copiloto do GitHub. Para obter mais informações, consulte Introdução ao GitHub Copilot.

Para verificar se você tem a carga de trabalho C++ instalada:

  1. Abrir o instalador do Visual Studio

  2. Selecione Modificar ao lado da instalação do Visual Studio

  3. Verifique se o desenvolvimento de desktop com C++ está marcado:

    Captura de tela do instalador do Visual Studio com a guia Cargas de trabalho selecionada. O desenvolvimento de desktop com c++ está selecionado.

  4. Se não estiver instalado, selecione-o e escolha Modificar.

Para obter mais informações sobre como instalar o Copilot, consulte Manage GitHub Copilot installation and state.

Criar um projeto

Visual Studio usa projetos para organizar o código para um aplicativo e soluções para organizar seus projetos. Um projeto contém todas as opções, configurações e regras usadas para criar seus aplicativos. Ele gerencia a relação entre todos os arquivos do projeto e quaisquer arquivos externos. Para criar seu aplicativo, primeiro, crie um novo projeto e solução.

  1. Abra o Visual Studio e selecione Criar um novo projeto.

  2. Procure por "Aplicativo de Console" e selecione o modelo de Aplicativo de Console para C++.

    Captura de tela da caixa de diálogo Criar um novo projeto.

    A caixa de diálogo Criar um novo projeto é mostrada com o modelo Aplicação de Console selecionado. O modelo diz: Execute o código em um terminal do Windows. Imprime hello world por padrão. Tem as tags c++, Windows e Console.

  3. Selecione Avançar.

  4. Defina o nome do projeto como Vida e escolha o local para o projeto.

  5. Selecione Criar.

  6. Quando o projeto abrir, localize o Life.cpp arquivo no Gerenciador de Soluções.

  7. Abra Life.cpp e exclua o código padrão "Olá, Mundo!" para começar com uma tábua rasa.

Usar o Copilot para criar um aplicativo

Você solicita o Copilot descrevendo a funcionalidade desejada. Nesta seção, você aprenderá como solicitar ao Copilot que gere uma implementação do Jogo da Vida de Conway.

  1. Abra a janela de bate-papo do Copilot selecionando o ícone do Copilot na barra de ferramentas:

    Captura de tela da lista suspensa de ícones do GitHub. Abrir janela de bate-papo está selecionado.

  2. Na janela de chat, digite o seguinte prompt:

    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. O Copilot gera código C++ para o Jogo da Vida de Conway.

  4. Copie o código gerado e cole-o em seu arquivo vazio Life.cpp .

  5. Crie o projeto pressionando F6 ou selecionando Build > Build Solution.

  6. Execute o programa pressionando F5 ou Ctrl+F5.

Observação

O código exato gerado pelo Copilot pode variar ligeiramente de execução para execução e de modelo para modelo, mas a funcionalidade principal deve ser consistente. Se o código gerado não compilar imediatamente, você pode pedir ao Copilot para corrigir quaisquer erros de compilação. O copiloto é alimentado por IA, por isso surpresas e erros são possíveis. Para obter mais informações, consulte Copilot FAQs.

Exemplo de estrutura de código gerada típica

O código gerado provavelmente incluirá estes componentes-chave:

  • Cabeçalhos para manipulação de console, geração de números aleatórios e temporização
  • Uma matriz ou um vetor 2D para representar a matriz do jogo
  • Funções para inicializar a grade, aplicar as regras do Conway e exibir o estado atual
  • Um loop principal que continua até que uma tecla seja pressionada

Aqui está um exemplo do código que o Copilot gerou usando o prompt anterior:

// 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;
}

Quando você executa o aplicativo, você deve ver uma exibição animada do Jogo da Vida de Conway com padrões evoluindo ao longo do tempo. Para sair do programa, pressione uma tecla.

Captura de tela de Conway Life em execução em uma janela de comando, exibindo a grade evolutiva de células.

No exemplo de código anterior, o código gera um aviso: Return value ignored: '_getch'. Você pode pedir ao Copilot para corrigi-lo. Selecione o editor de código e pressione Alt + / (Windows) para abrir o bate-papo do Copilot e, em seguida, digite:

Captura de tela da janela de bate-papo do Copilot. O texto: Corrigir aviso C6031 está na janela de chat.

O Copilot sugere uma correção para lidar com o valor de retorno corretamente. Para aceitar as alterações, selecione Tab:

Captura de ecrã das alterações propostas pelo Copiloto. Tab para aceitar. Alt+Del para descartar.

Parabéns! Você usou com sucesso o GitHub Copilot para criar um aplicativo de console Game of Life da Conway totalmente funcional em C++. Você aprendeu a:

  • Crie um prompt eficaz para gerar código C++
  • Use a interface de bate-papo do Copilot para criar um aplicativo inteiro do zero
  • Corrija avisos de compilação com assistência de IA

Melhore as suas habilidades de criação de prompts

Para obter melhores resultados com o Copilot, consulte estes recursos de utilização de prompts:

Solução de problemas

Modelo de aplicativo de console ausente

A caixa de diálogo Novo Projeto deve mostrar um modelo de Aplicativo de Console que tenha tags C++, Windows e Console . Se você não vê-lo, ele pode ser filtrado para fora da lista ou pode não estar instalado. Primeiro, verifique os menus suspensos de filtros no topo da lista de modelos. Defina-os como C++, Windows e Console. O modelo C++ Console App deve aparecer; caso contrário, a carga de trabalho Desenvolvimento para Desktop com C++ não está instalada.

Para instalar o desenvolvimento Desktop com C++, você pode executar o instalador diretamente na caixa de diálogo Criar um novo projeto . Escolha o link Instalar mais ferramentas e recursos na parte inferior da caixa de diálogo Criar um novo projeto , abaixo da lista de modelos. Se a caixa de diálogo Controle de Conta de Usuário solicitar permissões, escolha Sim. No instalador, verifique se a carga de trabalho Desenvolvimento de Desktop com C++ está marcada. Em seguida, escolha Modificar para atualizar sua instalação do Visual Studio.

Copiloto não responde

  • Certifique-se de ter uma assinatura ativa do GitHub Copilot.
  • Tente sair e voltar à sua conta do GitHub no Visual Studio

O código gerado não compila

  • Peça ao Copilot para corrigir erros de compilação específicos colando a mensagem de erro no bate-papo do Copilot.
  • Tente refinar seu prompt para ser mais específico sobre o que você deseja que o aplicativo faça.

Próximos passos