Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo

Ich versuche Nibbles a.k.a. Snake in c++ programmieren. Da ich neu bei dem Thema bin bräucht ich da noch Hilfe:

Und zwar eine elegante Lösung zu finden für den Schwanz des Wurms.

Sollte ich einfach ein Array nehmen, das die Koordinaten jedes Teiles des Wurms enthält?

Dann müsste ich jede Runde neu sortieren um den letzten Teil des Arrays , also das Schwanzende, löschen zu können (wenn sich der Wurm bewegt)

Kann mir da einer weiterhelfen? Ratschläge, Vorschläge, ...

Danke!

Original geschrieben von Gringorius

Dann müsste ich jede Runde neu sortieren um den letzten Teil des Arrays , also das Schwanzende, löschen zu können

Nö, nicht sortieren, sondern einfach die Werte um eins nach hinten in dem Array verschieben und das erste Element neu besetzen. Der letzte Wert fällt dann weg. Wenn die Schlange länger wird, setzt du die Länge des Arrays (muss ja nicht dynamisch sein für den Anfang) höher.

haha! da lach ich über mich das ich nicht selbst drauf gekommen bin.. einfach alles einzeln verschieben... au weia!! :-)

DANKE!!!

Was ist STL und std::queue? Kannst du das kurz erklären? Wenns nicht zu lange dauert ;-)

Wie gesagt, ich programmiere noch nicht lange und bringe es mir genaugenommen auch nur selbst bei (bzw. versuche es) von daher darf ich alles benutzen aber kann es nicht :-(

Es reicht doch auf zwei Zeiger durchs Array wandern zu lassen, wodurch Schwanz und Kopf festgelegt werden. So ist die Schlangenlänge nur durch die Arraygröße begrenzt und man muß nur die Zeiger hochzählen und bei Überlauf zurücksetzen. Es braucht auch nur ein Eintrag im Array neu gesetzt werden (die neue Kopfposition). Das ist auch ungefähr das Prinzip einer Queue und eine gute Übung für Zeiger. Wieso Du dort rumsortieren wolltest kapier ich allerdings nicht ganz.

Original geschrieben von Gringorius

Was ist STL und std::queue? Kannst du das kurz erklären? Wenns nicht zu lange dauert ;-)

Die STL ist die Standard Template Library. Sie enthält eine ganze Menge an Container-Klassen die einem schon so manches Problem nehmen. Ich hab hier mal nen link dazu

STL-Beschreibung

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.