Computer Science Canada Programming C, C++, Java, PHP, Ruby, Turing, VB   Username:   Password: Wiki   Blog   Search   Turing   Chat Room  Members
[FP]game of life
Author Message
alikhan

Posted: Tue May 11, 2004 8:19 pm   Post subject: [FP]game of life

pretty cool check it out Tell me if u like it plz.

u left click to create red boxes and u right click to see them make patterns based on how u placed them. there are some rules so be sure to make sure to make the red boxes close together but not too close together
 code: Mouse.ButtonChoose ("multibutton") setscreen ("offscreenonly") var box : array 0 .. 65, 0 .. 41 of int var dead : array 0 .. 65, 0 .. 41 of int var mx, my, mb, count, colr, live, turns : int := 0 var window : int for a : 0 .. 65     for b : 0 .. 41         box (a, b) := 0         dead (a, b) := 0     end for end for process counter     window := Window.Open ("position:100,100,graphics:220;220")     loop         for c : 1 .. 64             for d : 1 .. 40                 if box (c, d) = 1 then                     live := live + 1                 end if             end for         end for         locate (1, 1)         put live         put turns         live := 0     end loop end counter for a : 0 .. maxx by 10     drawline (a, maxy, a, 0, black) end for for a : 0 .. maxy by 10     drawline (maxx, a, 0, a, black) end for View.Update fork counter loop     mousewhere (mx, my, mb)     if mb = 1 then         drawfill (mx, my, brightred, black)         box (mx div 10 + 1, my div 10 + 1) := 1         dead (mx div 10 + 1, my div 10 + 1) := 1         View.Update     end if     exit when mb = 100 end loop loop     for a : 1 .. 64         for b : 1 .. 40             if box (a + 1, b + 1) = 1 then                 count := count + 1             end if             if box (a + 1, b) = 1 then                 count := count + 1             end if             if box (a + 1, b - 1) = 1 then                 count := count + 1             end if             if box (a - 1, b + 1) = 1 then                 count := count + 1             end if             if box (a - 1, b - 1) = 1 then                 count := count + 1             end if             if box (a - 1, b) = 1 then                 count := count + 1             end if             if box (a, b + 1) = 1 then                 count := count + 1             end if             if box (a, b - 1) = 1 then                 count := count + 1             end if             if count = 3 then                 dead (a, b) := 1             end if             if count > 3 or count < 2 then                 dead (a, b) := 0             end if             count := 0         end for     end for     for a : 1 .. 64         for b : 1 .. 40             if dead (a, b) = 1 and box (a, b) = 0 then                 box (a, b) := 1                 drawfill (a * 10 - 5, b * 10 - 5, brightred, black)             elsif dead (a, b) = 0 and box (a, b) = 1 then                 box (a, b) := 0                 drawfill (a * 10 - 5, b * 10 - 5, white, black)             end if         end for     end for     turns := turns + 1     View.Update     delay (300) end loop