JC's Game Of Life | Lösungsansatz, wo liegt der Fehler?

Diskutiere JC's Game Of Life | Lösungsansatz, wo liegt der Fehler? im Programmierung Forum im Bereich Software Forum; Hallo zusammen, Ich habe mich mal an John Conways Game Of Life versucht und soweit, wie möglich verstanden. Hier ein Link für jemanden, der nicht...
L

Luddi

Threadstarter
Mitglied seit
07.10.2008
Beiträge
51
Alter
25
Standort
NRW
Hallo zusammen,
Ich habe mich mal an John Conways Game Of Life versucht und soweit, wie möglich verstanden.
Hier ein Link für jemanden, der nicht weiß, was gemeint ist: http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens
SO, ich benutze C++ und bleibe vorerst in der Konsole ;)

Ich habe mir gedacht, ich erstelle zwei zweidimensionale Arrays von Typ bool, eines für den aktuellen Zustand und das nächste für den Zustand der nächsten Generation.
Anschließend wird für jede Zelle die Anzahl der Nachbarn geprüft und ausgewertet. Danach weiß man, ob die Zelle in der nächsten Generation lebt oder nicht und in das Array für die nächste Gen. geschrieben.
Am Ende muss nur noch der Zustand der nächsten Gen. auf die jetzige überschrieben und ausgegeben werden.

Soweit sieht mein Code dazu aus:

PHP:
#include <iostream>
using namespace std;

int main() {
    
    bool end;
    bool status[10][10], statusnext[10][10], lol;  //lol ist nicht zu beachten :)
    int times, nebeni, nebenj;
    
    
    for(int r=0; r<10; r++) {
       for(int s=0; s<10; s++) {
               status[r][s] = 0;
               statusnext[r][s] = 0;
           }
       }
       
       
    status[2][2]=1;  //probeweise die arrays beschreiben, sodass 
    status[3][2]=1;  //ein "Blinker" heraus kommen sollte
    status[4][2]=1;
    
        for(int o=0; o<10; o++) {
            for(int p=0; p<10; p++) {
                    cout<<status[o][p]<<" ";
                    }
            cout<<endl;
            }
            cout<<"-------------------"<<endl;
    
    cout<<"Wie oft soll geprueft werden?"<<endl;
    cin>>times;
    
//////////////////////////////////prüfen, schreiben usw, in einer schleife 

 do{   

    for(int i=1; i<9; i++) {
                     for(int j=1; j<9; j++) {  
                             int Nachbarn=0;
                                 nebeni=i;   //es wird immerwieder beschrieben, weil ich 
                                 nebenj=j;   //glaube, dass die In-/Dekrementation nicht wieder rückgängig gemacht wird ?!
                                   if(status[++nebeni][nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j; 
                                   if(status[nebeni][++nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j;  
                                   if(status[--nebeni][nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j;  
                                   if(status[nebeni][--nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j; 
                                   if(status[++nebeni][++nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j; 
                                   if(status[--nebeni][--nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j;  
                                   if(status[++nebeni][--nebenj] == 1)
                                       Nachbarn++;
                                       nebeni=i;
                                       nebenj=j;  
                                   if(status[--nebeni][++nebenj] == 1)
                                       Nachbarn++; 
                                       
                                       // Anzahl der Nachbarn prüfen
                                       if(status[i][j]=1) {
                                          if((Nachbarn == 2) || (Nachbarn == 3))
                                            statusnext[i][j] = 1; 
                                          else
                                            statusnext[i][j] = 0;
                                       }
                                       else {
                                            if(Nachbarn == 3)
                                              statusnext[i][j] = 1;
                                            else
                                              statusnext[i][j] = 0;
                                       }
                                         
                              }
           }
           
           
    for(int k=0; k<10; k++) {
            for(int l=0; l<10; l++) {
                    
    status[k][l] = statusnext[k][l]; //überschreiben
  }
 }

 //display
    for(int o=0; o<10; o++) {
            for(int p=0; p<10; p++) {
                    cout<<status[o][p]<<" ";
                    }
            cout<<endl;
            }
            cout<<"-------------------"<<endl;
 
 times--;  // umfang für die anzahl der zu prüfenden Generationen
 if(times <= 0) 
    end=true;
} while (end == false);

cin>>lol; // mir ist noch nichts besseres eingefallen ;)
}
Man könnte das Ganze natürlich auch in Funktionen und Klassen verwirklichen,
ich hoffe aber, dass klar wird, was ich mir wie vorgestellt habe.

Jetzt hoffe ich, dass jemand den Fehler findet und mir erklärt worin er besteht, ich hoffe, man sieht dass ich mir schon ordentlich Gedanken gemacht und nicht irgendetwas aus dem www kopiert habe ;)

Vielen Dank im Voraus.

P.S. Ich habe dass Cpp Dokument auch angehangen.
 

Anhänge

Thema:

JC's Game Of Life | Lösungsansatz, wo liegt der Fehler?

JC's Game Of Life | Lösungsansatz, wo liegt der Fehler? - Ähnliche Themen

  • Xbox Game Pass for PC

    Xbox Game Pass for PC: Guten Tag zusammen und zwar hab ich mir grad das "Probeabo" für 1 Euro geholt für Xbox Game Pass for PC Das Problem ist ich kann mir zB. kein...
  • Minit kostenfrei im Epic Games Store bis 10.10.2019

    Minit kostenfrei im Epic Games Store bis 10.10.2019: Mit ein bisschen Verspätung, denn auch wir brauchen mal Urlaub, gibt es eine Erinnerung an den aktuellen kostenfreien Titel im Epic Games Store...
  • Metro: 2033 Redux und Everything kostenlos im Epic Games Store bis 03.10.2019

    Metro: 2033 Redux und Everything kostenlos im Epic Games Store bis 03.10.2019: Auf Englisch lockt die Aktion sicher mehr an? Everything free at the Epic Games Store? XD Spaß beiseite, denn aktuell gibt es die Titel...
  • 6 Batman Games kostenlos im Epic Games Store bis zum 29.09.2019!

    6 Batman Games kostenlos im Epic Games Store bis zum 29.09.2019!: Bisher gab es immer ein oder zwei Games kostenfrei im Epic Games Store, aber nun könnt Ihr gleich 6 Spiele rund um den dunklen Rächer abgreifen...
  • Conarium noch bis 19.09.2019 kostenlosim Epic Games Store

    Conarium noch bis 19.09.2019 kostenlosim Epic Games Store: Fast vergessen, da ich selbst mit dem Spiel beschäftigt war... ^^ Noch bis zum 19.09.2019 gibt es das gruselige und von Lovecraft inspirierte...
  • Ähnliche Themen

    Oben