Spiel des Lebens
Übersicht

![]() |
SephkaBetreff: Spiel des Lebens |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mal gestern das Spiel des Lebens geproggt da ich schon einige Beispiele gesehn hab.
Komischerweiße ist bei mir nach kurzer Zeit alles voller Zellen... Hier der Code: Code: [AUSKLAPPEN] Graphics 1024,768,0,2
SetBuffer BackBuffer() SeedRnd MilliSecs() ;################### Global Size% = 3 Global Raster% = 3 Global DIMG = 199 Dim Felder(DIMG+1,DIMG+1) For n=0 To (Dimg/3)^2 ;<----spielt hierdran rum um die Dichte der Startzellen zu verändern! felder(Rand(1,DIMG),Rand(1,DIMG))=1 Next ;#######MAIN Repeat Cls For x=0 To DIMG For y=0 To DIMG If Felder(x,y) = 1 Then Color 255,255,255:Rect x*Raster,y*Raster,size,size Next Next ;Nächste Generation For x=0 To DIMG For y=0 To DIMG If Felder(x,y) = 0 And AnzahlNachbarn(x,y) = 3 Then Felder(x,y) = 1:Goto End ;Neue Zelle If Felder(x,y) = 1 And AnzahlNachbarn(x,y) < 2 Then Felder(x,y) = 0 ;Einsamkeit If Felder(x,y) = 1 And AnzahlNachbarn(x,y) > 3 Then Felder(x,y) = 0 ;Überbevölkerung .End Next Next Flip Until KeyHit(1) End Function AnzahlNachbarn(Zx,Zy) Local N% If Zx<DIMG Then If Felder(Zx+1,Zy) = 1 Then N=N+1 If Zx>0 Then If Felder(Zx-1,Zy) = 1 Then N=N+1 If Zy<DIMG Then If Felder(Zx,Zy+1) = 1 Then N=N+1 If Zy>0 Then If Felder(Zx,Zy-1) = 1 Then N=N+1 If Zx<DIMG And Zy<DIMG Then If Felder(Zx+1,Zy+1) = 1 Then N=N+1 If Zy>0 And Zx<DIMG Then If Felder(Zx+1,Zy-1) = 1 Then N=N+1 If Zx>0 Then If Felder(Zx-1,Zy+1) = 1 Then N=N+1 If Zx>0 And Zy>0 Then If Felder(Zx-1,Zy-1) = 1 Then N=N+1 Return N End Function Danke schonmal im Vorraus... |
||
Mein Freund und Helfer:
Win7 Home Premium SP1 AMD Athlon II X4 645 3.1GHZ 8GB Ram 64bit |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Spiel des Lebens <> Conway's Game of Life
Um die nächste Generation zu berechnen, brauchst du ein zweites Feld oder eine weitere Dimension, ansonsten kannst du die Nachbarn nicht richtig berechnen, da du ja schon Nachbarn löschst/hinzufügst die für die nächste Zelle von Bedeutung sind. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gäbe auch eine Möglichkeit, die ohne zweites Feld auskommt:
Setze die neuen (Kinder) nicht als "1" sondern zunächst als "2" in dein Feld ein. Unmittelbar vor dem FLIP gehts Du dan das gesamte Feld nochmal durch und ersetzt alle "2"er durch "1"er. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group