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

Username:   Password: 
 RegisterRegister   
 Worm Class!!!
Index -> Programming, Turing -> Turing Submissions
View previous topic Printable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
zylum




PostPosted: Sun Jan 16, 2005 5:34 pm   Post subject: Worm Class!!!

this is a turing version of the worm thing in my sig...

code:
class WORMCLASS
    export INITIALIZE, MOVEWORM, DRAWWORM

    type WORMDATA :
        record
            _X : real
            _Y : real
        end record

    var WORM : flexible array 1 .. 0 of WORMDATA
    var ANG : real
    var SPD : real
    var CLR : int
    var RAD : int
    var ANGSPD : real

    proc INITIALIZE (x, y, c, r, l : int, a, s, as : real)
        var tx : real := x
        var ty : real := y
        new WORM, l
        ANG := a
        SPD := s
        CLR := c
        RAD := r
        ANGSPD := as
        if tx < 0 or tx > maxx or ty < 0 or ty > maxy then
            tx := Rand.Int (0, maxx) / 2 + maxx / 4
            ty := Rand.Int (0, maxy) / 2 + maxy / 4
        end if
        for i : 1 .. l
            WORM (i)._X := tx
            WORM (i)._Y := ty
        end for
    end INITIALIZE

    proc MOVEWORM
        ANG := (ANG + Rand.Real * ANGSPD * 2 - ANGSPD) mod 360
        WORM (1)._X += cos (ANG) * SPD
        WORM (1)._Y += sin (ANG) * SPD

        if WORM (1)._X < 0 then
            WORM (1)._X := 0
        elsif WORM (1)._X > maxx then
            WORM (1)._X := maxx
        end if
        if WORM (1)._Y < 0 then
            WORM (1)._Y := 0
        elsif WORM (1)._Y > maxy then
            WORM (1)._Y := maxy
        end if

        for i : 2 .. upper (WORM)
            WORM (i)._X -= (WORM (i)._X - WORM (i - 1)._X) / 2
            WORM (i)._Y -= (WORM (i)._Y - WORM (i - 1)._Y) / 2
        end for
    end MOVEWORM

    proc DRAWWORM
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD + 3, RAD + 3, 7)
        end for
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD, RAD, CLR)
        end for
    end DRAWWORM
end WORMCLASS

setscreen ("offscreenonly, graphics:300;300, nobuttonbar")

var worm : array 1 .. 4 of ^WORMCLASS

for i : 1 .. upper (worm)
    new WORMCLASS, worm (i)
    worm (i) -> INITIALIZE (-1, -1, Rand.Int (80, 103), Rand.Int (2, 7), Rand.Int (20, 150), Rand.Int (1, 360), 1, Rand.Real / 2 + 0.5)
end for

loop
    for i : 1 .. upper (worm)
        worm (i) -> MOVEWORM
        worm (i) -> DRAWWORM
    end for
    View.Update
    delay (10)
    cls
end loop
Sponsor
Sponsor
Sponsor
sponsor
Delos




PostPosted: Sun Jan 16, 2005 6:35 pm   Post subject: (No subject)

Zylum strikes again.

Dude...what can I say, other than You are most definitely You.
Cervantes




PostPosted: Sun Jan 16, 2005 6:58 pm   Post subject: (No subject)

*/me is shocked*
Thanks for the code Zylum! Another great program to add to my "Zylum" folder. Smile
+40 BITS
zylum




PostPosted: Sun Jan 16, 2005 10:52 pm   Post subject: (No subject)

thanks for the comments Wink

people keep asking me how i did my sig so i thought id post the source in turing.
[Gandalf]




PostPosted: Sun Jan 16, 2005 11:54 pm   Post subject: (No subject)

Cool! *too bad I can't see your sig Confused *
The worms look really... Lifelike Smile
TheZsterBunny




PostPosted: Mon Jan 17, 2005 4:16 am   Post subject: (No subject)

hey, thanks

^_^


-Z

--edit--
...still don't get it tho'

--edit--
lol. noticed you still followed the actionscript naming conventions.

i'mma try to redo it in actionscript.

--edit--
don't know enought actionscript.

i'mma do it in java

--edit--
*sigh*
almost there, but can't quite fix it.

--edit--
couldn't sleep this eve. here's a modification on your worms.
code:

% Glow WORMS
class WORMCLASS
    export INITIALIZE, MOVEWORM, DRAWWORM, LONGWORM, SHORTWORM, COLORWORM, THINWORM, FATWORM

    type WORMDATA :
        record
            _X : real
            _Y : real
        end record

    var WORM : flexible array 1 .. 0 of WORMDATA
    var ANG : real
    var SPD : real
    var CLR : int
    var RAD : int
    var ANGSPD : real

    proc INITIALIZE (x, y, c, r, l : int, a, s, as : real)
        var tx : real := x
        var ty : real := y
        new WORM, l
        ANG := a
        SPD := s
        CLR := c
        RAD := r
        ANGSPD := as
        if tx < 0 or tx > maxx or ty < 0 or ty > maxy then
            tx := Rand.Int (0, maxx) / 2 + maxx / 4
            ty := Rand.Int (0, maxy) / 2 + maxy / 4
        end if
        for i : 1 .. l
            WORM (i)._X := tx
            WORM (i)._Y := ty
        end for
    end INITIALIZE

    proc MOVEWORM
        ANG := (ANG + Rand.Real * ANGSPD * 2 - ANGSPD) mod 360
        WORM (1)._X += cos (ANG) * SPD
        WORM (1)._Y += sin (ANG) * SPD

        if WORM (1)._X < RAD + 3 then
            WORM (1)._X := RAD + 3
        elsif WORM (1)._X > maxx - (RAD + 3) then
            WORM (1)._X := maxx - (RAD + 3)
        end if
        if WORM (1)._Y < RAD + 3 then
            WORM (1)._Y := RAD + 3
        elsif WORM (1)._Y > maxy - (RAD + 3) then
            WORM (1)._Y := maxy - (RAD + 3)
        end if

        for i : 2 .. upper (WORM)
            WORM (i)._X -= (WORM (i)._X - WORM (i - 1)._X) / 2
            WORM (i)._Y -= (WORM (i)._Y - WORM (i - 1)._Y) / 2
        end for
    end MOVEWORM

    proc DRAWWORM
        var r, g, b : real
        RGB.GetColor (CLR, r, g, b)
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD + 3, RAD + 3, RGB.AddColor (0.1 * r, 0.1 * g, 0.1 * b))
        end for
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD + 2, RAD + 2, RGB.AddColor (0.3 * r, 0.3 * g, 0.3 * b))
        end for
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD + 1, RAD + 1, RGB.AddColor (0.5 * r, 0.5 * g, 0.5 * b))
        end for
        for i : 1 .. upper (WORM)
            drawfilloval (round (WORM (i)._X), round (WORM (i)._Y), RAD, RAD, RGB.AddColor (0.9 * r, 0.9 * g, 0.9 * b))
        end for
        for i : 1 .. upper (WORM)
            drawdot (round (WORM (i)._X), round (WORM (i)._Y), CLR)
        end for
    end DRAWWORM

    proc LONGWORM
        new WORM, upper (WORM) + 1
        WORM (upper (WORM))._X := WORM (upper (WORM) - 1)._X;
        WORM (upper (WORM))._Y := WORM (upper (WORM) - 1)._Y;
    end LONGWORM

    proc SHORTWORM
        new WORM, upper (WORM) - 1
    end SHORTWORM

    proc COLORWORM
        CLR := Rand.Int (80, 103)
    end COLORWORM

    proc THINWORM
        if RAD > 4 then
            RAD -= 1
        end if
    end THINWORM

    proc FATWORM
        if RAD < 13 then
            RAD += 1
        end if
    end FATWORM
end WORMCLASS

setscreen ("offscreenonly, graphics:300;300, nobuttonbar")
colorback (black)
cls
var worm : array 1 .. 5 of ^WORMCLASS

for i : 1 .. upper (worm)
    new WORMCLASS, worm (i)
    worm (i) -> INITIALIZE (-1, -1, Rand.Int (80, 103), Rand.Int (2, 7), Rand.Int (20, 150), Rand.Int (1, 360), 1, Rand.Real / 2 + 0.5)
end for

loop
    for i : 1 .. upper (worm)
        worm (i) -> MOVEWORM
        worm (i) -> DRAWWORM
        if Rand.Int (0, 10) = 9 then
            worm (i) -> LONGWORM
        end if
        if Rand.Int (0, 10) = 2 then
            worm (i) -> SHORTWORM
        end if
        if Rand.Int (0, 50) = 23 then
            worm (i) -> COLORWORM
        end if
        if Rand.Int (0, 30) = 17 then
            worm (i) -> FATWORM
        end if
        if Rand.Int (0, 30) = 12 then
            worm (i) -> THINWORM
        end if
    end for
    drawbox (0, 0, maxx, maxy, 7)
    View.Update
    delay (10)
    cls
end loop




WORMDATA.java
 Description:

Download
 Filename:  WORMDATA.java
 Filesize:  179 Bytes
 Downloaded:  137 Time(s)


WORM.java
 Description:

Download
 Filename:  WORM.java
 Filesize:  1.79 KB
 Downloaded:  153 Time(s)


MAIN.java
 Description:

Download
 Filename:  MAIN.java
 Filesize:  1.11 KB
 Downloaded:  137 Time(s)

apomb




PostPosted: Mon Jan 17, 2005 3:51 pm   Post subject: (No subject)

LOL nice modification Zster! ... maybe you could submit your java programs in the java section so people who do java and not turing can see it too! Very Happy gj tho, i dont know how you keep cranking out these programs tho zylum! its awsome
Amreen




PostPosted: Sat Jan 22, 2005 12:50 pm   Post subject: (No subject)

really kool...lolz...nice job! Very Happy u guyz really love turing! Shocked
Sponsor
Sponsor
Sponsor
sponsor
ste_louis26




PostPosted: Fri Jan 28, 2005 4:28 pm   Post subject: (No subject)

awesome program!!! Very Happy like the worms
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  [ 9 Posts ]
Jump to:   


Style:  
Search: