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

Username:   Password: 
 RegisterRegister   
 Help with snake game and corrections
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
vagyb




PostPosted: Fri Apr 30, 2004 9:24 am   Post subject: Help with snake game and corrections

hey i just started using turing and i'm making a very sad attempt at making a snake game. i started making it today and i got to the part of controlling the snake (moving it around). I would ask someone to be kind enough to help me plz make the controls more normal. Rite now you have to press up/down/left/rite arrow keys to move the snake, but i'd like someone to tell me how to make it go up automatically, and when i press left it goes left automatically.
any suggestions are welcome (lol i need to fix up the snake too)

code:

import GUI
setscreen ("graphics:400;400")

var font : int
var font2 : int
font := Font.New ("Times new roman:28")
colorback (42)
cls
drawfillbox (149, 214, 232, 178, 64)
Font.Draw ("SNAKE", 130, 220, font, blue)


var quitButton : int := GUI.CreateButton (155, 185, 0, "START", GUI.Quit)
loop
    exit when GUI.ProcessEvent
end loop



cls
locate (12, 24)
put "3"
delay (1000)
locate (12, 24)
put "2"
delay (1000)
locate (12, 24)
put "1"
delay (1000)
locate (12, 24)
put "START!!"
delay (500)
cls


setscreen ("graphics:400;400")

var x, y : int
x := 200
y := 210

var chars : array char of boolean
loop
    Input.KeyDown (chars)

    if chars (KEY_UP_ARROW) then
        y := y + 1
    end if
    if chars (KEY_RIGHT_ARROW) then
        x := x + 1
    end if
    if chars (KEY_LEFT_ARROW) then
        x := x - 1
    end if
    if chars (KEY_DOWN_ARROW) then
        y := y - 1
    end if

    drawfillbox (x, y, x + 15, y + 40, blue)
    delay (10)
    cls

end loop
Sponsor
Sponsor
Sponsor
sponsor
Delos




PostPosted: Fri Apr 30, 2004 9:27 am   Post subject: (No subject)

Wrong forum.

Nicely ask a mod to move this to the [Help] section.

Thank you.
Tony




PostPosted: Fri Apr 30, 2004 10:16 am   Post subject: (No subject)

what you do is you have a memory variable to keep track of the last input and if there're no keys pressed then you move in the direction of the memory variable
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
vagyb




PostPosted: Fri Apr 30, 2004 10:57 am   Post subject: (No subject)

oh sorry, can u move it to that section plz. also this is the first time im using turing so i didn't understand most of the things u said tony. so could u plz try to explain in more simpler words or give like an example of the code or a code?
thx
vagyb




PostPosted: Fri Apr 30, 2004 11:55 am   Post subject: (No subject)

okay i finally figured out how to use whatdotcolor Very Happy (i think, so here is the new code). The problem is that only the bottom part of the snake stops from going over the boarder. so if someone could run the code and tell me how i could improve it i would appreicate it alot.

(and again this is my first program i made, i just started learning turing a week or less ago so try using simple words lol :S)

code:

setscreen ("graphics:400;400")
var x, y : int
x := 100
y := 100

locate (12, 24)
put "3"
delay (1000)
locate (12, 24)
put "2"
delay (1000)
locate (12, 24)
put "1"
delay (1000)
locate (12, 24)
put "START!!"
delay (500)
cls
var chars : array char of boolean
setscreen ("graphics:400;400,offscreenonly")
loop
    drawfillbox (0, 0, maxx, maxy, black)
    drawfillbox (5, 5, maxx - 5, maxy - 5, 0)

    Input.KeyDown (chars)

    if chars (KEY_UP_ARROW) then
        if whatdotcolor (x, y + 13) = 0
                then
            y := y + 5
        end if
    end if
    if chars (KEY_RIGHT_ARROW) then
        if whatdotcolor (x + 13 , y) = 0 then
            x := x + 5
        end if
    end if
    if chars (KEY_LEFT_ARROW) then
        if whatdotcolor (x - 13, y) = 0 then
            x := x - 5
        end if
    end if
    if chars (KEY_DOWN_ARROW) then
        if whatdotcolor (x, y - 13) = 0 then
            y := y - 5
        end if
    end if

       drawfillbox (x, y, x + 15, y + 60, blue)
    View.Update
     delay (10)
    cls
   
end loop


Tony




PostPosted: Fri Apr 30, 2004 3:47 pm   Post subject: (No subject)

dont use delays like that
don't use whatdotcolor

take a look at zylum's snake
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
vagyb




PostPosted: Sat May 01, 2004 3:53 am   Post subject: (No subject)

oh i c :S lol aight thx for advice
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 7 Posts ]
Jump to:   


Style:  
Search: