Computer Science Canada

New to turing requesting assistance

Author:  TuringScrubLord [ Thu Oct 30, 2014 12:50 pm ]
Post subject:  New to turing requesting assistance

So I am new to turing and I'm challenging myself to make a tron lightcycle styled game. Here's what I have so far...

%Variables

var x, y : int := 10
var x2, y2 : int := 490
var char1 : array char of boolean

%Sets window size

View.Set ("graphics: 500;500")

%Starts the game
loop

%move with arrow keys
Input.KeyDown (char1)
if char1 (KEY_UP_ARROW) then
y := y + 10
elsif char1 (KEY_RIGHT_ARROW) then
x := x + 10
elsif char1 (KEY_LEFT_ARROW) then
x := x - 10
elsif char1 (KEY_DOWN_ARROW) then
y := y - 10
end if
%move with "w" "a" "s" "d"
if char1 ('w') then
y2 := y2 + 10
elsif char1 ('d') then
x2 := x2 + 10
elsif char1 ('a') then
x2 := x2 - 10
elsif char1 ('s') then
y2 := y2 - 10
end if

%set boundaries
if x < 0 then
x := 0
elsif x > 500 then
x := 500
elsif y < 0 then
y := 0
elsif y > 500 then
y := 500
end if

if x2 < 0 then
x2 := 0
elsif x2 > 500 then
x2 := 500
elsif y2 < 0 then
y2 := 0
elsif y2 > 500 then
y2 := 500
end if

%the thing you move
Draw.FillOval (x, y, 5, 5, red)
Draw.FillOval (x2, y2, 5, 5, blue)
delay (50)

%Collision Detection

if x = x2 and y = y2 then
exit
elsif x = 0 or x = 500 then
exit
elsif y = 0 or y = 500 then
exit
elsif x2 = 0 or x2 = 500 then
exit
elsif y2 = 0 or y2 = 500 then
exit
end if

end loop

If you play it, it does run. There are two things I would like to do:
1) Make it so the characters move on their own in a direction by themselves until direction is changed by user input
2) Make it so if the characters hit any dot/wall created by either character, the game ends

I would love for this game to work. Making something like this would boost my programming confidence.

So, how can I make those two things possible?

Author:  Insectoid [ Thu Oct 30, 2014 4:30 pm ]
Post subject:  RE:New to turing requesting assistance

Can you make your characters move in one direction, and one direction only, no matter what (don't worry about key presses or changing direction yet). This should be trivial. Just write some code that makes something move infinitely to the right and off the screen.

That was easy, you were just adding 1 or 5 or 10 to the X value (depending on how fast you want to move). Wanna make it go to the right? Just subtract from the X value.

That 1 or 5 or 10 that you were adding to X is an integer. You know what's nice about integers? You can make a variable out of them! Make an int named 'direction' or something and set it to 1 or 5 or 10 or whatever, and add that variable to X instead of a straight number. Now you can write some code that uses your arrow keys to change the direction variable, and we're done! Remember, if x is positive, your character moves right. If it's negative, your character moves left. Easy!

Doing it for the Y axis is just as easy, but you can figure that out yourself.


: