Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
17.01.14, 21:19
|
#1
|
Machead
Registriert seit: Jul 2010
Beiträge: 855
Bedankt: 631
|
[C++] Mehrdimensionale dynamische Array
Hallo Community,
bin noch relativ neu in C++ und bin gerade dabei mir ein ASCII Snake zu programmieren.
Dabei soll jedes Element bzw. jedes Ausgemalte Feld der Schlange in eine Mehrdimensionale Array gespeichert werden.
Code:
int iSchlangenPos[i][2]{{x1,y1}, {x2,y2}, {x3,y3}, ..., {xi,yi}};
Natürlich frisst die Schlange auch und somit wird 1 Feld mehr am Ende der Schlange ausgemalt.
Ich suche jetzt natürlich eine Möglichkeit das Array bei jeder Verlängerung um 1 zu vergrößern ohne das ich die vorherigen Werte verliere bzw. alles in ein neues Array (über eine Schleife mit Pointer etc.) mit i+1 schreiben muss. Hatte bis jetzt keine dynamischen Arrays aber bei 50 auf 50 Felder eine [2600][2] Array zu erstellen ist doch blöd oder?
Grüße Maxor
__________________
Die einfachste Art die Zukunft vorherzusagen, ist sie zu implementieren. (David Heinemeier Hansson)
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
18.01.14, 00:44
|
#2
|
Mitglied
Registriert seit: Dec 2008
Beiträge: 477
Bedankt: 115
|
mehrdimensionale, dynamische Arrays... ohje.. damit habe ich mich mal Nächte mit rumgeschlagen.. Brauchst du aber hier nichtmal.. da deine Schlange ja nicht unendlich groß werden kann..
Snake ist "gewonnen" indem du das gesamte Bild mit der Schlange ausgefüllt hast und kein Pixel leer bleibt. Somit kannst du dich ruhig beschränken..
wohingehend das Speichertechnisch vernüftig ist oder nicht.. :S kann ich dir leider auch nicht sagen,... klappen würds so jedoch
__________________
|
|
|
18.01.14, 11:30
|
#3
|
Machead
Registriert seit: Jul 2010
Beiträge: 855
Bedankt: 631
|
Ich denke dann wird es wohl doch besser sein es über Pointer zu lösen.
__________________
Die einfachste Art die Zukunft vorherzusagen, ist sie zu implementieren. (David Heinemeier Hansson)
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
18.01.14, 13:47
|
#4
|
Anfänger
Registriert seit: Sep 2010
Beiträge: 30
Bedankt: 7
|
Kann leider noch kein C++.
In C jedoch geht das malloc und realloc.
Würde hier erst ein dynamisches Array mit malloc reservieren und dann mit realloc immer ein weiteres Element hinzufügen.
|
|
|
18.01.14, 18:36
|
#5
|
Nur der Hamburger SV
Registriert seit: Oct 2009
Beiträge: 476
Bedankt: 293
|
Alleine für das Wort "dynamisches Array" würde dich ein Großteil meiner Dozenten köpfen.
Du erstellst ein 2 Dimensionales Array, das dein Spielfeld abdeckt, x und y sind dabei als Konstanten zu deklarieren. Ein leeres Feld ist ne 0, ein Feld mit der Schlange ist eine 1 und die Frucht oder whatever du sammeln musst, ist eine 2. Für die Schlange selber solltest du eine Liste erstellen, damit du das FiFo Prinzip anwenden kannst.
Bei der Bewegung Checkst du den Wert des neuen Feldes. Bei einer 0 triggerst du die move Funktion, bei einer 1 ist das Spiel vorbei und bei einer 2 führst du die enlarge Funktion aus. Das ist quasi eine Funktion zum Bewegen, mit der Außnahme, dass du den ersten Eintrag der Liste nicht raus löscht. Zur besseren Übersicht erstellst du für die Koordinaten eine eigene Struktur mit dem Wertebereich deiner deklarierten Konstanten für die Feldgröße, um noch Ressourcen zu sparen.
__________________
Ein Fehler ist aufgetreten: der Vorgang wurde erfolgreich ausgeführt.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr.
().
|