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

Username:   Password: 
 RegisterRegister   
 Making an Etch-A-Sketch?
Index -> Programming, Turing -> Turing Help
Goto page Previous  1, 2
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
vdemons




PostPosted: Sun May 15, 2011 4:01 pm   Post subject: RE:Making an Etch-A-Sketch?

Sorry I tried I just don`t know how to use them, I tried and failed! Sad
Sponsor
Sponsor
Sponsor
sponsor
Raknarg




PostPosted: Sun May 15, 2011 4:05 pm   Post subject: RE:Making an Etch-A-Sketch?

Show what you have so far.
vdemons




PostPosted: Sun May 15, 2011 4:12 pm   Post subject: Re: Making an Etch-A-Sketch?

This is it, (I had more but I deleted it when it didn't work) btw, if you add cls after view.update it moves without lines, but I don't know how to merge the two since cls clears the entire screen!



View.Set ("graphics")
var x, y, radius : int
x := 200
y := 100
radius := 5



var chars : array char of boolean
View.Set ("offscreenonly")
loop
Input.KeyDown (chars)
if chars (KEY_UP_ARROW) then
y += 1
elsif chars (KEY_RIGHT_ARROW) then
x += 1
elsif chars (KEY_LEFT_ARROW) then
x -= 1
elsif chars (KEY_DOWN_ARROW) then
y -= 1
end if
if y + 12 >= maxy then
y -= 1
end if
if y - 12 <= 0 then
y += 1
end if
if x + 12 >= maxx then
x -= 1
end if
if x - 12 <= 0 then
x += 1
end if
Draw.FillOval (x, y, radius, radius, red)
Time.Delay (5)
View.Update
end loop
Raknarg




PostPosted: Sun May 15, 2011 4:22 pm   Post subject: RE:Making an Etch-A-Sketch?

If I were you, I would (as I said before) use an array to keep track of the dot positions. You don't have to use a flexible array in reality, but I think you should have at least an array.
Tony




PostPosted: Sun May 15, 2011 4:22 pm   Post subject: Re: Making an Etch-A-Sketch?

vdemons @ Sun May 15, 2011 4:12 pm wrote:
I had more but I deleted it when it didn't work

That was the interesting part. The rest is mostly what you've had before.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
vdemons




PostPosted: Sun May 15, 2011 4:52 pm   Post subject: RE:Making an Etch-A-Sketch?

Well I'm trying my best.
vdemons




PostPosted: Sun May 15, 2011 4:54 pm   Post subject: RE:Making an Etch-A-Sketch?

I used the picID but that didn't work so I deleted it, but @Raknarg how would I use an array in this situation i haven't seen and array used like you described before.
Raknarg




PostPosted: Sun May 15, 2011 5:05 pm   Post subject: RE:Making an Etch-A-Sketch?

if (a key is pressed) then
move x or y
oldx (number) or oldy (number) = x or y
end if

for i : 1 .. upper (array)
Draw.FillOval (oldx (i), oldy (i), 5, red)
end for

It's a pretty bad representation but that's what I had in mind if you understand it.
Sponsor
Sponsor
Sponsor
sponsor
klutzedufus




PostPosted: Sun May 15, 2011 9:01 pm   Post subject: RE:Making an Etch-A-Sketch?

I think that you should use multiple if statements instead of elsifs for the keys pressed down, so that you can move diagonally as well.
HRI




PostPosted: Mon May 16, 2011 9:57 am   Post subject: Re: Making an Etch-A-Sketch?

drawfillbox (x-radius,y-radius,x+radius,y+radius) will clear a rectangle the size of the circle from the screen.

Also, surprised no one mentioned this:
code:
[syntax="turing"]post code here[/syntax]


A bit of cleanup:
Turing:

View.Set ("graphics,offscreenonly") %setscreen ("graphics,offscreenonly")
var x, y : int
x := 200
y := 100

const RADIUS : int := 5 % constants should be uppercase, radius does not change



var chars : array char of boolean

loop
    Input.KeyDown (chars)
   
    if chars (KEY_UP_ARROW) then
        y := min (maxy - 12, y + 1) % easy way of making sure it doesn't go too far up
    end if % as said, allows you to move more than one direction at once

    if chars (KEY_RIGHT_ARROW) then
        x := min (maxx - 12, x + 1)
    end if

    if chars (KEY_LEFT_ARROW) then
        x := max (12, x - 1)
    end if

    if chars (KEY_DOWN_ARROW) then
        y := max (12, y - 1)
    end if

    % replaced check with walls above
 
    Draw.FillOval (x, y, RADIUS, RADIUS, red) % drawfilloval (x, y, RADIUS, RADIUS, red) %brightred could be nicer
    View.UpdateArea (0, 0, maxx, maxy) % faster than View.Update, updates from the lower left corner to upper right corner
    Time.Delay (5) %delay (5)
    drawfillbox (x - RADIUS, y - RADIUS, x + RADIUS, y + RADIUS, white) % clears circle
end loop


I'm not totally sure what exactly the goal is, but I hope this helps somewhat.
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 2 of 2  [ 25 Posts ]
Goto page Previous  1, 2
Jump to:   


Style:  
Search: