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

Username:   Password: 
 RegisterRegister   
 Quick Pong Game
Index -> Programming, Turing -> Turing Submissions
View previous topic Printable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Parker




PostPosted: Thu Nov 27, 2008 9:09 am   Post subject: Quick Pong Game

Just a quick Pong game I had to make for school if anyone is interested. This game doesn't matter to me as much as my other one. Enough chat, here is the code.

Turing:
/****************************
 *****     Pong Game     *****
 *****    By: Parker     *****
 ****************************/


View.Set ("graphics: 526;640, offscreenonly, position: center;center")
var x1, x2 : int % paddle at bottom
var xx1, xx2 : int % paddle at top
var chars : array char of boolean % movement of paddles
var circlex, circley, circleradius : int % first circle variables
var circle1x, circle1y, circle1radius : int % second circle variables
var xdir, ydir : int % for movement of 1st circle
var xdir1, ydir1 : int % for movement of 2nd circle
var scoreint1, scoreint2 : int % scores
var scorestr1, scorestr2 : string % change the scores into a string
var colourcount : int := 32 % make ball flash colours
var score : int % for the score font
var scoreposition1, scoreposition2 : int % To move the score when > 9
var winner : int % Winner font
var playagain : int % playagain font
var key : string (1) % for getch
var title : int % title font

% Give the variables values
circlex := 50
circley := 60
circleradius := 8
circle1x := 50
circle1y := 60
circle1radius := 8
x1 := 20
x2 := 140
xx1 := 300
xx2 := 420
xdir := 5
ydir := 5
xdir1 := 4
ydir1 := 4
scoreint1 := 0
scoreint2 := 0
scoreposition1 := 203
scoreposition2 := 203

% Font Declarations
score := Font.New ("Swis721 Ex BT:160:bold")
assert score > 0

winner := Font.New ("Arial:43:bold")
assert winner > 0

playagain := Font.New ("Arial:27:bold")
assert playagain > 0

title := Font.New ("Swis721 Ex BT:110:bold")
assert title > 0

loop

cls

    %background
    drawfill (maxx, maxy, 255, 255)

    %lines across middle
    drawfillbox (0, 314, 1, 326, 40)
    drawfillbox (11, 314, 40, 326, 40)
    drawfillbox (50, 314, 80, 326, 40)
    drawfillbox (90, 314, 120, 326, 40)
    drawfillbox (130, 314, 160, 326, 40)
    drawfillbox (170, 314, 200, 326, 40)
    drawfillbox (210, 314, 240, 326, 40)
    drawfillbox (250, 314, 280, 326, 40)
    drawfillbox (290, 314, 320, 326, 40)
    drawfillbox (330, 314, 360, 326, 40)
    drawfillbox (370, 314, 400, 326, 40)
    drawfillbox (410, 314, 440, 326, 40)
    drawfillbox (450, 314, 480, 326, 40)
    drawfillbox (490, 314, 520, 326, 40)

    % title
    Font.Draw ("PONG!", 0, 400, title, 40)
    Font.Draw ("Press any key to continue.", 34, 200, playagain, 40)
    locatexy (1, 1)
    getch (key)
    View.Update

    cls %clear

    %background
    drawfill (maxx, maxy, 255, 255)

    %lines across middle
    drawfillbox (0, 314, 1, 326, 40)
    drawfillbox (11, 314, 40, 326, 40)
    drawfillbox (50, 314, 80, 326, 40)
    drawfillbox (90, 314, 120, 326, 40)
    drawfillbox (130, 314, 160, 326, 40)
    drawfillbox (170, 314, 200, 326, 40)
    drawfillbox (210, 314, 240, 326, 40)
    drawfillbox (250, 314, 280, 326, 40)
    drawfillbox (290, 314, 320, 326, 40)
    drawfillbox (330, 314, 360, 326, 40)
    drawfillbox (370, 314, 400, 326, 40)
    drawfillbox (410, 314, 440, 326, 40)
    drawfillbox (450, 314, 480, 326, 40)
    drawfillbox (490, 314, 520, 326, 40)

    % How to play screen
    Font.Draw ("How to play", 90, 550, winner, 40)
    color (40)
    colorback (255)
    locatexy (0, 475)
    put "Player 1- You are the one on the bottom. You control your paddle with the left and right arrow keys."
    locatexy (0, 410)
    put "Player 2- You are the one on the top. You control your paddle"
    put "with the key 'a' for left and 'd' for right."
    locatexy (0, 250)
    put "The objective is to keep the ball from touching your side."
    locatexy (0, 200)
    put "If the ball touches your opponents side, then you receive a point"
    locatexy (0, 150)
    put "The first person to 25 points wins. After both players are at 10 points another ball will appear and the first will slow down."
    View.Update
    getch (key) % wait for key

    loop

        % to make ball flash
        colourcount := colourcount + 1
        if colourcount > 55 then
            colourcount := 32
        end if

        cls % clear

        %background
        drawfill (maxx, maxy, 255, 255)

        %lines across middle
        drawfillbox (0, 314, 1, 326, 40)
        drawfillbox (11, 314, 40, 326, 40)
        drawfillbox (50, 314, 80, 326, 40)
        drawfillbox (90, 314, 120, 326, 40)
        drawfillbox (130, 314, 160, 326, 40)
        drawfillbox (170, 314, 200, 326, 40)
        drawfillbox (210, 314, 240, 326, 40)
        drawfillbox (250, 314, 280, 326, 40)
        drawfillbox (290, 314, 320, 326, 40)
        drawfillbox (330, 314, 360, 326, 40)
        drawfillbox (370, 314, 400, 326, 40)
        drawfillbox (410, 314, 440, 326, 40)
        drawfillbox (450, 314, 480, 326, 40)
        drawfillbox (490, 314, 520, 326, 40)

        % make score integer a string
        scorestr1 := intstr (scoreint1)
        scorestr2 := intstr (scoreint2)

        % Show the score
        Font.Draw (scorestr1, scoreposition1, 400, score, 40)
        Font.Draw (scorestr2, scoreposition2, 80, score, 40)

        % paddles and circle
        drawfilloval (circlex, circley, circleradius, circleradius, colourcount) % ball
        drawfillbox (x1, 1, x2, 10, 40) % paddle at bottom
        drawfillbox (xx1, 640, xx2, 631, 40) % paddle at top
        %Drawing second ball
        if scoreint1 >= 10 and scoreint2 >= 10 then
            drawfilloval (circle1x, circle1y, circle1radius, circle1radius, colourcount) % ball
        end if
        delay (2)

        %User presses a key and paddle moves appropriately
        Input.KeyDown (chars)

        %Bottom player's keys
        if chars (KEY_LEFT_ARROW) and x2 > 113 then
            x1 := x1 - 2
            x2 := x2 - 2
        end if
        if chars (KEY_RIGHT_ARROW) and x1 < 403 then
            x1 := x1 + 2
            x2 := x2 + 2
        end if

        %Top player's keys
        if chars ('a') and xx2 > 113 then
            xx1 := xx1 - 2
            xx2 := xx2 - 2
        end if
        if chars ('d') and xx1 < 403 then
            xx1 := xx1 + 2
            xx2 := xx2 + 2
        end if
        View.Update

        %Circle movement for first ball
        if scoreint1 >= 10 and scoreint2 >= 10 then

            if circlex > 516 then
                xdir := -4
            elsif circlex < 10 then
                xdir := 4
            end if

            if circley > 632 then
                ydir := -4
            elsif circley < 8 then
                ydir := 4
            end if


            %Circle movement for first ball before 2 balls
        else

            if circlex > 516 then
                xdir := -5
            elsif circlex < 10 then
                xdir := 5
            end if

            if circley > 632 then
                ydir := -5
            elsif circley < 8 then
                ydir := 5
            end if

        end if
        %End of circle movement for first ball

        %Circle movement for second ball
        if scoreint1 >= 10 and scoreint2 >= 10 then

            if circle1x > 516 then
                xdir1 := -4
            elsif circle1x < 10 then
                xdir1 := 4
            end if

            if circle1y > 632 then
                ydir1 := -4
            elsif circle1y < 8 then
                ydir1 := 4
            end if

        end if
        %End of circle movement for second ball

        %First ball changing direction on paddle
        %First ball changes direction after it hits bottom player's paddle
        if circley <= 23 and circley > 1 and circlex >= x1 and circlex <= x2 then
            ydir := 4
        end if

        %First ball changes direction after it hits top player's paddle
        if circley >= 617 and circley < 639 and circlex >= xx1 and circlex <= xx2 then
            ydir := -4
        end if

        % speed before 2nd ball

        if scoreint1 <= 10 and scoreint2 <= 10 then

            %First ball changes direction after it hits bottom player's paddle
            if circley <= 23 and circley > 1 and circlex >= x1 and circlex <= x2 then
                ydir := 5
            end if

            %First ball changes direction after it hits top player's paddle
            if circley >= 617 and circley < 639 and circlex >= xx1 and circlex <= xx2 then
                ydir := -5
            end if
        end if

        %Second ball changing direction
        if scoreint1 >= 10 and scoreint2 >= 10 then

            %Second ball changes direction after it hits bottom player's paddle
            if circle1y <= 23 and circle1y > 1 and circle1x >= x1 and circle1x <= x2 then
                ydir1 := 4
            end if

            %Second ball changes direction after it hits top player's paddle
            if circle1y >= 617 and circle1y < 639 and circle1x >= xx1 and circle1x <= xx2 then
                ydir1 := -4
            end if
        end if

        %Movement of the ball based on the direction it's traveling
        circley := circley + ydir
        circlex := circlex + xdir

        %Movement of second ball
        if scoreint1 >= 10 and scoreint2 >= 10 then
            circle1y := circle1y + ydir1
            circle1x := circle1x + xdir1
        end if

        %Increases score for both players
        if circley > 632 then
            scoreint2 := scoreint2 + 1
        elsif circley < 8 then
            scoreint1 := scoreint1 + 1
        end if

        %Increases score for both players on second ball
        if scoreint1 >= 10 and scoreint2 >= 10 then
            if circle1y > 632 then
                scoreint2 := scoreint2 + 1
            elsif circle1y < 8 then
                scoreint1 := scoreint1 + 1
            end if
        end if

        View.Update

        %Changes location of the score when the score is > 10
        if scoreint1 >= 10 then
            scoreposition1 := 100
        end if
        if scoreint2 >= 10 then
            scoreposition2 := 100
        end if

        exit when scoreint1 = 25 or scoreint2 = 25
    end loop

    % Winner of the game (first to 25)
    cls
    if scoreint1 = 25 then
        drawfill (maxx, maxy, green, green)
        Font.Draw ("Player 2 wins,", 5, 400, winner, 40)
        Font.Draw ("the one on top!", 5, 300, winner, 40)
    elsif scoreint2 = 25 then
        drawfill (maxx, maxy, green, green)
        Font.Draw ("Player 1 wins,", 5, 400, winner, 40)
        Font.Draw ("the one on bottom!", 5, 300, winner, 40)
    end if

    % play again?
   
    Font.Draw ("Play again? (y/n)", 90, 150, playagain, 40)
    View.Update
    locatexy (50, 120)
    getch (key)
   
    if key = "n" then
        exit
    elsif key = "y" then
        scoreint1 := 0
        scoreint2 := 0
        scoreposition1 := 203
        scoreposition2 := 203
    end if
end loop


Hope you like it Mr. Green
Sponsor
Sponsor
Sponsor
sponsor
ecookman




PostPosted: Thu Nov 27, 2008 11:29 am   Post subject: RE:Quick Pong Game

is nice!

paddles could have een faster.. lol changed that...

over all really mice... now all you need to do is make it online so i cn frag my friends at pong in safety
Insectoid




PostPosted: Thu Nov 27, 2008 12:09 pm   Post subject: RE:Quick Pong Game

ecookman, please proofread your posts before submitting them. one or two mistakes is okay, but the frequency with which you err is a bit much.
leafs23




PostPosted: Fri Mar 27, 2009 11:10 am   Post subject: RE:Quick Pong Game

this game is a copy of mine!
SNIPERDUDE




PostPosted: Fri Mar 27, 2009 10:27 pm   Post subject: RE:Quick Pong Game

Unless it is posted in another account name by you (why you would even have more than one is beyond me), he is not breaking any rules that I can see.
Dan




PostPosted: Fri Mar 27, 2009 10:58 pm   Post subject: Re: RE:Quick Pong Game

leafs23 @ 27th March 2009, 11:10 am wrote:
this game is a copy of mine!


Do you have some kind of evicdence to back up that claim or do you just mean that you also made a pong game once?
Computer Science Canada Help with programming in C, C++, Java, PHP, Ruby, Turing, VB and more!
leafs23




PostPosted: Thu May 21, 2009 12:18 pm   Post subject: Re: Quick Pong Game

my version of pong


PONG- Steve G.t
 Description:

Download
 Filename:  PONG- Steve G.t
 Filesize:  7.23 KB
 Downloaded:  104 Time(s)

zero-impact




PostPosted: Mon May 25, 2009 4:46 pm   Post subject: RE:Quick Pong Game

That looks nothing like this leafs23.
Sponsor
Sponsor
Sponsor
sponsor
Display posts from previous:   
   Index -> Programming, Turing -> Turing Submissions
View previous topic Tell A FriendPrintable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 8 Posts ]
Jump to:   


Style:  
Search: