Belebeste Area im Game of Life suchen

eclipseworker

Bekanntes Mitglied
Ich habe das Game of Life programmiert und das meiste funktioniert gut (nicht ganz so gut wie dieses Webexample (und mit den kleinen Unterschied, dass ich die oberste und unterste Zeile als Nachbarn betrachte und es analog mit den Spalten mache), aber die Grundfunktionalitäten funktionieren). Nun will ich auch eine gute Ausgabe, wenn das Spielfeld zu groß für den Monitor ist. Ich weiß circa wie viel ich am Bildsirm anzeigen lassen kann mit diesen Wissen suche ich jetzt die Koordinaten (Links und Rechts und das unten und oben) der belebsten Area ermitteln um damit in der Anzeige zu arbeiten:
Java:
    /*
* search for the most populated area in the matrix that can be displayed within given rows and columns
*/
int[] most_populated_area(boolean[][] a, int r, int c){
    int[] rr=new int[4]; //return value
    rr[0]=0;
    rr[1]=r;
    rr[2]=0;
    rr[3]=c; //we first assume that the most populated arrea is upper left corner
    int summe=0;
    int m=a.length;
    int n=a[0].length;
    int max=0; //to controll wheater or not we found a more populated area we need a summe and the max we founded until now
    for(int isearch=0; isearch<m; isearch++){ //we search the matrix row for row
        for(int jsearch=0; jsearch<n; jsearch++){ // and column for column
            for(int ik=0; ik<=r; ik++){ // now from the current flied we go as many rows we are allowed
                for(int jl=0; jl<=c; jl++){ //and also as many columns we are allowed to go
                    int iks=isearch+ik; //we looking on the field is 0 to r
                    int jls=jsearch+jl; //and 0 to c flieds away from our current field
                    if(iks>m){ //if the field is outside the matrix we have to go back 
                        iks%=r; // iks is clearly bigger than r (because m bigger than r) but iks%r can be r-1 at most,
                        //so we have the rest from iks through r over the edge
                    }
                    if(jls>n){ //analog to iks
                        jls%=c;
                    }
                    summe+=booleanToInt(a[iks][jls]);
                }
            }
            if(summe>max){// the summe is greater than the max we found a more populated area and we save the the results
                max=summe;
                rr[0]=isearch;
                rr[1]=(isearch+r>m)?(isearch+r)%r:isearch+r;
                rr[2]=jsearch;
                rr[3]=(jsearch+c>n)?(jsearch+c)%c:jsearch+c;
            }
            summe=0; //anyway we reset the summe to search accurate
        }
    }
    System.out.println("Lifing in this area "+max);
    return rr;
}

int booleanToInt(boolean b){
    return (b)?1:0;
}
Das Max ist am Ende vielgrößer als die Gesamte Matrix und die Werte im rr scheinen Zufall zu sein (er hat mir schon unbelebte oder fast unbelebte Spielfeldbereiche ausgegeben). Ich hoffe jeder kann genug (D)Englisch für die Kommentare. Ich weiß nicht wo ich den Denkfehler drinnen habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
G SMA Signal Magnitude Area of an accelerometer Java Basics - Anfänger-Themen 1
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. Java Basics - Anfänger-Themen 2
I Problem mit Java Text Area Java Basics - Anfänger-Themen 14
N Linie auf spezielle Area zeichnen Java Basics - Anfänger-Themen 9
N Koordinaten aus Area bekommen? Java Basics - Anfänger-Themen 3
J Funktion Copy Area Java Basics - Anfänger-Themen 13
G Es wird immer nur der Eintrag in der Text Area angezeit Java Basics - Anfänger-Themen 6
J Morgen Java-Klausur. Stack, Heap, Method-Area Java Basics - Anfänger-Themen 2
F Area anlegen Java Basics - Anfänger-Themen 9
L Wizzard-Game Java Basics - Anfänger-Themen 3
Jxhnny.lpz bouncing Ball (Brick-Breaker-Game) Java Basics - Anfänger-Themen 1
V Probleme Guessing Game Java Basics - Anfänger-Themen 8
X Game of Life Nachbarn zählen Java Basics - Anfänger-Themen 20
P Moore Nachbarschaft-Game of Life Java Basics - Anfänger-Themen 1
P 2D Game Java Basics - Anfänger-Themen 6
B Verwirrender Game Loop Java Basics - Anfänger-Themen 6
L Conways Game of Life Java Basics - Anfänger-Themen 4
J Game of life Java Basics - Anfänger-Themen 3
B "Snake"-Game verbuggt Java Basics - Anfänger-Themen 0
K Game of live Java Basics - Anfänger-Themen 4
F Java Collectors Game Hilfe Java Basics - Anfänger-Themen 4
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
B Wer kennt einen Link für vollständiges, leichtverständliches "Game of Life"? Java Basics - Anfänger-Themen 1
F Game-Engine für textbasierendes Spiel: Architektur? Java Basics - Anfänger-Themen 9
D Textfield im Game ,Problem: while-Schleife Java Basics - Anfänger-Themen 1
C Game of life Java Basics - Anfänger-Themen 14
K Gutes Java 3D Game Tutorial gesucht Java Basics - Anfänger-Themen 6
Java-Insel Game-Konzept Java Basics - Anfänger-Themen 10
G Game Loop Problem Java Basics - Anfänger-Themen 9
T Kleines Game mit Kollision Java Basics - Anfänger-Themen 2
V Start ins Java Game Development Java Basics - Anfänger-Themen 22
I Programm Game & AR Java Basics - Anfänger-Themen 13
P Game of Life Java Basics - Anfänger-Themen 18
C Conways Game of Life / "Waldbrandsimulation": wieso temporäres Hilfs-Array?! Java Basics - Anfänger-Themen 8
K Game of Life Implementierung Java Basics - Anfänger-Themen 30
D Game of Life - Nachbarn zählen Java Basics - Anfänger-Themen 8
Developer_X Game of Life Java Basics - Anfänger-Themen 10
L Game of life in einem FensterVisualisieren Java Basics - Anfänger-Themen 2
D Game of Life Java Basics - Anfänger-Themen 14
T Anagram Game - warum ist es auf 2 Packages aufgeteilt? Java Basics - Anfänger-Themen 3
S 3d-game java3d/eigene API Java Basics - Anfänger-Themen 4
C Pong Game Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben