Simpler Algorithmus läuft extrem langsam.

metalman255

Mitglied
Hallo zusammen, ich wollte mich heute mal mit Zufallsgeneratoren befassen und habe mich dazu entschieden, einen 2D-Höhlengenerator zu programmieren. So ähnlich wie in Minecraft, halt einfach in 2D. Dafür brauchte ich eine Methode, welche den Durchschnittswert der umliegenden Pixels ausrechnet, doch diese läuft jetzt extrem langsam:

Java:
public byte averageValueNear(int xx,int yy,int range){
        int x=xx-range;
        int y=yy-range;
        double n=0;
        double i=0;
       
    for(x=xx-range;x<xx+range;x++){
           
            for(y=yy-range;y<y+range;y++){
               
                if(x!=xx && y!=yy && x>=0&&y>=0&&x<width&&y<height){
                i+=map[x][y].getValue();
                n++;
                System.out.println(x+" "+y+" "+i);
               
                }
               
               
               
            }
    }

xx und yy stehen für die Ursprungskoordinaten
x und y stehen für die durchlesekoordinaten
range steht für den Umkreis
i steht für die zusammengezählten Werte
und n für die Anzahl Werte

Ich hoffe ihr könnt mir helfen.
 
kommt natürlich auch auf die größe deiner karte an.
Bei 1000*1000 pixel hast du schon eine million pixel zu überprüfen, welche jeweils die benachbarten werte betrachten. Wenn du also nur die direkten Nachbarn betrachtest, sind es schon fast 10millionen werte. Wenn range dann auch noch größer wird, explodiert die anzahl der überprüfungen geradezu

p.s.
nur weil ein Algorithmus simpel ist, muss er noch lange nicht schnell sein^^
Eine Zahl um eins zu erhöhen ist auch simpel...aber wenn man dass mehrere milliarden mal macht, ist es trotzdem langsam
 

Zurück
Oben