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

Username:   Password: 
 RegisterRegister   
 Tetris
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
rollerdude




PostPosted: Thu Oct 28, 2004 4:31 pm   Post subject: Tetris

Ok
so here's my tetris code, so far, it's very basic and the peices still squash each other
[code]
%TETRIS
setscreen ("nocursor,noecho,graphics:500;500")
proc block (x, y, clr100 : int) %build peices
Draw.FillBox (x, y, x + 10, y + 10, clr100)
end block
proc straight (a, b, clr, pos : int)
if pos = 1 or pos = 3 then
block (a, b, clr)
block (a + 10, b, clr)
block (a + 20, b, clr)
block (a + 30, b, clr)
elsif pos = 2 or pos = 4 then
block (a, b, clr)
block (a, b + 10, clr)
block (a, b + 20, clr)
block (a, b + 30, clr)
end if
end straight
proc t (e, f, clr3, pos : int)
if pos = 3 then
block (e, f, clr3)
block (e, f + 10, clr3)
block (e, f + 20, clr3)
block (e + 10, f + 10, clr3)
elsif pos = 1 then
block (e + 10, f, clr3)
block (e, f + 10, clr3)
block (e + 10, f + 10, clr3)
block (e + 10, f + 20, clr3)
elsif pos = 2 then
block (e, f + 10, clr3)
block (e + 10, f, clr3)
block (e + 10, f + 10, clr3)
block (e + 20, f + 10, clr3)
elsif pos = 4 then
block (e, f, clr3)
block (e + 10, f, clr3)
block (e + 20, f, clr3)
block (e + 10, f + 10, clr3)
end if
end t
proc bl (m, n, clr4, pos : int)
if pos = 1 then
block (m, n, clr4)
block (m, n + 10, clr4)
block (m, n + 20, clr4)
block (m + 10, n + 20, clr4)
elsif pos = 3 then
block (m, n, clr4)
block (m + 10, n, clr4)
block (m + 10, n + 10, clr4)
block (m + 10, n + 20, clr4)
elsif pos = 2 then
block (m, n + 10, clr4)
block (m + 10, n + 10, clr4)
block (m + 20, n + 10, clr4)
block (m + 20, n, clr4)
elsif pos = 4 then
block (m, n, clr4)
block (m + 10, n, clr4)
block (m + 20, n, clr4)
block (m, n + 10, clr4)
end if
end bl
proc fl (u, v, clr11, pos : int)
if pos = 1 then
block (u + 10, v, clr11)
block (u + 10, v + 10, clr11)
block (u + 10, v + 20, clr11)
block (u, v + 20, clr11)
elsif pos = 3 then
block (u + 10, v, clr11)
block (u, v + 10, clr11)
block (u, v + 0, clr11)
block (u, v + 20, clr11)
elsif pos = 2 then
block (u, v, clr11)
block (u + 10, v, clr11)
block (u + 20, v, clr11)
block (u + 20, v + 10, clr11)
elsif pos = 4 then
block (u, v + 10, clr11)
block (u + 10, v + 10, clr11)
block (u + 20, v + 10, clr11)
block (u, v, clr11)
end if
end fl
proc bloc (aa, bb, clr15 : int)
block (aa, bb, clr15)
block (aa, bb + 10, clr15)
block (aa + 10, bb, clr15)
block (aa + 10, bb + 10, clr15)
end bloc
proc fz (cc, dd, clr16,pos : int)
if pos = 1 or pos = 3 then
block (cc, dd, clr16)
block (cc + 10, dd, clr16)
block (cc + 10, dd + 10, clr16)
block (cc + 20, dd + 10, clr16)
elsif pos = 2 or pos = 4 then
block (cc, dd + 10,clr16)
block (cc, dd + 20,clr16)
block (cc + 10, dd,clr16)
block (cc + 10, dd + 10,clr16)
end if
end fz
var switch : int := 1
var ch : string (1) := " "
var oldch : string (1) := "a"
var row, col : int
row := 500 div 2 - 25
col := 500 - 50
loop
var NextPeice : int := Rand.Int (1, 6)
%var NextPeice : int := 2
loop
switch := 1
row := 500 div 2 - 25
for decreasing i : 500 .. 0 by 10
ch := oldch
if hasch then
getch (ch)
end if
if switch = 5 then
switch := 1
end if
if ord (ch) = 32 then
switch += 1
end if
if ord (ch) = 205 then
row := row + 10
elsif ord (ch) = 203 then
row := row - 10
else
end if
if NextPeice = 1 then
bl (row, i, 1, switch)
delay (100)
bl (row, i, white, switch)
elsif NextPeice = 2 then
t (row, i, 2, switch)
delay (100)
t (row, i, white, switch)
elsif NextPeice = 3 then
straight (row, i, 3, switch)
delay (100)
straight (row, i, white, switch)
elsif NextPeice = 4 then
fl (row, i, 4, switch)
delay (100)
fl (row, i, white, switch)
elsif NextPeice = 5 then
bloc (row, i, 5)
delay (100)
bloc (row, i, white)
elsif NextPeice = 6 then
fz (row, i, 6, switch)
delay (100)
fz (row, i, white, switch)
end if
end for
if NextPeice = 1 then
bl (row, 0, 1, switch)
elsif NextPeice = 2 then
t (row, 0, 2, switch)
elsif NextPeice = 3 then
straight (row, 0, 3, switch)
elsif NextPeice = 4 then
fl (row, 0, 4, switch)
elsif NextPeice = 5 then
bloc (row, 0, 5)
elsif NextPeice = 6 then
fz (row, 0, 6, switch)
end if
exit
end loop
end loop
[/code]
tell me what you think
Sponsor
Sponsor
Sponsor
sponsor
rollerdude




PostPosted: Thu Oct 28, 2004 4:32 pm   Post subject: tetris

ok so, now that you tried, it, can you tell me how to make so the peices can't go off the screen
and how to make them not sqish each other?
Andy




PostPosted: Thu Oct 28, 2004 5:42 pm   Post subject: (No subject)

make walls on all four sides... and set a statement where if u cant go past a wall...

here is one that i made a while back...
http://compsci.ca/v2/viewtopic.php?p=7751#7751

yea that wasnt too good... te best way to do it is treat it as a matrix and just keep on multiplying the matrix by some multiplier
rollerdude




PostPosted: Thu Oct 28, 2004 5:48 pm   Post subject: (No subject)

thanx but, i'm using turing 3.1.1
so veiw.update and stuff like doesn't work

thanx anyway
Andy




PostPosted: Thu Oct 28, 2004 7:32 pm   Post subject: (No subject)

haha, that wasnt an invitation to copy my code.. it was so u can see what i did and make your own
gigaman




PostPosted: Thu Oct 28, 2004 9:24 pm   Post subject: (No subject)

I would reccomend that you use a random integer in an if statement so that each number calls a different piece. each piece a function
rollerdude




PostPosted: Fri Oct 29, 2004 12:35 pm   Post subject: tetris

Quote:

haha, that wasnt an invitation to copy my code.. it was so u can see what i did and make your own

either way, can't use Veiw.Update so i don't no what it does(nor key up arrow,ect.)
Tony




PostPosted: Fri Oct 29, 2004 4:42 pm   Post subject: Re: tetris

[quote="rollerdude"
either way, can't use Veiw.Update[/quote]
View.Update updates the view... you'd think the function name would imply its purpose Confused But that's just graphics stuff, don't worry about it.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
Sponsor
Sponsor
Sponsor
sponsor
coolmanjess




PostPosted: Thu Jun 02, 2005 10:58 am   Post subject: (No subject)

hey rollerdude, what does the switch statement mean.....and im trying to figure out a way to stack them...i found out how to stop them at the wall n stuff...heres the code

if ord (ch) = 205 and row < wall (i used 300)
then
row := row + 10
elsif ord (ch) = 203 and row > 0 and row < 300
then
row := row - 10

there ya go
wadeshaqdunk




PostPosted: Thu Jun 02, 2005 3:38 pm   Post subject: C'Mon

/*
How about some user input???
*/
if hasch then
getch (ch)
if ch = chr (203) then
Pic.Rotate (Pic.FileNew ("block.bmp), 1, 1, 90)
elsif ch = chr (205) then
%Just rotate the block the other way
%You actually have to have
coolmanjess




PostPosted: Fri Jun 03, 2005 9:35 am   Post subject: (No subject)

ya thats a pretty good idea too....alot easier definetly, but how would u get them to stack....like if one block is full then dont drop to bottom...but what would be the code....and for getting rid of the lines after their filled up....i have a couple of classes left before my isu is done and thats all i need to finish up
coolmanjess




PostPosted: Fri Jun 03, 2005 9:36 am   Post subject: (No subject)

ya thats a pretty good idea too....alot easier definetly, but how would u get them to stack....like if one block is full then dont drop to bottom...but what would be the code....and for getting rid of the lines after their filled up....i have a couple of classes left before my isu is done and thats all i need to finish up
coolmanjess




PostPosted: Fri Jun 03, 2005 9:37 am   Post subject: (No subject)

ya thats a pretty good idea too....alot easier definetly, but how would u get them to stack....like if one block is full then dont drop to bottom...but what would be the code....and for getting rid of the lines after their filled up....i have a couple of classes left before my isu is done and thats all i need to finish up
coolmanjess




PostPosted: Fri Jun 03, 2005 10:25 am   Post subject: (No subject)

sorry about that, spam = accident
lzbravo




PostPosted: Fri Jun 10, 2005 7:02 pm   Post subject: (No subject)

the game isn't bad but you should put instructions and also slow the gmae down put more detail
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  [ 15 Posts ]
Jump to:   


Style:  
Search: