Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Runde Arrys in Java
- Ersteller m3x
- Erstellt am
G
Green Mamba
Gast
Sowas kannst du einfach selbst implementieren. Erstelle eine verkettete Liste, und verknüpfe einfach das letzte mit dem ersten Element. Der Sinn des ganzen will mir aber optisch nicht so ganz einleuchten... 
- Registriert
- Aug. 2005
- Beiträge
- 218
Sorry ich habe es etwas falsh forumliert. Also es handeld sich genau um "Conways - Spiel des Lebens". Da benötigt man ein Spielfeld. Jetzt sollte das Spielfeld nicht rechteckig sein sondern rund, also möchte ich die Arryfelder (ist ja ein zweidimensionales Array) so anordnen, dass wenn man sie in ein Koordinatenfeld der indexzahl entsprechend einzeichnen würde, einem Kreis ähnlich sehe...
Mach das Array einfach so gross wie das umgebende Rechteck und benutze einfach nur die Koordinaten die zum Spielfeld gehören.
Das braucht zwar Speicher, man muss aber am wenigsten denken :-). Ansonsten kannst Du ja noch eine Liste von eindimensionalen Arrays anlegen, die immer genau die passende Grösse haben.
Runde Arrays gibt es nicht, zumindest wird dieser Begriff im allgemeinen nicht verwendet.
MFG
Arnd
Das braucht zwar Speicher, man muss aber am wenigsten denken :-). Ansonsten kannst Du ja noch eine Liste von eindimensionalen Arrays anlegen, die immer genau die passende Grösse haben.
Runde Arrays gibt es nicht, zumindest wird dieser Begriff im allgemeinen nicht verwendet.
MFG
Arnd
- Registriert
- Aug. 2005
- Beiträge
- 218
daran habe ich auch schon gedacht, das problem ist nur das ich dan kane spielfeld begrenzung habe weil das zu erstellende interface für boolean sein muss (also zelle lebt oder ist tot) alles andere würde dann also sonst das ergebniss verfälschen ....
trotzdem mal danke
trotzdem mal danke
G
Green Mamba
Gast
Du kannst ja statt bools einfach bytes nehmen. Für true nimmst du eine 0, für false eine 1. Für Spielfeld ungültig eine 2. So, oder so ähnlich. 
G
Green Mamba
Gast
Arndt hatte ja noch eine Möglichkeit vorgeschlagen. Damit gehts auf jeden Fall. Oder aber du verwaltest nochmal ein Array wo jeweils zu jeder Zeile der Spielfeld Anfangs- und End-Index drin steht. 
Wahrscheinlicher ist aber, dass ihr euch eine Klasse "Spielfeld" schreiben müsst, die die gewünschte Funktionalität beinhaltet. Könnte das sein?
Ich mein jeweils Spielfeldtests bei get- und set-Methoden.
Wahrscheinlicher ist aber, dass ihr euch eine Klasse "Spielfeld" schreiben müsst, die die gewünschte Funktionalität beinhaltet. Könnte das sein?
Ich mein jeweils Spielfeldtests bei get- und set-Methoden.
- Registriert
- Aug. 2005
- Beiträge
- 218
also es handelt sich darum das wir dem konstruktor einen radius wert als int übergeben, der int wert stellt den radius des arrays da (das array soll 2 dimensinal, kreisförmig und vom tüp boolean sein).
der ursprung soll in der mitte des kreises (also der arryfläche sein)....
und darin das problem, der vorschlag das array zu begrenzen ist falsch, desweiteren mit einem boolean array nicht realisierbar(da die werte true und false für den status der "zellen -> der vievher die leben (true) oder tot sind (fasle)").
der ursprung soll in der mitte des kreises (also der arryfläche sein)....
und darin das problem, der vorschlag das array zu begrenzen ist falsch, desweiteren mit einem boolean array nicht realisierbar(da die werte true und false für den status der "zellen -> der vievher die leben (true) oder tot sind (fasle)").
Anhänge
G
Green Mamba
Gast
Es gibt aber nunmal keine runden Arrays, da kannst du dich auf den Kopf stellen. 
Warum also nicht ein größeres Array erstellen (quadratisch), und den Zugriff nur über get- und set-Methoden erlauben? Bei jedem Zugriff wird geprüft, ob fälschlicherweise versucht wird auf den Bereich außerhalb des Kreises zuzugreifen, und im Fehlerfall wird ein Fehlercode zurückgegeben?
Warum also nicht ein größeres Array erstellen (quadratisch), und den Zugriff nur über get- und set-Methoden erlauben? Bei jedem Zugriff wird geprüft, ob fälschlicherweise versucht wird auf den Bereich außerhalb des Kreises zuzugreifen, und im Fehlerfall wird ein Fehlercode zurückgegeben?
Die Frage ist wie die Aufgabenstellung lautet.
Wenn es nur darum geht ein Interface bereitzustellen das mit bool arbeitet, ist es doch vollkommen egal wie das Array aussieht. Dann würde ich die Rechtecklösung nehmen und mit byte Werten arbeiten. Deswegen kann doch trotzdem ein bool Wert zurückgegeben werden.
Ein direkter Zugriff auf das Array ist sowieso nicht schön und sollte vermieden werden.
MfG
Arnd
Wenn es nur darum geht ein Interface bereitzustellen das mit bool arbeitet, ist es doch vollkommen egal wie das Array aussieht. Dann würde ich die Rechtecklösung nehmen und mit byte Werten arbeiten. Deswegen kann doch trotzdem ein bool Wert zurückgegeben werden.
Ein direkter Zugriff auf das Array ist sowieso nicht schön und sollte vermieden werden.
MfG
Arnd
G
Green Mamba
Gast
Wäre nett, wenn du uns die "bessere" Lösung hier auch mal vorstellen könntest. 
Kampfgnom
Lt. Commander
- Registriert
- Jan. 2005
- Beiträge
- 1.075
Eigentlich sollte das ganze doch auch über ein eindimensionales Array realisierbar sein oder?
Man denke nur an Binäre Bäume, die repräsentiert man auch durch eindimensionale Arrays (bzw man KANN es so machen).
Man müsste doch bei gegebenem Radius genau wissen dass das Feld an stelle x nur in Zeile y liegen kann, und keiner anderen... Man muss sich nur noch einen Algorithmus überlegen, der für einen vorgegebenen Radius überlegt wie viele Zeilen ein solcher Kreis hat und wie viele Elemente dann jede dieser Zeilen haben soll, und schon sollte man das ganze auch rückwärts rechnen können.
Ich habe ehrlich gesagt auf die schnelle keine Idee
Man denke nur an Binäre Bäume, die repräsentiert man auch durch eindimensionale Arrays (bzw man KANN es so machen).
Man müsste doch bei gegebenem Radius genau wissen dass das Feld an stelle x nur in Zeile y liegen kann, und keiner anderen... Man muss sich nur noch einen Algorithmus überlegen, der für einen vorgegebenen Radius überlegt wie viele Zeilen ein solcher Kreis hat und wie viele Elemente dann jede dieser Zeilen haben soll, und schon sollte man das ganze auch rückwärts rechnen können.
Ich habe ehrlich gesagt auf die schnelle keine Idee
Sicher geht das auch mit einem 1D Array. Die entsprechenden Grenzen kann man relativ simpel berechnen.
Nur schnell ist das ganze dann nicht mehr. Auch nicht einfach zu verstehen und Änderungen möchte ich an so einem Algorithmus auch nicht vornehmen müssen.
In dem Fall verbrate ich lieber mehr Speicher und habe dafür wartbaren Code.
MfG
Arnd
Nur schnell ist das ganze dann nicht mehr. Auch nicht einfach zu verstehen und Änderungen möchte ich an so einem Algorithmus auch nicht vornehmen müssen.
In dem Fall verbrate ich lieber mehr Speicher und habe dafür wartbaren Code.
MfG
Arnd
Helios co.
Lt. Commander
- Registriert
- März 2005
- Beiträge
- 1.863
Im Prinzip kann man alles mit einem 1D Array realisieren...denn wie wir ja vielleicht wissen: Alle berechenbaren Probleme sind TM Berechenbar.
Und eine TM arbeitet nun mal nur mit einem Band, was im Grunde ein 1D Array ist.

Und eine TM arbeitet nun mal nur mit einem Band, was im Grunde ein 1D Array ist.
Ähnliche Themen
- Antworten
- 25
- Aufrufe
- 1.501
- Antworten
- 12
- Aufrufe
- 1.853
- Antworten
- 3
- Aufrufe
- 500
- Antworten
- 39
- Aufrufe
- 1.582