John Conway's "Game of Life"
Übersicht

![]() |
WaveblueBetreff: John Conway's "Game of Life" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Ich hab heut in einer Zeitung von dem "Game of Life" gelesen: Man nimmt ein Go-Brett (ein gekacheltes Brett) und platziert darauf ein paar Steine, die "Zellen". Nun geht es wie folgt: 1. wenn 3 Zellen an ein leeres Feld angrenzen, erzeugen sie dort eine neue Zelle 2. Einsame Zellen sterben. Grenzen weniger als 2 Zellen an eine Zelle an, wird sie entfernt. 3.Zellen die in der Menge untergehen werden ebenfalls entfernt. Grenzen mehr als 3 Zellen an, wird sie gelöscht. Nach diesen einfachen Regeln entsteht nun eine Art Mikrokosmos. Sie erinnert allerdings mehr an einen Weltraum, man kann dort kleine Raumschiffe, Pulsare und mehr solches Zeug sehen. ![]() Ich hab aus reiner Neugierde dazu mal einen Code geschrieben. Ich finds faszinierend. Falls jemand einen Verbesserungsvorschlag hat, einfach posten bitte^^ Code: [AUSKLAPPEN] Graphics 1024,768,32 SetBuffer BackBuffer() Const dimens=200 ;<-----------Diesen Wert verändern um die Rasterung des Feldes zu verändern! ;Zwischenspeicher-Types Type zellenhinzu Field x,y End Type Type zellenweg Field x,y End Type SeedRnd(MilliSecs()) Dim feld (dimens+1,dimens+1) Global n Global zellehinzu.zellenhinzu Global zelleweg.zellenweg Local x,y For n=0 To (dimens/3)^2 ;<----spielt hierdran rum um die Dichte der Startzellen zu verändern! feld(Rand(1,dimens),Rand(1,dimens))=1 Next Repeat simulation zeichne Until KeyHit(1) Function simulation() Local x,y ; zuerst wird gecheckt, ob neue Zellen entstehen können. For x=0 To dimens For y=0 To dimens If feld(x,y)=0 Then n=0 If x-1>0 Then If feld(x-1,y)=1 Then n=n+1 ;links If x+1<dimens+1 Then If feld(x+1,y)=1 Then n=n+1 ;rechts If y-1>0 Then If feld(x,y-1)=1 Then n=n+1 ;oben If y+1<dimens+1 Then If feld(x,y+1)=1 Then n=n+1 ;unten If x-1>0 And y-1>0 Then If feld(x-1,y-1)=1 Then n=n+1 ;links oben If x+1<dimens+1 And y-1>0 Then If feld(x+1,y-1)=1 Then n=n+1 ;rechts oben If x-1>0 And y+1<dimens+1 Then If feld(x-1,y+1)=1 Then n=n+1 ;links unten If x+1<dimens+1 And y+1<dimens+1 Then If feld(x+1,y+1)=1 Then n=n+1 ;rechts unten If n=3 Then neuezelle(x,y) Else ;Entfernen armer einsamer Zellen n=0 If x-1>0 Then If feld(x-1,y)=1 Then n=n+1 ;links If x+1<dimens+1 Then If feld(x+1,y)=1 Then n=n+1 ;rechts If y-1>0 Then If feld(x,y-1)=1 Then n=n+1 ;oben If y+1<dimens+1 Then If feld(x,y+1)=1 Then n=n+1 ;unten If x-1>0 And y-1>0 Then If feld(x-1,y-1)=1 Then n=n+1 ;links oben If x+1<dimens+1 And y-1>0 Then If feld(x+1,y-1)=1 Then n=n+1 ;rechts oben If x-1>0 And y+1<dimens+1 Then If feld(x-1,y+1)=1 Then n=n+1 ;links unten If x+1<dimens+1 And y+1<dimens+1 Then If feld(x+1,y+1)=1 Then n=n+1 ;rechts unten If n<2 Or n>3 Then entfernezelle(x,y) End If Next Next For zelleweg=Each zellenweg feld(zelleweg\x,zelleweg\y)=0 Delete zelleweg Next For zellehinzu=Each zellenhinzu feld(zellehinzu\x,zellehinzu\y)=1 Delete zellehinzu Next End Function Function zeichne() Local x,y Cls ;Rect 1,1,700,700,0 For x=0 To dimens For y=0 To dimens If feld(x,y)=1 Then Oval x*700/dimens,y*700/dimens,700/dimens,700/dimens,1 Next Next Text 512,740,"John Conway's GAME OF LIFE, coded by Felix Müller aka. Wave",1 Flip End Function Function neuezelle(x,y) zellehinzu=New zellenhinzu zellehinzu\x=x zellehinzu\y=y End Function Function entfernezelle(x,y) zelleweg=New zellenweg zelleweg\x=x zelleweg\y=y End Function |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
- Zuletzt bearbeitet von Waveblue am Do, Sep 27, 2007 15:51, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nichts hochgradig neues, aber -trotz viel Freifläche im code- gut mit Types umgesetzt, es fehlt aber noch gezielte Benutzereingabe ![]() Nachdem ich mein conway soweit hatte, hab ich auch gleich mit Wireworld weitergemacht - auch sehr interessant, vor allem kann man mit einem genügend großen Aufbau Primzahlen berechnen lassen. ![]() |
||
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) |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat Folgendes geschrieben: Nichts hochgradig neues, aber -trotz viel Freifläche im code- gut mit Types umgesetzt, es fehlt aber noch gezielte Benutzereingabe
![]() Naja, hab aber im Code die Stellen mit Kommentaren markiert, an denen man Einstellungen vornehmen kann. Sieht man nur nicht so gut, wo ist eigentlich das Blitzbasic-Code Feld hin? |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
da isses doch
BlitzBasic: [AUSKLAPPEN] [ syntax="bb" ] [ /syntax ] lässt sich nur net ausklappen und von syntaxhighlighting ist auch nix mehr zu sehen |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
bb-Syntax wurde wegen massiver Performanceprobleme eingestampft. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schick..Schick...
Sowas hab ich auch mal gemacht...allerdings kann man bei mir S/W - Bitmaps für die Anfangsstellung auswählen...werde es nach Feierabend auch mal posten |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
joa sieht nicht schlecht aus.. vielleich kannst du es ja ausbauen und interaktiver machen.
Ich hatte auch mal einem Spiel des Lebesn gearbeitet.. bei mir sah das ganze so aus: http://phpprogger.ph.funpic.de/uploads/SDL.zip (ist in Blitzplus gemacht) gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mir ist grad ne Idee gekommen. Das ganze kann man doch auch 3 dimensional umsetzen! ![]() Dann braucht man zwar noch ein paar regeln mehr, aber das dürfte ja kein problem sein Naja... ich hab aber keine Zeit dafür. War nur ne Idee damit euch nicht mehr so langweilig ist ![]() PS: Sieht lustig aus =) |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
3D wär nicht schlecht, aber ich glaub das gibt Probleme vor allem mit der Kamera (wie stellst du die ein um einen Haufen zu beobachten der sich dauernd unkontrolliert verändert, wächst und sich selbst verdeckt)und der Performance, schließlich kostet ein Cube mehr Leistung als ein Oval.
Ich finds ja erstmal gut, das keiner was an meinem Codestil zu bemängeln hat^^ Bis auf die Freiflächen, aber die find ich persönlich notwendig zur üersichtlichkeit. |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stimmt. das ist natürlich ein Prob^^ aber wenn man sich alles im Wireframe modus ansehen würde, sähe das sicher geil aus xD | ||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Idee ist nicht unbedingt neu.
<<Link>> Bin mal gespannt, wer die erste Blitzumsetzung liefert. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group