Udostępnij przez


Tworzenie aplikacji konsolowej języka C++ w programie Visual Studio przy użyciu sztucznej inteligencji

W tym samouczku pokazano, jak za pomocą narzędzia GitHub Copilot szybko utworzyć aplikację konsolową języka C++ w programie Visual Studio. Tworzysz konsolową wersję Conway's Game of Life, klasycznego automatu komórkowego.

Conway's Game of Life został opracowany przez matematyka Johna Conwaya. Składa się z siatki komórek, które mogą być żywe lub martwe. Gra rozwija się automatycznie na podstawie prostych reguł i tworzy złożone, ewoluujące wzorce, które pokazują, jak skomplikowane zachowanie może wynikać z podstawowych reguł matematycznych.

GitHub Copilot to asystent kodowania opartego na sztucznej inteligencji, który ułatwia szybsze pisanie kodu, zmniejszanie błędów i eksplorowanie nowych rozwiązań. Niektóre korzyści wynikające z używania narzędzia Copilot podczas kodowania w języku C++:

  • Wygeneruj całe funkcje lub klasy języka C++ podczas wpisywania.
  • Zasugeruj uzupełnianie kodu na podstawie komentarzy lub monitów w języku prostym.
  • Uzyskaj pomoc dotyczącą złożonych algorytmów, struktur danych i standardowego użycia bibliotek.
  • Poznaj nowe interfejsy API i nowoczesne wzorce języka C++ za pomocą przykładów w kontekście.
  • Otrzymuj kontekstowe sugestie na podstawie komentarzy lub kodu.
  • Debugowanie błędów w kodzie.
  • Uproszczenie i refaktoryzacja istniejącego kodu.

Wymagania wstępne

Aby sprawdzić, czy masz zainstalowane obciążenie C++:

  1. Otwórz Instalatora programu Visual Studio

  2. Wybierz pozycję Modyfikuj obok instalacji programu Visual Studio

  3. Upewnij się, że tworzenie aplikacji komputerowych w języku C++ jest zaznaczone:

    Zrzut ekranu instalatora programu Visual Studio z wybraną kartą Obciążenia robocze. Wybrano programowanie aplikacji komputerowych z C++.

  4. Jeśli nie jest zainstalowany, wybierz go i wybierz pozycję Modyfikuj.

Aby uzyskać więcej informacji na temat instalowania rozwiązania Copilot, zobacz Manage GitHub Copilot installation and state (Zarządzanie instalacją i stanem narzędzia GitHub Copilot).

Tworzenie projektu

Program Visual Studio używa projektów do organizowania kodu dla aplikacji i rozwiązań w celu organizowania projektów. Projekt zawiera wszystkie opcje, konfiguracje i reguły używane do tworzenia aplikacji. Zarządza relacją między wszystkimi plikami projektu i plikami zewnętrznymi. Aby utworzyć aplikację, najpierw utwórz nowy projekt i rozwiązanie.

  1. Otwórz program Visual Studio i wybierz pozycję Utwórz nowy projekt.

  2. Wyszukaj ciąg "Aplikacja konsolowa" i wybierz szablon Aplikacja konsolowa dla języka C++.

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie nowego projektu.

    Wyświetlone zostanie okno dialogowe „Tworzenie nowego projektu” z wybranym szablonem „Aplikacja konsolowa”. Szablon mówi: Uruchamianie kodu w terminalu systemu Windows. Domyślnie drukuje "witaj świecie". Zawiera tagi c++, Windows i Console.

  3. Wybierz Dalej.

  4. Ustaw nazwę projektu na Life i wybierz lokalizację projektu.

  5. Wybierz Utwórz.

  6. Po otworzie projektu znajdź Life.cpp plik w Eksploratorze rozwiązań.

  7. Otwórz Life.cpp i usuń domyślny kod "Hello, World!", aby rozpocząć z czystą kartą.

Tworzenie aplikacji za pomocą narzędzia Copilot

Monituj copilot, opisując żądane funkcje. W tej sekcji dowiesz się, jak skłonić Copilota do wygenerowania implementacji Gry o życie Conwaya.

  1. Otwórz okno czatu Copilot, wybierając ikonę Copilot na pasku narzędzi:

    Zrzut ekranu przedstawiający listę rozwijaną ikony GitHub. Wybrane jest otwarte okno czatu.

  2. W oknie czatu wprowadź następujący monit:

    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 generuje kod C++ dla Gry w Życie Conwaya.

  4. Skopiuj wygenerowany kod i wklej go do pustego Life.cpp pliku.

  5. Zbuduj projekt, naciskając F6 lub wybierając pozycję Buduj > Buduj rozwiązanie.

  6. Uruchom program, naciskając F5 lub Ctrl+F5.

Uwaga / Notatka

Dokładny kod wygenerowany przez Copilot może się nieznacznie różnić od uruchomienia do uruchomienia i od modelu do modelu, ale podstawowe funkcje powinny być spójne. Jeśli wygenerowany kod nie zostanie skompilowany natychmiast, możesz poprosić Copilot o naprawienie błędów kompilacji. Copilot jest obsługiwany przez sztuczną inteligencję, więc możliwe są niespodzianki i błędy. Aby uzyskać więcej informacji, zobacz Copilot FAQs.

Przykład typowej struktury wygenerowanego kodu

Wygenerowany kod będzie prawdopodobnie zawierać następujące kluczowe składniki:

  • Nagłówki do manipulowania konsolą, generowania losowych numerów i chronometrażu
  • Dwuwymiarowa tablica lub wektor reprezentujący siatkę gry
  • Funkcje inicjowania siatki, stosowania reguł conwaya i wyświetlania bieżącego stanu
  • Pętla główna, która trwa do momentu naciśnięcia klawisza

Oto przykład kodu wygenerowanego przez copilot przy użyciu poprzedniego monitu:

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

Po uruchomieniu aplikacji powinien zostać wyświetlony animowany wyświetlacz Conway's Game of Life z wzorcami zmieniającymi się wraz z upływem czasu. Aby zamknąć program, naciśnij.

Zrzut ekranu przedstawiający uruchomioną w oknie poleceń aplikację Conway Life z wyświetloną rozwijającą się siatką komórek.

W poprzednim przykładzie kodu kod generuje ostrzeżenie: Return value ignored: '_getch'. Możesz poprosić Copilot, aby to naprawił. Wybierz edytor kodu i naciśnij Alt+/ (Windows), aby otworzyć czat Copilot, a następnie wprowadź:

Zrzut ekranu okna czatu Copilot. Tekst: Napraw ostrzeżenie C6031 znajduje się w oknie czatu.

Copilot sugeruje poprawkę dotyczącą prawidłowego obsługi zwracanej wartości. Aby zaakceptować zmiany, wybierz Tab:

Zrzut ekranu przedstawiający proponowane zmiany w Copilot. Naciśnij Tab, aby zaakceptować. Alt+Del, aby odrzucić.

Gratulacje! Pomyślnie użyto narzędzia GitHub Copilot do utworzenia w pełni funkcjonalnej aplikacji konsolowej Conway's Game of Life w języku C++. Nauczyłeś się, jak:

  • Tworzenie efektywnego monitu o wygenerowanie kodu C++
  • Użyj interfejsu czatu Copilota, aby stworzyć całkowitą aplikację od podstaw.
  • Naprawianie ostrzeżeń kompilacji za pomocą sztucznej inteligencji

Zwiększanie umiejętności monitowania

Aby uzyskać lepsze wyniki z Copilota, zobacz następujące zasoby dotyczące podpowiedzi:

Rozwiązywanie problemów

Brak szablonu aplikacji konsolowej

W oknie dialogowym Nowy projekt powinien zostać wyświetlony szablon aplikacja konsolowa z tagami C++, Windows i Console . Jeśli go nie widzisz, może zostać odfiltrowany z listy lub może nie zostać zainstalowany. Najpierw sprawdź listy rozwijane filtrów w górnej części listy szablonów. Ustaw je na C++, Windows i Console. Powinien pojawić się szablon Aplikacja konsolowa C++; w przeciwnym razie obciążenie robocze Programowanie aplikacji z C++ dla Pulpitu nie jest zainstalowane.

Aby zainstalować Desktop development with C++, możesz uruchomić instalator bezpośrednio z poziomu okna dialogowego Tworzenie nowego projektu. Wybierz link Zainstaluj więcej narzędzi i funkcji w dolnej części okna dialogowego Tworzenie nowego projektu pod listą szablonów. Jeśli okno dialogowe Kontrola konta użytkownika żąda uprawnień, wybierz pozycję Tak. Upewnij się, że w instalatorze jest zaznaczone pole Tworzenie aplikacji komputerowych z C++. Następnie wybierz pozycję Modyfikuj , aby zaktualizować instalację programu Visual Studio.

Copilot nie odpowiada

  • Upewnij się, że masz aktywną subskrypcję narzędzia GitHub Copilot.
  • Spróbuj wylogować się i wrócić do konta usługi GitHub w programie Visual Studio

Wygenerowany kod nie kompiluje

  • Poproś copilot, aby naprawić określone błędy kompilacji, wklejając komunikat o błędzie do czatu Copilot.
  • Spróbuj udoskonalić polecenie, aby było bardziej szczegółowe co do tego, co ma robić aplikacja.

Dalsze kroki