Entwickler-Ecke
C# - Die Sprache - Position in einem Multidim-Array bestimmen
Namenlosnameless - Sa 23.01.10 01:55
Titel: Position in einem Multidim-Array bestimmen
Hallo!
Ich bin gerade dabei mir PAC-MAN zu schreiben, dabei stehe ich vor einem Problem!
Prinzipiel arbeite ich mit einem 2-Dimensionalem Array der das Spielfeld für den Computer symbolisiert.
Ich glaube das nennt man Tilemap oder so ähnlich.
In diesem Array gibt es 5 Zustände die durch int-Werte dargestellt werden. z.B. Wert 4: Hier ist PAC-MAN
Nun zu Meinem Problem: Da ich eine beliebige Anzahl an Gegnern habe muss ich sie alle über eine foreach, die nach den Werten für "Gegner" im Array sucht, ansprechen.
Dabei muss ich zwangsläufig die Position des Gegners bestimmen können. Also z.B. Der Wert für Gegner steht auf Arraypoition [7,0] oder [15,4].
Dazu muss man noch sagen das die erste Dimension an eine Variable "x" übergeben werden soll und die 2te an "y".
Kann mir da jemand helfen? Ich will endlich mal ein "größeres" Projekt das ich mir vornehme auch beenden.
mvg Namenlosnameless
Greenberet - Sa 23.01.10 11:21
ich würde es anders machen...
du hast eine 2dim array, was 2(3) zustände hat:
0 = Wand
1 = Begehbar
(2 = Teleport zu X/Y )
Alle anderen objekte in der Karte( Frucht, geist, "Punkt", pacman, "ängstliche geister" ) erstellst du als Objekt in einer Extra Liste ( oder mehreren Listen ). Jedes dieser Objekte hat die Koordinaten X/Y.
Namenlosnameless - Sa 23.01.10 14:07
Danke für die Antwort
Ist auch eine Variante!
ICh denk mal drüber nach!
Trotzdem würde ich es interessant finden wie ich die "Koordinaten" im Array auslesen kann. Vlt für andere Sachen..
Kha - Sa 23.01.10 21:54
Namenlosnameless hat folgendes geschrieben : |
| Trotzdem würde ich es interessant finden wie ich die "Koordinaten" im Array auslesen kann. Vlt für andere Sachen.. |
Du gehst das Array von hinten nach vorne durch, bis du gefunden hast, was du suchst ;) .
Eine "Gegner"-Liste wäre also auf jeden Fall eleganter, wenn auch bei Pacman-Verhältnissen noch nicht unbedingt notwendig.
Namenlosnameless - So 24.01.10 01:06
Kha hat folgendes geschrieben : |
| Du gehst das Array von hinten nach vorne durch, bis du gefunden hast, was du suchst ;) |
.
kannst du mir das etwas genauer erklären? Weil das ist ja genau das was ich mit der foreach bezwecken will. Ich suche solange bis mir der Wert "Gegner" zurück gegeben wird.. Allerdings weiß ich danach nicht an welcher Arrayposition das Element gefunden wurde? oder?
Kha - So 24.01.10 01:36
Achso, darum geht es. Dann nimmst du statt foreach eben wieder das gute alte for.
Namenlosnameless - So 24.01.10 01:41
Auch war...^^ wenn ich das ganze richtig interpretiere dann brauch ich 2 for's oder??
Eine die alle "x" durchläuft, die in einer steht die alle "y" durchläuft. und wenn Array[x,y] den Wert "Gegner" ergibt dann mache blabla wenn nicht suche weiter oder?
Zumindest ist es so, das einzige das ich mir vorstellen kann, lass mich aber gerne etwas besserem belehren.
Namenlosnameless - Mi 27.01.10 00:16
Es hat geklappt!
Danke für die Hilfe!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!