Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie GitHub Copilot verwenden, um schnell eine C++-Konsolenanwendung in Visual Studio zu erstellen. Sie erstellen eine Konsolenversion von Conways Game of Life, einem klassischen zellularen Automaten.
Conways Spiel des Lebens wurde von dem Mathematiker John Conway entwickelt. Es besteht aus einem Raster von Zellen, die entweder lebendig oder tot sein können. Das Spiel entwickelt sich automatisch basierend auf einfachen Regeln und erzeugt komplexe, sich entwickelnde Muster, die veranschaulichen, wie komplexes Verhalten aus grundlegenden mathematischen Regeln entstehen kann.
GitHub Copilot ist ein KI-basierter Codierungsassistent, mit dem Sie Code schneller schreiben, Fehler reduzieren und neue Lösungen erkunden können. Einige Vorteile der Verwendung von Copilot beim Programmieren in C++:
- Generieren Sie während der Eingabe ganze C++-Funktionen oder -Klassen.
- Vorschläge für Codevervollständigungen basierend auf Kommentaren oder Eingabeaufforderungen in einfachen Worten.
- Erhalten Sie Hilfe bei komplexen Algorithmen, Datenstrukturen und standardbibliotheksnutzung.
- Lernen Sie neue APIs und moderne C++-Muster über Kontextbeispiele kennen.
- Erhalten Sie kontextbezogene Vorschläge basierend auf Ihren Kommentaren oder Code.
- Debuggen Sie Fehler in Ihrem Code.
- Vereinfachen und umgestalten Sie vorhandenen Code.
Voraussetzungen
- Visual Studio 2022 oder höher mit installierter C++ -Workload für die Desktopentwicklung.
- GitHub Copilot. Weitere Informationen finden Sie unter "Erste Schritte mit GitHub Copilot".
So überprüfen Sie, ob die C++-Workload installiert ist:
Visual Studio Installer öffnen
Wählen Sie " Ändern" neben ihrer Visual Studio-Installation aus.
Stellen Sie sicher, dass die Desktopentwicklung mit C++ aktiviert ist:
Wenn sie nicht installiert ist, wählen Sie sie aus, und wählen Sie "Ändern" aus.
Weitere Informationen zum Installieren von Copilot finden Sie unter Manage GitHub Copilot installation and state.
Erstellen eines Projekts
Visual Studio verwendet Projekte zum Organisieren des Codes für eine App und Lösungen zum Organisieren Ihrer Projekte. Ein Projekt enthält alle Optionen, Konfigurationen und Regeln, die zum Erstellen Ihrer Apps verwendet werden. Sie verwaltet die Beziehung zwischen allen Projektdateien und allen externen Dateien. Um Ihre App zu erstellen, erstellen Sie zuerst ein neues Projekt und eine neue Lösung.
Öffnen Sie Visual Studio, und wählen Sie die Option Ein neues Projekt erstellen aus.
Suchen Sie nach "Konsolen-App", und wählen Sie die Konsolen-App-Vorlage für C++ aus.
Das Dialogfeld "Neues Projekt erstellen" wird mit ausgewählter Konsolen-App-Vorlage angezeigt. Die Vorlage besagt: Ausführen von Code in einem Windows-Terminal. Druckt "Hello World" standardmäßig. Enthält die Tags c++, Windows und Konsole.
Wählen Sie Weiteraus.
Legen Sie den Projektnamen auf "Leben " fest, und wählen Sie den Speicherort für das Projekt aus.
Wählen Sie "Erstellen" aus.
Suchen Sie nach dem Öffnen des Projekts die
Life.cppDatei im Projektmappen-Explorer.Öffnen Sie
Life.cppund löschen Sie den Standardcode "Hello, World!", um von vorne zu beginnen.
Verwenden von Copilot zum Erstellen einer App
Sie fordern Copilot auf, indem Sie die gewünschte Funktionalität beschreiben. In diesem Abschnitt erfahren Sie, wie Sie Copilot auffordern, eine Implementierung von Conways Game of Life zu generieren.
Öffnen Sie das Copilot-Chatfenster, indem Sie auf der Symbolleiste das Symbol "Copilot" auswählen:
Geben Sie im Chatfenster die folgende Eingabeaufforderung ein:
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 generiert C++-Code für Conway es Game of Life.
Kopieren Sie den generierten Code, und fügen Sie ihn in Ihre leere
Life.cppDatei ein.Erstellen Sie das Projekt, indem Sie F6 drücken oder Lösung erstellen> auswählen.
Führen Sie das Programm aus, indem Sie F5 oder STRG+F5 drücken.
Hinweis
Der genaue Code, der von Copilot generiert wird, kann geringfügig von Ausführung zu Ausführung und Modell variieren, die Kernfunktionalität sollte jedoch konsistent sein. Wenn der generierte Code nicht sofort kompiliert wird, können Sie Copilot bitten, Kompilierungsfehler zu beheben. Copilot wird von KI unterstützt, so dass Überraschungen und Fehler möglich sind. Weitere Informationen finden Sie unter Copilot-FAQs.
Beispiel für eine typische generierte Codestruktur
Ihr generierter Code enthält wahrscheinlich die folgenden Wichtigkomponenten:
- Headerdateien für Konsolenmanipulation, Zufallszahlengenerierung und Zeitmessung
- Ein 2D-Array oder -Vektor, das das Spielraster darstellt
- Funktionen zum Initialisieren des Rasters, Anwenden von Conway-Regeln und Anzeigen des aktuellen Zustands
- Eine Hauptschleife, die fortgesetzt wird, bis eine Taste gedrückt wird
Hier ist ein Beispiel für den Code, den Copilot mit der vorherigen Eingabeaufforderung generiert hat:
// 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;
}
Wenn Sie die Anwendung ausführen, sollten Sie eine animierte Anzeige des Spiels des Lebens von Conway sehen, mit Mustern, die sich im Laufe der Zeit entwickeln. Um das Programm zu beenden, drücken Sie eine Taste.
Im vorherigen Codebeispiel generiert der Code eine Warnung: Return value ignored: '_getch'. Sie können Copilot bitten, es zu beheben. Wählen Sie den Code-Editor aus, und drücken Sie ALT+/ (Windows), um den Copilot-Chat zu öffnen, und geben Sie dann Folgendes ein:
Copilot schlägt einen Fix vor, um den Rückgabewert ordnungsgemäß zu behandeln. Um die Änderungen zu übernehmen, wählen Sie tab aus:
Glückwunsch! Sie haben GitHub Copilot erfolgreich verwendet, um eine voll funktionsfähige Conway Game of Life-Konsolenanwendung in C++ zu erstellen. Sie haben gelernt, wie Sie:
- Erstellen einer effektiven Eingabeaufforderung zum Generieren von C++-Code
- Verwenden der Chatschnittstelle von Copilot zum Erstellen einer vollständigen Anwendung
- Beheben von Kompilierungswarnungen mit KI-Unterstützung
Verbessern Sie Ihre Eingabeaufforderungskompetenzen
Um bessere Ergebnisse mit Copilot zu erzielen, lesen Sie die folgenden Ressourcen zum Prompting.
- GitHub Copilot-Dokumentation – Offizielle bewährte Methoden und Tipps
- Bewährte Methoden des GPT von OpenAI – Allgemeine KI-Eingabeaufforderungstechniken
- Copilot-Aufforderungsleitfaden – Spezifische Anleitungen für die Codegenerierung
Problembehandlung
Fehlende Konsolen-App-Vorlage
Das Dialogfeld "Neues Projekt" sollte eine Konsolen-App-Vorlage mit C++-, Windows- und Konsolentags anzeigen. Wenn sie nicht angezeigt wird, wird sie möglicherweise aus der Liste herausgefiltert oder nicht installiert. Überprüfen Sie zuerst die Filterdropdowns oben in der Liste der Vorlagen. Legen Sie sie auf C++, Windows und Konsole fest. Die C++ -Konsolen-App-Vorlage sollte angezeigt werden; andernfalls ist die Desktopentwicklung mit C++ -Workload nicht installiert.
Um die Desktopentwicklung mit C++ zu installieren, können Sie das Installationsprogramm direkt über das Dialogfeld " Neues Projekt erstellen " ausführen. Wählen Sie unten im Dialogfeld "Neues Projekt erstellen" unter der Liste der Vorlagen den Link "Weitere Tools und Features installieren" aus. Wenn das Dialogfeld "Benutzerkontensteuerung " Berechtigungen anfordert, wählen Sie "Ja" aus. Stellen Sie im Installationsprogramm sicher, dass die Desktopentwicklung mit C++ -Workload überprüft ist. Wählen Sie dann "Ändern" aus, um Ihre Visual Studio-Installation zu aktualisieren.
Copilot reagiert nicht
- Stellen Sie sicher, dass Sie über ein aktives GitHub Copilot-Abonnement verfügen.
- Versuchen Sie, sich von Ihrem GitHub-Konto in Visual Studio abzumelden und dann wieder anzumelden.
Generierter Code wird nicht kompiliert
- Bitten Sie Copilot, bestimmte Kompilierungsfehler zu beheben, indem Sie die Fehlermeldung in den Copilot-Chat einfügen.
- Versuchen Sie, Ihre Eingabeaufforderung zu verfeinern, um spezifischer zu sein, was die App tun soll.
Nächste Schritte
- GitHub Copilot in Visual Studio
- GitHub Copilot-Dokumentation – Tauchen Sie tiefer in die KI-unterstützte Entwicklung ein
- Tolle ChatGPT-Eingabeaufforderungen - Communitygesteuerte Eingabeaufforderungsbeispiele für Inspiration