Compartir a través de


Uso de ia para crear una aplicación de consola de C++ en Visual Studio

En este tutorial se muestra cómo usar GitHub Copilot para crear rápidamente una aplicación de consola de C++ en Visual Studio. Creas una versión de consola de Conway's Game of Life, un autómata celular clásico.

Conway's Game of Life fue ideado por el matemático John Conway. Consta de una cuadrícula de celdas que pueden estar vivas o muertas. El juego evoluciona automáticamente en función de reglas simples y genera patrones complejos y en evolución que muestran cómo puede surgir un comportamiento intrincado a partir de reglas matemáticas básicas.

GitHub Copilot es un asistente de codificación con tecnología de inteligencia artificial que le ayuda a escribir código más rápido, reducir los errores y explorar nuevas soluciones. Algunas ventajas de usar Copilot al codificar en C++:

  • Genere funciones o clases completas de C++ a medida que escriba.
  • Sugerir finalizaciones de código basadas en comentarios o avisos de lenguaje simple.
  • Obtenga ayuda con algoritmos complejos, estructuras de datos y uso de bibliotecas estándar.
  • Obtenga información sobre las nuevas API y los patrones modernos de C++ a través de ejemplos en contexto.
  • Recibir sugerencias contextualmente informadas en función de tus comentarios o tu código.
  • Depurar errores en el código.
  • Simplifique y refactorice el código existente.

Prerrequisitos

  • Visual Studio 2022 o posterior con la carga de trabajo Desarrollo de escritorio con C++ instalada.
  • GitHub Copilot. Para obtener más información, consulte Introducción a GitHub Copilot.

Para comprobar que tiene instalada la carga de trabajo de C++:

  1. Abrir el instalador de Visual Studio

  2. Seleccione Modificar junto a la instalación de Visual Studio.

  3. Asegúrese de que el desarrollo de escritorio con C++ está activado:

    Captura de pantalla del Instalador de Visual Studio con la pestaña Cargas de trabajo seleccionada. El desarrollo de escritorio con c++ está seleccionado.

  4. Si no está instalado, selecciónelo y elija Modificar.

Para obtener más información sobre cómo instalar Copilot, consulte Administración de la instalación y el estado de Copilot de GitHub.

Creación de un proyecto

Visual Studio usa proyectos para organizar el código de una aplicación y soluciones para organizar los proyectos. Un proyecto contiene todas las opciones, configuraciones y reglas que se usan para compilar las aplicaciones. Administra la relación entre todos los archivos del proyecto y los archivos externos. Para crear la aplicación, en primer lugar, cree un nuevo proyecto y una solución.

  1. Abra Visual Studio y seleccione Crear un nuevo proyecto.

  2. Busque "Aplicación de consola" y seleccione la plantilla Aplicación de consola para C++.

    Captura de pantalla del cuadro de diálogo Crear un nuevo proyecto.

    El cuadro de diálogo Crear un nuevo proyecto se muestra con la plantilla Aplicación de consola seleccionada. La plantilla dice: Ejecutar código en un terminal windows. Imprime "hola mundo" por defecto. Tiene las etiquetas c++, Windows y Console.

  3. Seleccione Siguiente.

  4. Establezca el nombre del proyecto en Life y elija la ubicación del proyecto.

  5. Selecciona Crear.

  6. Una vez que se abra el proyecto, busque el archivo en el Life.cpp Explorador de soluciones.

  7. Abra Life.cpp y elimine el código predeterminado "Hello, World!" para empezar con una pizarra limpia.

Uso de Copilot para crear una aplicación

Pida a Copilot que describa la funcionalidad que desee. En esta sección, aprenderá a pedir a Copilot que genere una implementación del juego de vida de Conway.

  1. Abra la ventana de chat de Copilot seleccionando el icono de Copilot en la barra de herramientas:

    Captura de pantalla del menú desplegable del icono de GitHub. Abrir ventana de chat está seleccionado.

  2. En la ventana de chat, escriba la siguiente instrucción:

    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 genera código de C++ para El Juego de la Vida de Conway.

  4. Copie el código generado y péguelo en el archivo vacío Life.cpp .

  5. Compile el proyecto presionando F6 o seleccionando Compilar > Compilar solución.

  6. Ejecute el programa presionando F5 o Ctrl+F5.

Nota:

El código exacto generado por Copilot puede variar ligeramente de la ejecución y el modelo al modelo, pero la funcionalidad principal debe ser coherente. Si el código generado no se compila inmediatamente, puede pedir a Copilot que corrija los errores de compilación. Copilot funciona con IA, por lo que es posible que se produzcan sorpresas y errores. Para obtener más información, consulte Preguntas más frecuentes sobre Copilot.

Ejemplo de estructura de código generada típica

Es probable que el código generado incluya estos componentes clave:

  • Encabezados para la manipulación de la consola, la generación aleatoria de números y el tiempo
  • Matriz o vector 2D para representar la cuadrícula del juego
  • Funciones para inicializar la cuadrícula, aplicar las reglas de Conway y mostrar el estado actual
  • Bucle principal que continúa hasta que se presiona una tecla

Este es un ejemplo del código que Copilot generó mediante la indicación 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;
}

Al ejecutar la aplicación, debería ver una pantalla animada del Juego de la vida de Conway, con patrones que evolucionan con el tiempo. Para salir del programa, presione una tecla.

Captura de pantalla de Conway Life que se ejecuta en una ventana de comandos, en la que se muestra la cuadrícula en evolución de las celdas.

En el ejemplo de código anterior, el código genera una advertencia: Return value ignored: '_getch'. Puede pedir a Copilot que lo corrija. Seleccione el editor de código y presione Alt+/ (Windows) para abrir el chat de Copilot y, a continuación, escriba:

Captura de pantalla de la ventana de chat de Copilot. El texto: Corrección de la advertencia C6031 está en la ventana de chat.

Copilot sugiere una corrección para controlar el valor devuelto correctamente. Para aceptar los cambios, seleccione Tabulador:

Captura de pantalla de los cambios propuestos por Copilot. Presiona Tab para aceptar. Presiona Alt+Supr para descartar.

¡Felicidades! Ha usado correctamente GitHub Copilot para crear una aplicación de consola Game of Life de Conway totalmente funcional en C++. Ha aprendido a:

  • Creación de un aviso eficaz para generar código de C++
  • Usar la interfaz de chat de Copilot para crear una aplicación completa desde cero
  • Corrección de advertencias de compilación con asistencia de IA

Mejora tus habilidades para generar instrucciones

Para obtener mejores resultados con Copilot, consulte estos recursos de sugerencias:

Solución de problemas

Falta la plantilla de aplicación de consola

El cuadro de diálogo Nuevo proyecto debe mostrar una plantilla de aplicación de consola que tenga etiquetas de C++, Windows y Consola . Si no lo ve, es posible que se filtre fuera de la lista o que no esté instalado. Primero, compruebe los desplegables de filtros en la parte superior de la lista de plantillas. Establézcalos en C++, Windows y Consola. Debería aparecer la plantilla Aplicación de consola de C++; De lo contrario, la carga de trabajo Desarrollo de escritorio con C++ no está instalada.

Para instalar desarrollo de escritorio con C++, puede ejecutar el instalador directamente desde el cuadro de diálogo Crear un nuevo proyecto . Elija el vínculo Instalar más herramientas y características en la parte inferior del cuadro de diálogo Crear un nuevo proyecto , debajo de la lista de plantillas. Si el cuadro de diálogo Control de cuentas de usuario solicita permisos, elija . En el instalador, asegúrese de que la carga de trabajo Desarrollo de escritorio con C++ está activada. A continuación, elija Modificar para actualizar la instalación de Visual Studio.

Copilot no responde

  • Asegúrese de que tiene una suscripción activa de GitHub Copilot.
  • Pruebe a cerrar sesión y volver a la cuenta de GitHub en Visual Studio

El código generado no se compila

  • Pida a Copilot que corrija errores de compilación específicos pegando el mensaje de error en el chat de Copilot.
  • Pruebe a refinar el mensaje para que sea más específico sobre lo que quiere que haga la aplicación.

Pasos siguientes