Computer Science Canada Pong :D |
Author: | Degensquared [ Fri Oct 26, 2007 6:49 am ] | ||
Post subject: | Pong :D | ||
Just my remake of the original Pong ^_^ Might be adding some new things into it like powerups soon -------------------------------------
|
Author: | petree08 [ Fri Oct 26, 2007 7:50 am ] |
Post subject: | RE:Pong :D |
yeah about pong, there are like a million posts on compsci that are "pong", i think this subject is done to death. Sure its a great program for people starting out graphics but we don't need to see every single person's version of a very basic game. Still its good to see you have an interest. Have a look at the turing tutorials there are a lot of neat stuff you can learn. |
Author: | Tony [ Fri Oct 26, 2007 2:05 pm ] | ||
Post subject: | RE:Pong :D | ||
I see arrays of records in there. Very nice! Absolutely love this line
but the control keys are defined arbitrary elsewhere in the program, so simply creating a new padding record wouldn't do that much good. you might want to replace randint with Rand.Int and instead of locatexy use Font.Draw |
Author: | Nick [ Fri Oct 26, 2007 2:46 pm ] | ||
Post subject: | RE:Pong :D | ||
not bad not bad... take a gander at mine
multiple modes including difficulty and optional second player also the lan is nto yet finsished so if u try too play over lan... tough luck sorry (u could fix it tho) controls player 1 wasd controls player 2 arrow keys |
Author: | Tony [ Fri Oct 26, 2007 3:51 pm ] | ||||
Post subject: | RE:Pong :D | ||||
hey, cool. Also, check this out:
into
|
Author: | TripleBla [ Sun Oct 28, 2007 9:38 am ] |
Post subject: | Re: Pong :D |
Tony, your methods of converting countless If structure into flawless code is awesome. I always see myself looking at a handful of elsif's .. and wondering, there's got to be something better. |
Author: | Clayton [ Sun Oct 28, 2007 10:49 pm ] |
Post subject: | RE:Pong :D |
Perhaps you should read this, and you'll see how you can do so too! |
Author: | Nick [ Sun Oct 28, 2007 11:02 pm ] |
Post subject: | RE:Pong :D |
a great blog and all but what's it got to do with pong and/or if structures? |
Author: | Tony [ Sun Oct 28, 2007 11:06 pm ] |
Post subject: | RE:Pong :D |
Yeah Clayton, I think you've got the wrong post. You might have meant this one. Though really, that only brings the attention to the fact that you should be questioning yourself if you're doing something the way it should be done. TripleBla already does that, the rest comes with practise. |
Author: | Clayton [ Mon Oct 29, 2007 12:21 pm ] |
Post subject: | RE:Pong :D |
I uh... fixed it. |
Author: | r.m_spy [ Mon Dec 10, 2007 7:32 am ] |
Post subject: | RE:Pong :D |
just trying to help setscreen ("graphics:450;400,nobuttonbar") colorback (black) color (white) cls var ch : char var choice:string var l:int:=0 const chatPort : int := 5055 var token : string var netStream : int var netAddress : string var server : string := "" var connection : string := "Keyboard" var players : string := "" var gameType : string := "" var difficulty : string := "" var ballSpeed, ballAccel : int := 1 var ballDirx, ballDiry : int := 1 var move, move2 : array char of boolean var score : array 1 .. 2 of int score (1) := 0 score (2) := 0 var ballx, bally : int ballx := 50 bally := 50 var playerx, playery : array 1 .. 4 of int playerx (1) := 10 playery (1) := 10 playerx (2) := maxx - 20 playery (2) := maxy - 110 playerx (3) := 10 playery (3) := 10 playerx (4) := maxx - 60 playery (4) := maxy - 70 loop put"Enter 'I' for Instructions." put"Enter 'G' for the game." get choice if choice="I" then cls put" point of the game " put"" put" defend the ball from getting past you" put" try to get the ball past the red blocks" put" first one to 10 wins" put"" put"" put"" put" controls" put"" put" player 1 in classic mode uses 'w' and 's'" put"if player 1 is in New mode, use 'w','s','a', and 'd'." put" player 2 in classic mode uses up and down" put"if player 2 is in New mode, use up,down,left, and right." put"" Input.Pause elsif choice="G" then l:=l+1 end if cls exit when l=1 end loop cls loop locate (1, 1) put "Please make sure you are matching the case" locate (2, 1) put "Game type?? (Classic or New)" get gameType cls if gameType = "Classic" then exit elsif gameType = "New" then exit end if end loop loop locate (1, 1) put "Difficulty? (1,2 or 3)" get difficulty cls if difficulty = "1" then ballAccel := 1 exit elsif difficulty = "2" then ballAccel := 3 exit elsif difficulty = "3" then ballAccel := 5 exit end if end loop loop locate (1, 1) put "Players? (1 or 2)" get players cls if players = "1" then exit elsif players = "2" then exit end if end loop if players = "2" then loop locate (1, 1) put "Please make sure you are matching the case" locate (2, 1) put "Connect to another computer or use the keyboard" locate (3, 1) put "for player 2 ('Connection' or 'Keyboard')" get connection cls if connection = "Keyboard" then exit elsif connection = "Connection" then exit end if end loop end if if connection = "Connection" then loop locate (1, 1) put "Please make sure you are matching the case" put "Will you act as the server or connect to the server" put "('Server' or 'Connect')" get server cls if server = "Server" then exit elsif server = "Connect" then exit end if end loop if server = "Connect" then put "Enter the address to connect to: " .. get netAddress netStream := Net.OpenConnection (netAddress, chatPort) if netStream <= 0 then put "Unable to connect to ", netAddress return end if else netStream := Net.WaitForConnection (chatPort, netAddress) end if end if setscreen ("graphics:450;400,nobuttonbar,offscreenonly") procedure moveBall ballx += ballDirx bally += ballDiry if bally <= 0 then bally := 0 ballDiry := 1 ballSpeed := 1 if gameType = "New" then score (2) += 1 end if elsif bally >= maxy - 50 then bally := maxy - 50 ballDiry := -1 ballSpeed := -1 if gameType = "New" then score (1) += 1 end if end if if ballx <= 0 then ballx := 0 score (2) += 1 ballSpeed := 1 ballDirx := 1 elsif ballx >= maxx then ballx := maxx ballDirx := -1 ballSpeed := -1 score (1) += 1 end if if (ballx >= playerx (1) and ballx <= playerx (1) + 10) and (bally >= playery (1) and bally <= playery (1) + 50) then ballDirx := ballSpeed ballSpeed += ballAccel end if if (ballx >= playerx (2) and ballx <= playerx (2) + 10) and (bally >= playery (2) and bally <= playery (2) + 50) then ballDirx := -ballSpeed ballSpeed += ballAccel end if if gameType = "New" then if (ballx >= playerx (3) and ballx <= playerx (3) + 50) and (bally >= playery (3) and bally <= playery (3) + 10) then ballDiry := ballSpeed ballSpeed += ballAccel end if if (ballx >= playerx (4) and ballx <= playerx (4) + 50) and (bally >= playery (4) and bally <= playery (4) + 10) then ballDiry := -ballSpeed ballSpeed += ballAccel end if end if end moveBall procedure movePlayers Input.KeyDown (move) if hasch then if connection = "Connection" then put : netStream, ch end if end if if move ('w') then playery (1) += 2 end if if move ('s') then playery (1) -= 2 end if if move ('a') then playerx (3) -= 2 end if if move ('d') then playerx (3) += 2 end if if connection = "Keyboard" then if players = "2" then if move (KEY_UP_ARROW) then playery (2) += 2 end if if move (KEY_DOWN_ARROW) then playery (2) -= 2 end if if move (KEY_LEFT_ARROW) then playerx (4) -= 2 end if if move (KEY_RIGHT_ARROW) then playerx (4) += 2 end if end if elsif connection = "Connection" then if Net.CharAvailable (netStream) then get : netStream, ch if ch = "w" then playery (2) -= 2 end if if ch = "s" then playery (2) += 2 end if if ch = "a" then playerx (4) += 2 end if if ch = "d" then playerx (4) -= 2 end if end if end if if playery (1) <= 0 then playery (1) += 2 elsif playery (1) >= maxy - 95 then playery (1) -= 2 end if if playery (2) <= 0 then playery (2) += 2 elsif playery (2) >= maxy - 95 then playery (2) -= 2 end if if playerx (3) <= 0 then playerx (3) += 2 elsif playerx (3) >= maxx - 50 then playerx (3) -= 2 end if if playerx (4) <= 0 then playerx (4) += 2 elsif playerx (4) >= maxx - 50 then playerx (4) -= 2 end if end movePlayers procedure moveComp if bally > playery (2) and ballx > maxx div 2 then playery (2) += 2 elsif bally < playery (2) and ballx > maxx div 2 then playery (2) -= 2 end if if ballx > playerx (4) and bally > maxy div 2 - 22 then playerx (4) += 2 elsif ballx < playerx (4) and bally > maxy div 2 - 22 then playerx (4) -= 2 end if end moveComp loop cls Draw.ThickLine (0, maxy - 45, maxx, maxy - 45, 5, white) Draw.ThickLine (maxx div 2, 0, maxx div 2, maxy - 45, 5, white) Draw.ThickLine (0, maxy div 2 - 22, maxx, maxy div 2 - 22, 5, white) drawfillbox (playerx (1), playery (1), playerx (1) + 10, playery (1) + 50, blue) drawfillbox (playerx (2), playery (2), playerx (2) + 10, playery (2) + 50, red) if gameType = "New" then drawfillbox (playerx (3), playery (3), playerx (3) + 50, playery (3) + 10, blue) drawfillbox (playerx (4), playery (4), playerx (4) + 50, playery (4) + 10, red) end if drawfilloval (ballx, bally, 5, 5, white) locate (1, 1) put "Player 1's score :", score (1) locate (2, 1) put "Player 2's score :", score (2) View.Update View.Update movePlayers moveBall if players = "1" then moveComp end if delay (10) exit when score (1) = 10 exit when score (2) = 10 end loop cls locate (1, 1) if score (1) = 10 then put "congrats player 1" else put "congrats player 2" end if locate (2, 1) put "You have survived for ", Time.Elapsed div 1000, " seconds" |