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 ein alternativer Browser verwenden.
Datentypen2 d array erweitern und ins negative gehen.
Hallo, wie kann ich ein 2D-array erweitern? Ich brauche für meine Klasse auch negative Werte, so wie bei einem Koordinatensystem? Kann mir jemand erklären wie man das macht?
Ein Array kann keine negativen Indices verarbeiten, genausowenig wie es negative Bildschirmkoordinaten gibt.
Du musst halt bei einem passenden Index den Nullpunkt des Koordintensystems definieren. Alles was kleiner ist, ist negative.
Ein Array kann nicht ins negative gehen (java fängt ja immer bei 0 an zu zählen).
Um ein Koordinatensystem zu bauen, gäbe es mehrere Optionen. Hier sind mal zwei davon:
1. noch weitere Arrays für jeden Quadranten eines Koordinatensystems erstellen
2. bei z.B. 100 Anfangen zu zählen. d.h. 10 entspricht -90, ...
du müsstest das dann halt jedes mal umrechnen, z.b.
Java:
String[][] array = new String[200][200];
int x = 100;
array[-50 + x][-30 + x] = "";
EDIT: Also genau das, was mein Vorredner schon gesagt hat.
Du kannst nicht ins unendliche gehen. Wo willst du denn unendlich Speicher hernehmen? Du machst Dein Array so groß wie Du die Daten ausrechnest oder anzeigst. Wenn Du nur 2000 Pixel auf Deinem Screen anzeigen kannst, dann macht es wenig sinnd 5000 zu rechnen.
Und wenn du auf einem Screen mit 2000 Pixeln doch die Werte bis 10000 anzeigen willst, dann must du ahlt skalieren. DAs heist du hast trotzdem nur ein Array von 2000 rechnest aber auch nur jeden 5ten Wert aus.
Die Felder haben grundsätzlich den Wert 0, es sei denn Ihnen wird ein Zustand zugeordnet. Die "Langtonameise" soll sich auf diesem "Spielfeld" in unvorhersehbarer Weise nach oben unten oder zur Seite bewegen. Das könnte theoretisch dann bis ins unendliche gehen.
Dann solltest du einfach alle Koordinaten die die Ameise trifft in eine Liste packen. Diese kann dann unendlich werden oder zumindest so lang bis der Speicher voll ist.
Kannst Du mir das bitte etwas genauer erklären? Meinst Du eine ArrayList? Es geht mir jetzt grade auch erstmal nur darum die Klasse des "Spielfelds" zunächst nicht-grafisch zu implementieren.
Du erzeugst aus jeder Koordinate die deine Schlange trifft einen Point2D und setzt x und y rein. Dann fügst du diesen Point meinetwegen einer ArrayList zu. Damit hast du alle Informationen die du brauchst.