Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak pomocí GitHub Copilotu rychle vytvořit konzolovou aplikaci jazyka C++ v sadě Visual Studio. Vytvoříte konzolovou verzi hry Conway Game of Life, klasického mobilního automatu.
Conwayův game of Life byl navržen matematikem Johnem Conwayem. Skládá se z mřížky buněk, které mohou být buď živé, nebo mrtvé. Hra se vyvíjí automaticky na základě jednoduchých pravidel a vytváří složité a vyvíjející se vzory, které ukazují, jak složité chování může vycházet ze základních matematických pravidel.
GitHub Copilot je pomocník pro psaní kódu založený na umělé inteligenci, který pomáhá psát kód rychleji, snižovat chyby a zkoumat nová řešení. Některé výhody použití Copilotu při psaní kódu v jazyce C++:
- Při psaní vygenerujte celé funkce nebo třídy jazyka C++.
- Navrhněte dokončování kódu na základě komentářů v prostém jazyce nebo výzev.
- Získejte pomoc se složitými algoritmy, datovými strukturami a standardním využitím knihovny.
- Seznamte se s novými rozhraními API a moderními vzory jazyka C++ prostřednictvím kontextových příkladů.
- Získejte návrhy s podporou kontextu na základě komentářů nebo kódu.
- Ladění chyb v kódu
- Zjednodušení a refaktoring stávajícího kódu
Požadavky
- Sada Visual Studio 2022 nebo novější s nainstalovanou úlohou Vývoj desktopových aplikací s C++.
- GitHub Copilot. Další informace najdete v tématu Začínáme s GitHub Copilotem.
Ověření, že máte nainstalovanou úlohu C++:
Otevření instalačního programu sady Visual Studio
Vyberte Upravit vedle instalace sady Visual Studio.
Ujistěte se, že je zaškrtnuté vývoj desktopových aplikací pomocí jazyka C++ :
Pokud není nainstalovaný, vyberte ho a zvolte Upravit.
Další informace o instalaci Copilotu najdete v tématu Správa instalace GitHub Copilot a stavu.
Vytvoření projektu
Visual Studio používá projekty k uspořádání kódu pro aplikaci a řešení k uspořádání projektů. Projekt obsahuje všechny možnosti, konfigurace a pravidla používaná k vytváření aplikací. Spravuje vztah mezi všemi soubory projektu a všemi externími soubory. Pokud chcete vytvořit aplikaci, nejprve vytvořte nový projekt a řešení.
Otevřete Visual Studio a vyberte Vytvořit nový projekt.
Vyhledejte "Konzolová aplikace" a vyberte šablonu konzolové aplikace pro C++.
Zobrazí se dialogové okno Vytvořit nový projekt s vybranou šablonou konzolové aplikace. Šablona říká: Spustit kód v terminálu Windows. Ve výchozím nastavení vytiskne hello world. Obsahuje značky c++, Windows a konzolu.
Vyberte Další.
Nastavte název projektu na Life a zvolte umístění projektu.
Vyberte Vytvořit.
Po otevření projektu vyhledejte
Life.cppsoubor v Průzkumníku řešení.Otevřete
Life.cppa odstraňte výchozí kód "Hello, World!", abyste mohli začít od začátku.
Vytvoření aplikace pomocí Copilotu
Příkaz Copilot zobrazíte popisem požadovaných funkcí. V této části se dozvíte, jak vyzvat Copilot k vygenerování implementace hry Conwaye Game of Life.
Otevřete okno chatu Copilot výběrem ikony Copilot na panelu nástrojů:
V okně chatu zadejte následující výzvu:
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 effectCopilot vygeneruje kód C++ pro Conwayovu hru Života.
Zkopírujte vygenerovaný kód a vložte ho do prázdného
Life.cppsouboru.Sestavte projekt stisknutím klávesy F6 nebo výběrem možnosti Sestavit > řešení.
Spusťte program stisknutím klávesY F5 nebo Ctrl+F5.
Poznámka:
Přesný kód vygenerovaný Copilotem se může mírně lišit od spuštění ke spuštění a od modelu k modelu, ale hlavní funkčnost by měla zůstat konzistentní. Pokud se vygenerovaný kód nekompiluje okamžitě, můžete požádat Copilota, aby opravil případné chyby kompilace. Copilot využívá AI, takže překvapení a chyby jsou možné. Další informace najdete v nejčastějších dotazech ke copilotu.
Příklad typické vygenerované struktury kódu
Vygenerovaný kód bude pravděpodobně obsahovat tyto klíčové komponenty:
- Hlavičky pro manipulaci s konzolou, generování náhodných čísel a časování
- 2D pole nebo vektor představující herní mřížku
- Funkce pro inicializaci mřížky, použití pravidel Conwaye a zobrazení aktuálního stavu
- Hlavní smyčka, která pokračuje, dokud se stiskne klávesa
Tady je příklad kódu, který copilot vygeneroval pomocí předchozího příkazového řádku:
// 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;
}
Když spustíte aplikaci, měli byste vidět animované zobrazení hry Conwaye Game of Life se vzory, které se v průběhu času vyvíjejí. Pokud chcete program ukončit, stiskněte klávesu.
V předchozím příkladu kódu vygeneruje kód upozornění: Return value ignored: '_getch'. Můžete požádat Copilot, aby ho opravili. Vyberte editor kódu a stisknutím kláves Alt+/ (Windows) otevřete chat Copilot a zadejte:
Copilot navrhuje opravu pro správné zpracování návratové hodnoty. Pokud chcete změny přijmout, vyberte tab:
Gratulujeme! Úspěšně jste použili GitHub Copilot k vytvoření plně funkční konzolové aplikace Conway Game of Life v jazyce C++. Naučili jste se:
- Vytvoření efektivní výzvy k vygenerování kódu C++
- Použití chatovacího rozhraní Copilotu k vytvoření celé aplikace od začátku
- Oprava upozornění kompilace pomocí AI
Vylepšete své schopnosti v promptování
Pro lepší výsledky s Copilotem si prohlédněte tyto doporučující zdroje:
- Dokumentace ke GitHub Copilot – oficiální osvědčené postupy a tipy
- Osvědčené postupy GPT OpenAI – Obecné techniky používání promptů umělé inteligence
- Průvodce požadavky pro Copilot – specifické pokyny pro generování kódu
Řešení problémů
Chybějící šablona konzolové aplikace
V dialogovém okně Nový projekt by se měla zobrazit šablona konzolové aplikace , která má značky C++, Windows a Konzola . Pokud ho nevidíte, může se vyfiltrovat ze seznamu nebo se nemusí nainstalovat. Nejprve zkontrolujte rozevírací seznamy filtrů v horní části seznamu šablon. Nastavte je na C++, Windows a konzolu. Měla by se zobrazit šablona konzolové aplikace C++; jinak není nainstalovaná pracovní zátěž vývoje desktopových aplikací s C++.
Pokud chcete nainstalovat vývoj desktopových aplikací pomocí jazyka C++, můžete instalační program spustit přímo z dialogového okna Vytvořit nový projekt . V dolní části dialogového okna Vytvořit nový projekt vyberte odkaz Nainstalovat další nástroje a funkce pod seznamem šablon. Pokud dialogové okno Řízení uživatelských účtů požaduje oprávnění, zvolte Ano. V instalačním programu se ujistěte, že je zaškrtnutá úloha pro vývoj desktopových aplikací v C++. Potom zvolte Upravit a aktualizujte instalaci sady Visual Studio.
Copilot nereaguje
- Ujistěte se, že máte aktivní předplatné GitHub Copilot.
- Zkuste se v sadě Visual Studio odhlásit a vrátit se k účtu GitHubu.
Vygenerovaný kód se nekompiluje
- Požádejte Copilot, aby opravil konkrétní chyby kompilace vložením chybové zprávy do chatu Copilot.
- Zkuste upřesnit vaši výzvu, aby byla konkrétnější o tom, co má aplikace dělat.
Další kroky
- GitHub Copilot v sadě Visual Studio
- Dokumentace ke Službě GitHub Copilot – podrobnější informace o vývoji s asistencí umělé inteligence
- Awesome ChatGPT Prompts - Příklady podnětů vytvořených komunitou pro inspiraci