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

Username:   Password: 
 RegisterRegister   
 BLOCKSIES GAME!!! please check it out!!!
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Amreen




PostPosted: Wed Jan 12, 2005 9:10 am   Post subject: BLOCKSIES GAME!!! please check it out!!!

Hey Everyone!! listen, im creating a blocksies game and all it is, is the replica of PONG...the object of this game is to move the blocker at the bottom of the screen and make sure it catches the asterisks as they fall from random places on the screen. I want to make the asterisks bounce off the blocker at the bottom of the screen. Please help me out and post ur comments, advice and insturctions on how i can make my program work right. I really do appreciate it and hope that this program is a success. THANX for all who do post!!!! Very Happy


code:

%This program is what the BLOCKSIES game is going to look like
%as this is the structure of the game.

const BLOCKER:=
    chr(220)+chr(220)+chr(220)+chr(220)+chr(220)
const WAIT:=125
const NUMBER_OF_ASTERISKS:=10
const LEFT_ARROW:= chr(203)
const RIGHT_ARROW:= chr(205)
const HOME:= chr(199)
const END:= chr(207)
const BLOCKER_ROW:=24
const BLANK_BLOCKER:= "     " % 5 blank spaces

var Key:string (1)
var Asterisks_Column, Start, Finish:int
var Blocker_Column:= 38
var Asterisks_Row:=2

setscreen ("noecho, nocursor")
% We set the screen because we want to make sure that the user's
% keystrokes and not displayed and also to hide the cursor
% while the game is being played. Also, we set up the global vaiables
% and constants that will be needed in this program.

procedure Move_Blocker

    %We wait for the user to press a key.
    getch (Key)
   
    %We erase a previously positioned blocker.
    locate (BLOCKER_ROW, Blocker_Column)
    put BLANK_BLOCKER
   
    %We adjust the position of the blocker according
    %to the direction specified by the user.
   
    if Key = RIGHT_ARROW then
        Blocker_Column:= Blocker_Column + 2
    elsif Key = LEFT_ARROW then
        Blocker_Column :=Blocker_Column - 2
    elsif Key = HOME then
        Blocker_Column:= 2
    elsif Key = END then
        Blocker_Column:= 75
    end if
   
    %We do not allow the blocker to be moved
    %beyond the borders of the screen.
   
    if Blocker_Column > 75 then
       Blocker_Column:=75
    elsif Blocker_Column < 2 then
       Blocker_Column:=2
    end if

    %The blocker is displayed on the screen.
   
    locate (BLOCKER_ROW, Blocker_Column)
    put BLOCKER
   
    end Move_Blocker

%This will randomly determine the column that each
%asterisk is going to fall from.
randomize

%Clock keeps track of the time (in milliseconds) that
%Turing has been in use.
clock(Start)

for Asterisk:1..NUMBER_OF_ASTERISKS

locate (1,1)
put "Asterisk #",Asterisk


randint (Asterisks_Column, 2, 79)

loop
    locate (Asterisks_Row, Asterisks_Column)
    put "*"..
    delay (WAIT)

    if hasch then
        Move_Blocker
    end if
   
    locate (Asterisks_Row, Asterisks_Column)
    put " "
   
    Asterisks_Row:=Asterisks_Row + 1
   
    if Asterisks_Row > 24 then
        Asterisks_Row:= 2
    end if
   
    if Asterisks_Column >= Blocker_Column and
        Asterisks_Column <= Blocker_Column + 4 and
        Asterisks_Row = 24 then
        sound (100, 100)
        exit
    elsif Asterisks_Row = 24 and
    (Asterisks_Column < Blocker_Column or
     Asterisks_Column > Blocker_Column + 4) then
    sound (100,100)
    end if
   
    end loop
end for

clock (Finish)

cls
put "TIME: ", (Finish - Start) / 1000, " Seconds."
Sponsor
Sponsor
Sponsor
sponsor
Delos




PostPosted: Wed Jan 12, 2005 1:17 pm   Post subject: (No subject)

1)
code:

KEY_RIGHT_ARROW

is a valid identifier.
Check out the help file for more details on such terms.

2)
You're code seems reasonable enough to be upraded a tad...instead of using getch() for your movement, check out what Input.KeyDown() can do for you.

3)
As for the bounces...
I suggest that you create a variable that controls the way your change rows...for example, if the * is falling, then its value would be -1, -2, etc...that means that each loop you go through, the row has (-1) or (-2) added to it. Simple algebra, the resultant number is less than that before it.
code:

var delta : int := -2
var counter : int := 20

for i : 1..5
   put "The current value is ", counter
   counter += delta
   % Hopefully you're familiar with the '+=' form of writing this.
   % Check http://www.compsci.ca/v2/viewtopic.php?t=4588 if you need some brushing up.
end for


See what I mean? Now, once it reaches the bottom of the screen, you can simply change the value of your 'delta' variable to a positive number, so now it will intepret the values as increasing...

It all comes down to thinking of the movement in terms of vectors.
BTW, here's that link from the code in case you're too lazy to cut and paste (like most of us here Razz)
benQ




PostPosted: Thu Jan 13, 2005 8:53 am   Post subject: Actually..

I tried that because i'm doing the same thing. And it doesn't bounce. Why are you using a counter?
Delos




PostPosted: Thu Jan 13, 2005 9:04 am   Post subject: (No subject)

The counter in this case would be used in conjunction with the locate()s. It would basically store which row the * is currently on.
benQ




PostPosted: Thu Jan 13, 2005 4:05 pm   Post subject: Oh

But why doesn't the asterisk bounce? Where should I be putting your code in my program?
Cervantes




PostPosted: Fri Jan 14, 2005 5:34 pm   Post subject: Re: Oh

benQ wrote:
Where should I be putting your code in my program?

You don't. That's called plagerism. Instead, study his code and the things he said that went with it, then rearrange and warp the code to suit your specific code and your specific problem.
Amreen




PostPosted: Tue Jan 18, 2005 9:08 am   Post subject: (No subject)

ITS NOT PLAGERISM....ITS CALLED I NEED HELP!!!!!
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: