game of life von ??? |
eine weitere version des programms: [code:1:5fc67a82d3] Const wd=1024 Const ht=768 Graphics wd,ht,16,1 SetBuffer BackBuffer() Global x0=wd/4 Global y0=ht/4 Dim feld1(x0-1,y0-1) Dim feld2(x0-1,y0-1) Global b = 0 Global mode = 0 Function edit() cx=MouseX() cy=MouseY() i1=cx*x0/wd i2=cy*y0/ht mdownl=MouseDown(1) mdownr=MouseDown(2) Color 0,0,255 Rect i1*wd/x0,i2*ht/y0,wd/x0,ht/y0 Color 255,0,0 Line cx-2,cy,cx+3,cy Line cx,cy-2,cx,cy+3 If mdownl Then If b = 0 Then feld1(i1,i2)=1 Else feld2(i1,i2)=1 End If If mdownr Then If b = 0 Then feld1(i1,i2)=0 Else feld2(i1,i2)=0 End If End Function Function draw() Color 0,255,0 For i2=0 To y0-1 For i1=0 To x0-1 If b = 0 Then p = feld1(i1,i2) Else p=feld2(i1,i2) If p = 1 Then Rect i1*wd/x0,i2*ht/y0,wd/x0,ht/y0 Next Next End Function Function count(i1,i2) c=0 If (i1-1)>=0 And (i2-1)>=0 Then If b = 0 Then c = c + feld1(i1-1,i2-1) If b = 1 Then c = c + feld2(i1-1,i2-1) End If If (i2-1) >= 0 Then If b = 0 Then c = c + feld1(i1,i2-1) If b = 1 Then c = c + feld2(i1,i2-1) End If If (i1+1)<=x0-1 And (i2-1)>=0 Then If b = 0 Then c = c + feld1(i1+1,i2-1) If b = 1 Then c = c + feld2(i1+1,i2-1) End If If (i1+1)<=x0-1 Then If b = 0 Then c = c + feld1(i1+1,i2) If b = 1 Then c = c + feld2(i1+1,i2) End If If (i1+1)<=x0-1 And (i2+1)<=y0-1 Then If b = 0 Then c = c + feld1(i1+1,i2+1) If b = 1 Then c = c + feld2(i1+1,i2+1) End If If (i2+1)<=y0-1 Then If b = 0 Then c = c + feld1(i1,i2+1) If b = 1 Then c = c + feld2(i1,i2+1) End If If (i1-1)>=0 And (i2+1)<=y0-1 Then If b = 0 Then c = c + feld1(i1-1,i2+1) If b = 1 Then c = c + feld2(i1-1,i2+1) End If If (i1-1)>=0 Then If b = 0 Then c = c + feld1(i1-1,i2) If b = 1 Then c = c + feld2(i1-1,i2) End If Return c End Function Function reset() For i2=0 To y0-1 For i1=0 To x0-1 feld1(i1,i2)=0 feld2(i1,i2)=0 Next Next End Function While Not KeyHit(1) draw() If KeyHit(57) Then mode = 1 - mode If KeyHit(60) Then reset() mode=0 End If If mode = 0 Then edit() If mode = 1 Then For i2 = 0 To y0-1 For i1 = 0 To x0-1 cc=count(i1,i2) If cc=3 Then If b = 0 Then feld2(i1,i2)=1 Else feld1(i1,i2)=1 End If If cc=2 Then If b = 0 Then feld2(i1,i2)=feld1(i1,i2) Else feld1(i1,i2)=feld2(i1,i2) End If If cc<2 Or cc>3 Then If b = 0 Then feld2(i1,i2)=0 Else feld1(i1,i2)=0 End If Next Next b=1-b End If Color 128,128,128 Text 1,1,"Space - start/stop" Text 1,15, "F2 - reset" Text 1,30, "ESC - exit" Flip Cls Wend [/code:1:5fc67a82d3] |
von ??? |
ich will ja nicht sagen das das nicht geht, aber wieso hat das so wenig fps? [url=http://www.blitzforum.de/viewtopic.php?t=283]guck dier mal Robs an das ist "etwas" schneller[/url] (oder war das beabsichtigt?) |
von ??? |
hmm, bei mir geht überhaupt nix, erst recht nix wenn ich die punkte gesetzt hab und auf start mache.. ich denk ma 10 fp!m! |
von ??? |
ebenso! Wird wohl 9 Monate dauern bis Leben entsteht. ;-) ciao, |
von |
Ich kapier garnicht, was dabei rauskommen soll. Bei mir zeichnet es grüne Punkte und mehr nicht. Welcher Effekt soll denn dabei rauskommen?? Mfg Skateboarder |
von ??? |
Hi! zeichne mal eine wagerechte gerade linie hinein, und drücke anschließend auf spacetaste. mfg olli |
von ??? |
keine sorge, ich versteh das ding auch net..... |
von ??? |
Schön, jetzt verändert sich was. Aber den Zweck darin kapier ich noch immer nicht!!!!! (Wenigstens bin ich nicht der einzige :D ) |
von ??? |
"conways game of life" das gabs auch mal hier im Forum. Oder gibts das noch? Naja, die die noch nie davon gehört haben sollten einfach mal danach googeln, es gibt eine grosse community dazu. Es ist vergleichbar mit z.B. einer Reaktion zwischen Atomen. Ein Vergleich, wie Leben entsteht. Leben entsteht aus bestimmten Gesetzen und es ist meist Zufall, dass an bestimmten Stellen Kettenraktionen entstehen. So ähnlich wie in Conways Game of Life. Für ein Spiel kann man es gut für symmetrische Pixeleffekte verwenden. |