Autor |
Beitrag |
Maric
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 15.11.10 20:26
Ich habe ein zweidimensionales Array mit Sechsecken und will wissen, ob es einen algorithmischen Trick gibt, mit dem ich in jeder der drei Richtungen (oben-unten,rechtsoben-linksunten,linksoben-rechtsunten) die benachbarten Felder feststelle. Oben-unten ist nicht schwer, einfach y Koordinate hoch bzw runterzählen, aber in den Schrägen ist das ja mehr oder weniger abwechselnd. Wenn mir außer mit mod 2 zu Arbeiten nichts übrig bleibt reicht auch ein nein.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mo 15.11.10 20:35
Numerier sie doch einfach durch und schau nach der Gesetzmäßigkeit.
_________________ Na denn, dann. Bis dann, denn.
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 15.11.10 20:45
Maric hat folgendes geschrieben : | Wenn mir außer mit mod 2 zu Arbeiten nichts übrig bleibt reicht auch ein nein. |
Besonders wenn es um Felder mit unbeschränktem Ausmaß geht, kann es eleganter sein, die "y-Achse" diagonal zu legen, aber wenn du sie schon als "senkrecht-alternierend" festgelegt hast - ja, dann hast du da quasi per definitionem ein mod 2 drin  .
_________________ >λ=
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Mo 15.11.10 20:51
|
|
Maric 
Hält's aus hier
Beiträge: 8
|
Verfasst: Di 16.11.10 20:44
ja genau so
@ Post vorher wenn ich die y Achse schräg lege, bringt mich das auch nicht weiter, weil die anderen beiden immer noch im 120 Winkel davon abstehen
ich kann das noch alles umstrukturieren, wäre also kein Problem wenn es eine Struktur gäbe in der sich das leicht bestimmen lässt (objekte mit Nachbarschafts-referenzen sind mir aber doch zu aufwändig)... dann her damit
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Di 16.11.10 22:03
Maric hat folgendes geschrieben : | @ Post vorher wenn ich die y Achse schräg lege, bringt mich das auch nicht weiter, weil die anderen beiden immer noch im 120 Winkel davon abstehen |
Natürlich, aber die Vektoren zu den einzelnen Nachbarn sind dann konstant und nicht mehr von der Zeile abhängig.
_________________ >λ=
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 16.11.10 22:11
Also sagen wir mal so: in meinen HexGames mache ich das so, dass ich die relativ längliche Funktion zur Berechnung der Nachbarn (naja, ein if halt was je nach Zeile unterschiedliche Richtungen geht) beim Map erstellen genau einmal aufrufe und jedem Tile eine Liste "Neighbors" gebe, die die (max. 6) Nachbarn enthält. Über die braucht man dann nur noch zu iterieren.
Hat sich bewährt...
Bei DGL gibts auch was dazu.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Mr_Emre_D
      
Beiträge: 114
Erhaltene Danke: 14
|
Verfasst: Di 16.11.10 22:55
Voila, mir war langweilig!
Ich hoffe, dies ist die Antwort auf das Problem. Bin immernoch im Ungewissen darüber, was das eigentliche Problem ist; aber wie auch immer!
MfG
Einloggen, um Attachments anzusehen!
|
|