Ich möchte ein kleines Snake-Spiel in C++ programmieren und ich möchte wissen, wie man die Spielmatrix am besten darstellt.Schlange Darstellung des Gitters
ich einen 2DArray (so etwas wie Vektor < Vektor < int>>) verwenden könnte, die einige Werte, die verschiedene Objekte enthalten (zum Beispiel: 0 nichts, 1 Schlange, 2 Wand, 3 Lebensmittel, ...) On andererseits könnte ich kein Array für das Gitter verwenden und multiple Arrays für die verschiedenen Spielobjekte verwenden (zum Beispiel: Vektor < Wand>, Vektor < SnakeTile>, Vektor < Essen>, ...).
Sollte ich auch std :: deque verwenden, um meine Schlange darzustellen?
Vielen Dank für Ihre Hilfe.
Ich denke, dass beide Darstellungen korrekt sind. Die gitterartige Darstellung nimmt mehr Platz im Speicher ein, ist aber schneller. Die "Spielobjekt" -Darstellung ist langsamer, kann aber weniger Platz im Speicher einnehmen und kann logischer sein. Es hängt davon ab, was Sie wollen, von Ihrer grafischen Bibliothek und der Komplexität des Spiels. Ich persönlich bevorzuge die Gitterdarstellung für ein einfaches Arcade-Spiel wie Snake, Pac-Man, etc ... – Hugal31
@ Hugal31 Das "Game-Objekt" könnte schneller sein. Ein Grill von 20x20 nimmt O (400) + O (n), n ist die Anzahl der Objekte. Auf der anderen Seite haben Sie mit 42 Objekt O (42). Meiner Meinung nach ist eine Hash-Karte eine gute Option, um beide Vorteile zu haben. Sie müssen nicht auf Ihrem Raster Schleife und wenn Sie auf einen bestimmten Fall zugreifen möchten. Sie werden etwas zwischen O (1) und O (log n) haben. – Stargateur