
-----------------------------------
cop_mike
Thu Nov 04, 2004 9:02 pm

need help with pong
-----------------------------------
hey i found out how to add the score and stuff but the score keeps adding up when it hits the walls and even when the ball hits the paddles its gives the other person a couple points   can u fix this and send it back to me?  



View.Set ("graphics:640;480")


var x, y, xr, yr, c, x1, y1, x2, y2 : int
var xstep, ystep : int := 5
var key : string (1)
var count1, count2 := 0
var font, font1 : int
font := Font.New ("arial :20:bold")
font1 := Font.New ("arial :30:bold")
ystep := 6
x := 480
y := 240
xr := 8
yr := 8
x1 := 10
y1 := 240
x2 := 620
y2 := 240
count1 := 0
count2 := 0
drawfillbox (640, 0, 0, 480, 2)
Font.Draw ("Welcome to MIke's game of...", 72, 320, font, 0)
delay (3000)
cls
delay (10)
drawfillbox (640, 0, 0, 480, 2)
Font.Draw ("!~!~!~!~PONG~!~!~!~!", 190, 320, font, 0)
delay (3000)
cls
delay (10)

loop
    randint (c, 10, 69)
    %line in middle
    drawline (320, 480, 320, 0, 7)
    %circle in middle
    drawoval (320, 210, 80, 80, 7)
    %score border
    drawfillbox (640, 420, 0, 480, 4)
    %score
    Font.Draw (intstr (count1), 175, maxy - 25, font, 0)
    Font.Draw (intstr (count2), maxx - 175, maxy - 25, font, 0)
    %ball
    drawfilloval (x, y, xr, yr, c)
    % right paddle
    drawfillbox (x1, y1, x1 + 10, y1 + 60, c)
    %left paddle
    drawfillbox (x2, y2, x2 + 10, y2 + 60, c)
    delay (30)
    % clear ball
    drawfilloval (x, y, xr, yr, 0)
    %clear right paddle
    drawfillbox (x1, y1, x1 + 10, y1 + 60, 0)
    %clear left paddle
    drawfillbox (x2, y2, x2 + 10, y2 + 60, 0)
    x := x + xstep
    y := y + ystep
    %keys
    if hasch then
        getch (key)
        if key = "W" or key = "w" and y1 < 350 then
            y1 := y1 + 20
        elsif key = "S" or key = "s" and y1 > 0 then
            y1 := y1 - 20
        elsif key = chr (200) and y2 < 350 then
            y2 := y2 + 20
        elsif key = chr (208) and y2 > 0 then
            y2 := y2 - 20
        end if
    end if
    %makes it bounce
    if x > 630 or x < 10 then
        xstep := -xstep
    end if
    if y > 410 or y < 10 then
        ystep := -ystep
    end if
    if x - 8 = y1 and y = x2 then
        if y >= y2 and y = 640 - 35 then
        count1 := count1 + 1
    elsif x  -1 and x < 7 then
        put " |", repeat (" ", x), ".", repeat (" ", 6 - x), "| "
    end if
    if x = -1 then
        put ".|       | "
    elsif x = 7 then
        put " |       |."
    end if
    delay (100)
end drawPong

loop
    if (x > 5) or (x < 1) then
        if Rand.Int (1, 5) = 1 then
            x += dir
            drawPong (x)
            locate (2, 1)
            if x < 1 then
                put "Player 2 wins"
                exit
            else
                put "Player 1 wins"
                exit
            end if
        end if
        dir *= -1
    end if
    x += dir
    drawPong (x)
end loop


-----------------------------------
Neo
Thu Nov 04, 2004 10:56 pm


-----------------------------------
Here you GO!!!!

View.Set ("graphics:640;480")

var x, y, xr, yr, c, x1, y1, x2, y2 : int
var xstep, ystep : int := 5
var key : string (1)
var count1, count2 := 0
var font, font1 : int
font := Font.New ("arial :20:bold")
font1 := Font.New ("arial :30:bold")
ystep := 6
x := 480
y := 240
xr := 8
yr := 8
x1 := 10
y1 := 240
x2 := 620
y2 := 240
count1 := 0
count2 := 0
drawfillbox (640, 0, 0, 480, 2)
Font.Draw ("Welcome to MIke's game of...", 72, 320, font, 0)
delay (3000)
cls
delay (10)
drawfillbox (640, 0, 0, 480, 2)
Font.Draw ("!~!~!~!~PONG~!~!~!~!", 190, 320, font, 0)
delay (3000)
cls
delay (10)

loop
    randint (c, 10, 69)
    %line in middle
    drawline (320, 480, 320, 0, 7)
    %circle in middle
    drawoval (320, 210, 80, 80, 7)
    %score border
    drawfillbox (640, 420, 0, 480, 4)
    %score
    Font.Draw (intstr (count1), 175, maxy - 25, font, 0)
    Font.Draw (intstr (count2), maxx - 175, maxy - 25, font, 0)
    %ball
    drawfilloval (x, y, xr, yr, c)
    % right paddle
    drawfillbox (x1, y1, x1 + 10, y1 + 60, c)
    %left paddle
    drawfillbox (x2, y2, x2 + 10, y2 + 60, c)
    delay (30)
    % clear ball
    drawfilloval (x, y, xr, yr, 0)
    %clear right paddle
    drawfillbox (x1, y1, x1 + 10, y1 + 60, 0)
    %clear left paddle
    drawfillbox (x2, y2, x2 + 10, y2 + 60, 0)
    x := x + xstep
    y := y + ystep
    %keys
    if hasch then
        getch (key)
        if key = "W" or key = "w" and y1 < 350 then
            y1 := y1 + 20
        elsif key = "S" or key = "s" and y1 > 0 then
            y1 := y1 - 20
        elsif key = chr (200) and y2 < 350 then
            y2 := y2 + 20
        elsif key = chr (208) and y2 > 0 then
            y2 := y2 - 20
        end if
    end if
    %makes it bounce
    if y > 410 or y < 10 then
        ystep := -ystep
    end if
    if x - 8 = y1 and y = x2 then
        if y >= y2 and y = maxx + 20 then
        count1 := count1 + 1
        x := maxx div 2 - 50
        y := maxy div 2
        Font.Draw ("Player 1 Scores!", 190, 320, font, black)
        delay (500)
        cls
    elsif x 