Is klar...Zenerid hat geschrieben:Sorry übrigens für die ganzen Rechtschreibfehler aber meine Tastatur spinnt aktuell.

Mit dem Iterator kannst du das auslagern, so dass Du über alle Nachbarn iterieren kannst, wenn Du halt iterieren möchtest.Zenerid hat geschrieben:Zu dem Array.:
Meinst du den java.util.Iterator? Wieso das denn? Man kann doch auch so eb end mit einer Schleife drüber iterieren, wie ich es grade mache oder etwa nicht? Das an einzelnen Stellen in Array auch ein null-Wert drin sein kann ist schon klar, aber besser dann mit einem Laufindex prüfen, als jedes Element da so hinschreiben zu müssen oder nicht?
Warum willst Du überhaupt iterieren?
Doppelt ist das, wenn Du ein Array und die Elemente als Membervariablen hast. Du solltest Dich auf eins festlegen. Mit dem Array bekommst Du Probleme, wenn Du den Xml-Mapper nutzt.Zenerid hat geschrieben: Das ich das Array sozusagen an 2 Orten halte, war wohl etwas schlecht ausgedgrückt, denn das stimmt so nicht. Ich habe das Array jetzt halt nur in die Nachbarn Klasse verschoben und hole mir das bspw. für die getZufaelligeRichtung Methode. Das sollte doch wohl so okay sein? Da muss ja nichts synchronisiert werden, also auch keine redundante Aufbewahrung.
Mit get() kannst Du ja auch ähnlich wie mit einem Array iterieren. Solange Du kein foreach machen möchtest.Zenerid hat geschrieben:Höh, so könnte ich meine Methode mit dem zufälligen Raum um einiges vereinfachen. Da habe ich nicht einmal dran gedacht ... tzz ...Xin hat geschrieben:Code: Alles auswählen
Raum r; Nachbar n = r.get( getZufaelligeFluchtrichtung() );
Naja, bei einer zufälligen Fluchtrichtung kann man ja auch gegen die Wand rennenZenerid hat geschrieben:Auch wohl eine gute Idee aber ich brauche ja auch eine Instanz des Raumes, um festzustellen ob sich in der Richtung überhaupt ein Raum befindet oder nicht? Davon weiß die Richtungsklasse ja gar nichts und sollte wohl auch nicht so sein, w+rde ich mal behaupten.Xin hat geschrieben:Designmässig würde ich hier auch eher eine statische Funktion in Richtung einbauen: raum.get( Richtung.getRandom() );
Ansonsten würde ich mich mal auf eine Sprache festlegen und Denglisch ist keine Sprache![]()

Schlussendlich ist die Frage aber nicht an den Raum gerichtet, sondern an die Klasse Nachbarn. Raum könnte hier aber eine Weiterleitung haben.
Offenbar hatten wir den Part schonZenerid hat geschrieben:Stimmt, da hast du Recht. Eigentlich müsste die Methode auch wohl getZufaelligerNachbar oder so heißen und nicht getZufaelligerRaum.Xin hat geschrieben:Die Entscheidung welcher Nachbar es ist, ist abhängig von der Klasse Nachbarn. Also würde ich das da reinpacken und der Raum fragt halt seine Nachbarn.

--- Offtopic ---
Was ist daran abstrakt?Zenerid hat geschrieben:Naja, es ist ja auch abstrakt oder nicht?Xin hat geschrieben:Amüsant ist, dass Leute Pointer abstrakt finden und dann Java programmieren...
Bitte versuche folgendes ProgrammBitte lass das Programm laufen, kopiere die Ausgabe hier rein und erkläre mir, was Du daraus liest.Code: Alles auswählen
public class MeineKlasse { int a; static void main( String[] argv ) { MeineKlasse mk; mk.a = 1; } }
Schonmal jemand gefunden, der ein Buch zu einem Thema schreibt und darin den Rat gibt, besser ein anderes Buch zu lesen?Zenerid hat geschrieben:Das ist ja nicht nur meine Meinung, sondern das wird auch in vielen Vorlesungen, die man online findet erwähnt oder das schreiben auch viele Autoren in ihren Büchern. Mag ja sein, das es einige nicht abstrakt finden aber wieso ist da amüsant? Nur weil ich das jetzt gesagt habe?
Meiner Erfahrung nach eher selten.

Es gibt gute Gründe von Java überzeugt zu sein. Große Projekte entstehen mit Java und zeigen, dass man mit Java tolle Dinge auf die Beine stellen kann. Zum Beispiel Openoffice ist das Java-Vorzeige-Projekt. Und wenn Du dem Link folgst, landest du bei Wikipedia und kannst mal gucken, welche Programmiersprachen OpenOffice ermöglicht.
Ich habe ein T-Shirt - darauf steht "C++ - my compiler compiles your compiler"
Wenn man also verstehen will, wie ein Computer funktioniert, dann sollte man sich nicht einer virtuellen Maschine anvertrauen, das führt zu einem virtuellen Verständnis von Computern.
Darum forderte ich Dich auf, das Programm zu kompilieren und zu starten.
Ansonsten: C++ vs. Java
Und trotzdem läuft es - wenn auch nicht sehr lange.Zenerid hat geschrieben:So wie das Programm jetzt ist, würde es wohl nicht laufen, würde ich zumindest sagen.
Wenn ich das in Eclipse reinkopiere, dann kriege ich die Meldung:The local variable mk may not have been initialized.
Es gibt mehr Möglichkeiten Text zu produzieren als nur println ^^Zenerid hat geschrieben:Das Programm würde so auch nichts ausgeben, da da eine Ausgabe fehlt?
Ich behaupte, dass es ein compilierbares Java-Programm ist.Zenerid hat geschrieben:Das soll doch eine Klasse in Java sein oder?
Starte es und schau, welche Ausgabe kommt.