Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 [FP]game of life
Index -> Programming, Turing -> Turing Submissions
View previous topic Printable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
alikhan




PostPosted: 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

Sponsor
Sponsor
Sponsor
sponsor
Display posts from previous:   
   Index -> Programming, Turing -> Turing Submissions
View previous topic Tell A FriendPrintable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 1 Posts ]
Jump to:   


Style:  
Search: