Dynamische While/For Schleife

Ste3et_C0st

Mitglied
Heyho ich habe ein Problem ich bin ziemlich fit mit Java allerdings hab ich einen massiven Denkfehler. Und zwar geht es um das Spiel Minecraft ist aber ein java problem mit schleifen und zwar folgendes ich versuche es bildlich zu erklären:

Minecraft besteht ja aus Blöcken welche wiederum einen Chunk mit 16 Blöcke länge und 16 Blöcke Weite bilden hier mal ein Bild:

NtJAp.png


Diese Chunks bilden nun eine "Gruppe/Gitter" und zwar sieht das so aus:

chunkgridwithrowcol.png


Diese Verschiedene Chunks können nun von Spielern erworben werden und werden den Spielern zugeordnet

chunkFinder.png


Die Roten Kästenchen sind freie Chunks die Grünen Chunks sind Chunks von Spieler A und die grünen von Spieler B ich möchte nun die z.B die Komplette grüne gruppe auslesen das hier ist mein code um die nachbar kästchen zu bekommen:

Java:
public List<ChunkPlot> getPlotsArround(){
        List<ChunkPlot> plotList = new ArrayList<ChunkPlot>();
        DiceChunk plugin = DiceChunk.getInstance();
        ChunkManager manager = plugin.getChunkManager();
        for (int x = -1; x <= 1; x++)
        {
            for (int z = -1; z <= 1; z++)
            {
                Chunk chunk = getWorld().getChunkAt(getX() + x, getZ() + z);
                if(plugin.getInfo(chunk)!=null){
                    if(!plugin.getInfo(chunk).equals(LotStyle.NATURE)){continue;}
                    ChunkPlot plot = manager.getChunkPlot(chunk);
                    if(plot!=null){
                        if(!plotList.contains(plot)){plotList.add(plot);}
                    }
                }
            }
        }
        return plotList;
    }

Nun hab ich folgendes ergebniss:

chunkFinder2.png


Ich hab nun die nahe gelegten Chunks die meinen Suchkriterien entsprechen nun bräuchte ich aber einen weg die restlichen grünen Chunks auch noch zu finden ich hab da an eine Dynamische While schleife oder so gedacht welche das hier eingezeichnete X verschiebt und zwar so lange bis alle aneinanderlegende grüne Kästchen eingelesen sind.
 

mrBrown

Super-Moderator
Mitarbeiter
Breiten/Tiefensuche, du kannst im Prinzip getPlotsArround() für jeden Nachbar erneut aufrufen, ist ähnlich wie deine Idee, das 'X' zu verschieben.
 

Ste3et_C0st

Mitglied
Ich kapier irgendwie nicht das ist ein Totaler Brain Fuck find ich villeicht denke ich auch einfach zu viel darüber nach. @InfectedBytes das was du geschrieben hast nent sich auch rekursive function die ist zwar schön und gut aber ich komm einfach nicht drauf wie ich diese sinvoll einsetze ohne das es einen StackOverflowError gibt.
 

InfectedBytes

Top Contributor
ich vermute mal dein Fehler ist, dass da in jedem rekursiven Aufruf alle Richtungen erneut besuchst. Natürlich musst du darauf achten, dass du die Felder, welche du schon einmal besucht hast, nicht erneut besuchst.
 

mrBrown

Super-Moderator
Mitarbeiter
Floodfill ist nur Tiefensuche, die kann man auch nicht-rekursiv mit Stack schreiben. Das beachten der bereits besuchten wirst du immer machen müssen, sonst läuft der unendlich lang (= dein Stackoverflow, mit Stack gäb's uU OutOfMemory).

Wenn dich Tiefen/Breitensuche überfordert, ist das eine super Gelegenheit, diese zu lernen ;)
 

Ste3et_C0st

Mitglied
Habs doch gelöst:
Java:
public List<ChunkPlot> getConnectedChunks(ChunkPlot cPlot, List<ChunkPlot> plotList){
        for(ChunkPlot plotAorund : cPlot.getPlotsArround()){
            if(plotAorund.getOwnerUUID().equals(cPlot.getOwnerUUID())){
                if(!plotList.contains(plotAorund)){
                    plotList.add(plotAorund);
                    getConnectedChunks(plotAorund, plotList);
                }
            }
        }
        return plotList;
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
L Dynamische Bindung Java Basics - Anfänger-Themen 3
W OOP Definition / Abgrenzung dynamische Bindung Java Basics - Anfänger-Themen 11
J Dynamische Datenstrukturen Java Basics - Anfänger-Themen 0
L Variablen Dynamische Variablenname Java Basics - Anfänger-Themen 9
L Dynamische Programmierung Java Basics - Anfänger-Themen 0
M Schlüsselworte Dynamische Polymorhpie Java Basics - Anfänger-Themen 32
J OOP Dynamische Objektnamen Java Basics - Anfänger-Themen 6
F Erste Schritte Dynamische Variablen Java Basics - Anfänger-Themen 15
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Dynamische Variable ist? Java Basics - Anfänger-Themen 11
S Verwirrung - Dynamische Bindung greift nicht Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
P Klassen statische oder dynamische(?) Klasse Java Basics - Anfänger-Themen 3
J Dynamische Liste durchsuchen + anpassen Java Basics - Anfänger-Themen 3
A Schlüsselworte dynamische Stringteilung Java Basics - Anfänger-Themen 4
C Dynamische (AJAX) Inhalte einer Webseite mittels Java auslesen Java Basics - Anfänger-Themen 2
W Übungsaufgabe:Dynamische Datenstrukturen Java Basics - Anfänger-Themen 10
B dynamische erzeugung eines Objektes Java Basics - Anfänger-Themen 21
L Dynamische Objektgenerierung Java Basics - Anfänger-Themen 4
K Dynamische Bindungsregel Java Basics - Anfänger-Themen 2
B dynamische/statische Typen Java Basics - Anfänger-Themen 2
C dynamische JTextFields durchlaufen Java Basics - Anfänger-Themen 5
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
N OOP Dynamische Objekte und nach Parametern durchsuchen Java Basics - Anfänger-Themen 4
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
X dynamische Listen Java Basics - Anfänger-Themen 2
A Schnelle, dynamische, geordnete Datenstruktur? Java Basics - Anfänger-Themen 11
M Dynamische JButtons mit ActionListener Java Basics - Anfänger-Themen 7
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
0 Dynamische Datenstruktur ohne Duplikate und mit direkter Elementauswahl Java Basics - Anfänger-Themen 3
N Vererbung/Dynamische Bindungen Java Basics - Anfänger-Themen 15
W Dynamische Bindung Java Basics - Anfänger-Themen 3
P jsp tags und scriplets mischen dynamische werte an jsp tag Java Basics - Anfänger-Themen 2
S Dynamische Tabelle Java Basics - Anfänger-Themen 2
P Suche Ersatz für dynamische arrays Java Basics - Anfänger-Themen 2
T Dynamische Reaktionen Java Basics - Anfänger-Themen 29
P Dynamische Bindung Java Basics - Anfänger-Themen 8
F Dynamische Speicheranpassung und exe Java Basics - Anfänger-Themen 9
D Dynamische Objektnamen / Variablen als Objektnamen verwenden Java Basics - Anfänger-Themen 3
J dynamische Auswahl einer überladenen Methode Java Basics - Anfänger-Themen 5
C JTable und dynamische Speicherung Java Basics - Anfänger-Themen 2
M Dynamische Wertsetzung von Variablen durch Eingaben Java Basics - Anfänger-Themen 9
J Dynamische Größenveränderung der Komponenten verhindern Java Basics - Anfänger-Themen 8
C Dynamische Operatoren! Java Basics - Anfänger-Themen 5
R dynamische Variablennamen Java Basics - Anfänger-Themen 3
M dynamische, assziative Arrays Java Basics - Anfänger-Themen 2
I dynamische mehrdimensionales Array Java Basics - Anfänger-Themen 8
H Unterschied statischer/dynamische Typ einer Variablen Java Basics - Anfänger-Themen 2
H statische,dynamische Bindung Java Basics - Anfänger-Themen 4
0 Dynamische Speicherverwaltung Java Basics - Anfänger-Themen 4
B Dynamische If Anweisung Java Basics - Anfänger-Themen 13
B Dynamische Variable Java Basics - Anfänger-Themen 12
C Dynamische Arraygröße Java Basics - Anfänger-Themen 2
M dynamische tabellen Java Basics - Anfänger-Themen 2
G Java dynamische Arrays?? Java Basics - Anfänger-Themen 2
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben