Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE SUB center ()
- DECLARE SUB border ()
- DECLARE SUB settings ()
- DECLARE SUB intro (ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$)
- DECLARE SUB paddle (pr!, pc!, paddles$, CLR!, length!)
- intro ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$
- CLS
- COLOR bordercolor
- border
- COLOR 7
- LOCATE 1, 23
- PRINT "Pickleball v1.0 - By Daniel Vaysburd"
- LOCATE 1, 3
- PRINT player1$; ":"; playerscore1
- LOCATE 1, 67
- PRINT player2$; ":"; playerscore2
- r = 5 'init row, col and their increments
- c = 5
- rinc = 1
- cinc = 1
- pr = 20 ' paddle row and column
- pc = 5
- pr2 = 20
- pc2 = 75
- playerscore1 = 0
- playerscore2 = 0
- winningscore = 11
- COLOR paddlecolor1
- paddle pr, pc, paddles$, 6, 10
- a$ = ""
- COLOR paddlecolor2
- paddle pr2, pc2, paddles$, 6, 10
- DO WHILE playerscore1 < winningscore AND playerscore2 < winningscore
- 'DO WHILE c = pc + 1 OR c = pc + 2
- IF a$ <> "" THEN
- COLOR paddlecolor1
- paddle pr, pc, " ", 6, 10
- COLOR paddlecolor2
- paddle pr2, pc2, paddles$, 6, 10
- SELECT CASE LCASE$(a$)
- CASE "s" ' move player 1
- paddle pr, pc, " ", 6, 1
- IF pr < 40 THEN
- pr = pr + 1
- END IF
- paddle pr, pc, paddles$, 6, 10
- CASE "w"
- paddle pr, pc, " ", 6, 1
- IF pr > 1 THEN
- pr = pr - 1
- END IF
- paddle pr, pc, paddles$, 6, 10
- CASE "a"
- paddle pr, pc, " ", 6, 1
- IF pc > 1 THEN
- pc = pc - 1
- END IF
- paddle pr, pc, paddles$, 6, 10
- CASE "d"
- paddle pr, pc, " ", 6, 1
- IF pc < 39 THEN
- pc = pc + 1
- END IF
- paddle pr, pc, paddles$, 6, 10
- CASE "j" ' move player 2
- paddle pr2, pc2, " ", 6, 1
- IF pr2 < 40 THEN
- pr2 = pr2 + 1
- END IF
- paddle pr2, pc2, paddles$, 6, 10
- CASE "u"
- paddle pr2, pc2, " ", 6, 1
- IF pr2 > 1 THEN
- pr2 = pr2 - 1
- END IF
- paddle pr2, pc2, paddles$, 6, 10
- CASE "h"
- paddle pr2, pc2, " ", 6, 1
- IF pc2 > 41 THEN
- pc2 = pc2 - 1
- END IF
- paddle pr2, pc2, paddles$, 6, 10
- CASE "k"
- paddle pr2, pc2, " ", 6, 1
- IF pc2 < 80 THEN
- pc2 = pc2 + 1
- END IF
- paddle pr2, pc2, paddles$, 6, 10
- ' c = c - 1
- END SELECT
- COLOR paddlecolor1
- paddle pr, pc, paddles$, 6, 10
- COLOR paddlecolor2
- paddle pr2, pc2, paddles$, 6, 10
- END IF
- IF pc2 - 1 = c AND (pr2 - 1 <= r AND pr2 + 7 >= r) THEN 'bounce ball off
- cinc = -cinc
- END IF
- IF pc - 1 = c AND (pr - 1 <= r AND pr + 7 >= r) THEN
- cinc = -cinc
- END IF
- IF c = 81 THEN ' This was a quick fix for a problem where the ball kept going to 81 and I got IFC.
- c = 80
- cinc = -cinc
- END IF
- LOCATE r, c ' draw ball
- COLOR ballcolor
- PRINT ball$
- COLOR bordercolor ' Color of the border
- center ' Only prints the center, since the border will never be hit
- COLOR 7 ' Color of the score, always white.
- IF c <= 1 THEN
- playerscore2 = playerscore2 + 1
- LOCATE 1, 67
- PRINT player2$; ":"; playerscore2
- ELSEIF c >= 79 THEN
- playerscore1 = playerscore1 + 1
- LOCATE 1, 3
- PRINT player1$; ":"; playerscore1
- ELSEIF playerscore1 >= 11 AND playerscore1 = playerscore2 + 1 THEN
- winningscore = winningscore + 1
- ELSEIF playerscore2 >= 11 AND playerscore2 = playerscore1 + 1 THEN
- winningscore = winningscore + 1
- END IF
- FOR x = 1 TO speed * 10000 ' 10000 is added so user has 1-100 option that makes sense
- NEXT x
- LOCATE r, c 'erase ball
- PRINT " "
- r = r + rinc 'move ball
- c = c + cinc
- COLOR paddlecolor1
- paddle pr, pc, paddles$, 6, 10 ' Reprint paddles
- COLOR paddlecolor2
- paddle pr2, pc2, paddles$, 6, 10
- IF r = 45 OR r = 2 THEN
- rinc = -rinc ' bounce top + bottom
- END IF
- IF c = 2 OR c = 78 THEN
- cinc = -cinc ' bounce left + right
- END IF
- a$ = INKEY$ ' keyboard buffer strobe,
- a$ = UCASE$(a$) ' inkey$ allows input w/out stopping
- 'LOOP
- LOOP
- PRINT " The ball ran for "; e - s; " seconds"
- SUB border
- FOR x = 2 TO 46 ' left border
- LOCATE x, 1
- PRINT "#"
- NEXT x
- FOR x = 1 TO 80 ' bottom border
- LOCATE 46, x
- PRINT "#"
- NEXT x
- FOR x = 2 TO 46 ' right border
- LOCATE x, 80
- PRINT "#"
- NEXT x
- FOR x = 1 TO 80 ' top border
- LOCATE 2, x
- PRINT "#"
- NEXT x
- END SUB
- SUB center
- FOR x = 2 TO 46
- LOCATE x, 40
- PRINT "|"
- NEXT x
- END SUB
- SUB intro (ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$)
- CLS
- LOCATE 25, 25
- COLOR 14
- PRINT "Welcome to the Paddleball v1.0"
- PRINT " By Daniel Vaysburd"
- PRINT
- PRINT " Press any key to continue . . ."
- Pause$ = INPUT$(1)
- PRINT
- INPUT "Default or custom settings? ", choice$
- choice$ = UCASE$(choice$)
- IF choice$ = "CUSTOM" THEN
- PRINT
- PRINT "Color Table"
- PRINT "-----------"
- FOR x = 1 TO 15
- COLOR x
- PRINT x; " ²"
- NEXT x
- COLOR 14
- PRINT
- INPUT "Enter the name of Player 1: ", player1$
- INPUT "Enter the name of Player 2: ", player2$
- INPUT "Enter the character the ball will be made of: ", ball$
- INPUT "Enter the characters the paddles will be made of: ", paddles$
- INPUT "Enter the speed of the ball. Bigger = Slower. (1-100): ", speed
- IF speed < 1 OR speed > 100 THEN
- INPUT "Not in the range of possible speeds. Enter speed again: ", speed
- END IF
- INPUT "Enter the color of paddle 1: ", paddlecolor1
- IF paddlecolor1 < 1 OR paddlecolor1 > 15 THEN
- INPUT "Not in the range of possible colors. Enter color again: ", paddlecolor1
- END IF
- INPUT "Enter the color of paddle 2: ", paddlecolor2
- IF paddlecolor2 < 1 OR paddlecolor2 > 15 THEN
- INPUT "Not in the range of possible colors. Enter color again: ", paddlecolor2
- END IF
- INPUT "Enter the color of the ball: ", ballcolor
- IF ballcolor < 1 OR ballcolor > 15 THEN
- INPUT "Not in the range of possible colors. Enter color again: ", ballcolor
- END IF
- INPUT "Enter the color of the border: ", bordercolor
- IF bordercolor < 1 OR bordercolor > 15 THEN
- INPUT "Not in the range of possible colors. Enter color again: ", bordercolor
- END IF
- ELSE
- player1$ = "Player 1"
- player2$ = "Player 2"
- ball$ = "0"
- paddles$ = "²"
- speed = 75
- paddlecolor1 = 12
- paddlecolor2 = 9
- ballcolor = 14
- bordercolor = 8
- END IF
- END SUB
- SUB paddle (pr, pc, paddles$, length, CLR)
- FOR x = pr TO pr + length
- LOCATE x, pc
- PRINT paddles$
- NEXT x
- END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement