Advertisement
Guest User

Untitled

a guest
May 15th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 6.60 KB | None | 0 0
  1. DECLARE SUB center ()
  2. DECLARE SUB border ()
  3. DECLARE SUB settings ()
  4. DECLARE SUB intro (ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$)
  5. DECLARE SUB paddle (pr!, pc!, paddles$, CLR!, length!)
  6.  
  7. intro ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$
  8.  
  9. CLS
  10. COLOR bordercolor
  11. border
  12.  
  13. COLOR 7
  14. LOCATE 1, 23
  15. PRINT "Pickleball v1.0 - By Daniel Vaysburd"
  16. LOCATE 1, 3
  17. PRINT player1$; ":"; playerscore1
  18. LOCATE 1, 67
  19. PRINT player2$; ":"; playerscore2
  20.  
  21. r = 5                           'init row, col and their increments
  22. c = 5
  23. rinc = 1
  24. cinc = 1
  25.  
  26.  
  27. pr = 20                        ' paddle row and column
  28. pc = 5
  29.  
  30. pr2 = 20
  31. pc2 = 75
  32.  
  33. playerscore1 = 0
  34. playerscore2 = 0
  35. winningscore = 11
  36.  
  37. COLOR paddlecolor1
  38. paddle pr, pc, paddles$, 6, 10
  39. a$ = ""
  40. COLOR paddlecolor2
  41. paddle pr2, pc2, paddles$, 6, 10
  42.  
  43. DO WHILE playerscore1 < winningscore AND playerscore2 < winningscore
  44.     'DO WHILE c = pc + 1 OR c = pc + 2
  45.  
  46.       IF a$ <> "" THEN
  47.     COLOR paddlecolor1
  48.     paddle pr, pc, " ", 6, 10
  49.     COLOR paddlecolor2
  50.     paddle pr2, pc2, paddles$, 6, 10
  51.      
  52.     SELECT CASE LCASE$(a$)
  53.         CASE "s"                        ' move player 1
  54.             paddle pr, pc, " ", 6, 1
  55.             IF pr < 40 THEN
  56.             pr = pr + 1
  57.             END IF
  58.             paddle pr, pc, paddles$, 6, 10
  59.         CASE "w"
  60.             paddle pr, pc, " ", 6, 1
  61.             IF pr > 1 THEN
  62.             pr = pr - 1
  63.             END IF
  64.             paddle pr, pc, paddles$, 6, 10
  65.         CASE "a"
  66.             paddle pr, pc, " ", 6, 1
  67.             IF pc > 1 THEN
  68.             pc = pc - 1
  69.             END IF
  70.             paddle pr, pc, paddles$, 6, 10
  71.  
  72.         CASE "d"
  73.             paddle pr, pc, " ", 6, 1
  74.             IF pc < 39 THEN
  75.             pc = pc + 1
  76.             END IF
  77.             paddle pr, pc, paddles$, 6, 10
  78.  
  79.         CASE "j"                         ' move player 2
  80.             paddle pr2, pc2, " ", 6, 1
  81.             IF pr2 < 40 THEN
  82.             pr2 = pr2 + 1
  83.             END IF
  84.             paddle pr2, pc2, paddles$, 6, 10
  85.         CASE "u"
  86.             paddle pr2, pc2, " ", 6, 1
  87.             IF pr2 > 1 THEN
  88.             pr2 = pr2 - 1
  89.             END IF
  90.             paddle pr2, pc2, paddles$, 6, 10
  91.         CASE "h"
  92.             paddle pr2, pc2, " ", 6, 1
  93.             IF pc2 > 41 THEN
  94.             pc2 = pc2 - 1
  95.             END IF
  96.             paddle pr2, pc2, paddles$, 6, 10
  97.  
  98.         CASE "k"
  99.             paddle pr2, pc2, " ", 6, 1
  100.             IF pc2 < 80 THEN
  101.             pc2 = pc2 + 1
  102.             END IF
  103.             paddle pr2, pc2, paddles$, 6, 10
  104.         ' c = c - 1
  105.     END SELECT
  106.     COLOR paddlecolor1
  107.     paddle pr, pc, paddles$, 6, 10
  108.     COLOR paddlecolor2
  109.     paddle pr2, pc2, paddles$, 6, 10
  110.        
  111. END IF
  112.  
  113.       IF pc2 - 1 = c AND (pr2 - 1 <= r AND pr2 + 7 >= r) THEN 'bounce ball off
  114.     cinc = -cinc
  115.       END IF
  116.  
  117.       IF pc - 1 = c AND (pr - 1 <= r AND pr + 7 >= r) THEN
  118.     cinc = -cinc
  119.       END IF
  120.  
  121.       IF c = 81 THEN ' This was a quick fix for a problem where the ball kept going to 81 and I got IFC.
  122.     c = 80
  123.     cinc = -cinc
  124.       END IF
  125.  
  126.       LOCATE r, c             ' draw ball
  127.       COLOR ballcolor
  128.       PRINT ball$
  129.       COLOR bordercolor ' Color of the border
  130.       center ' Only prints the center, since the border will never be hit
  131.       COLOR 7 ' Color of the score, always white.
  132.  
  133.       IF c <= 1 THEN
  134.         playerscore2 = playerscore2 + 1
  135.         LOCATE 1, 67
  136.         PRINT player2$; ":"; playerscore2
  137.       ELSEIF c >= 79 THEN
  138.         playerscore1 = playerscore1 + 1
  139.         LOCATE 1, 3
  140.         PRINT player1$; ":"; playerscore1
  141.       ELSEIF playerscore1 >= 11 AND playerscore1 = playerscore2 + 1 THEN
  142.     winningscore = winningscore + 1
  143.       ELSEIF playerscore2 >= 11 AND playerscore2 = playerscore1 + 1 THEN
  144.     winningscore = winningscore + 1
  145.       END IF
  146.  
  147.       FOR x = 1 TO speed * 10000 ' 10000 is added so user has 1-100 option that makes sense
  148.       NEXT x
  149.  
  150.       LOCATE r, c             'erase ball
  151.       PRINT " "
  152.  
  153.       r = r + rinc            'move ball
  154.       c = c + cinc
  155.       COLOR paddlecolor1
  156.       paddle pr, pc, paddles$, 6, 10 ' Reprint paddles
  157.       COLOR paddlecolor2
  158.       paddle pr2, pc2, paddles$, 6, 10
  159.  
  160.       IF r = 45 OR r = 2 THEN
  161.         rinc = -rinc                    ' bounce top + bottom
  162.       END IF
  163.      
  164.       IF c = 2 OR c = 78 THEN
  165.         cinc = -cinc                    ' bounce left + right
  166.       END IF
  167.  
  168.  
  169.       a$ = INKEY$               ' keyboard buffer strobe,
  170.       a$ = UCASE$(a$)           ' inkey$ allows input w/out stopping
  171.       'LOOP
  172. LOOP
  173.  
  174. PRINT " The ball ran for "; e - s; " seconds"
  175.  
  176. SUB border
  177.  
  178. FOR x = 2 TO 46 ' left border
  179.     LOCATE x, 1
  180.     PRINT "#"
  181. NEXT x
  182.  
  183.  
  184. FOR x = 1 TO 80  ' bottom border
  185.     LOCATE 46, x
  186.     PRINT "#"
  187. NEXT x
  188.  
  189. FOR x = 2 TO 46 ' right border
  190.     LOCATE x, 80
  191.     PRINT "#"
  192. NEXT x
  193.  
  194. FOR x = 1 TO 80  ' top border
  195.     LOCATE 2, x
  196.     PRINT "#"
  197. NEXT x
  198.  
  199. END SUB
  200.  
  201. SUB center
  202. FOR x = 2 TO 46
  203.     LOCATE x, 40
  204.     PRINT "|"
  205. NEXT x
  206. END SUB
  207.  
  208. SUB intro (ball$, paddles$, speed, choice$, ballcolor, paddlecolor1, paddlecolor2, bordercolor, player1$, player2$)
  209. CLS
  210. LOCATE 25, 25
  211. COLOR 14
  212. PRINT "Welcome to the Paddleball v1.0"
  213. PRINT "                              By Daniel Vaysburd"
  214. PRINT
  215. PRINT "                        Press any key to continue . . ."
  216. Pause$ = INPUT$(1)
  217. PRINT
  218. INPUT "Default or custom settings? ", choice$
  219. choice$ = UCASE$(choice$)
  220. IF choice$ = "CUSTOM" THEN
  221.     PRINT
  222.     PRINT "Color Table"
  223.     PRINT "-----------"
  224.     FOR x = 1 TO 15
  225.         COLOR x
  226.         PRINT x; " ²"
  227.     NEXT x
  228.     COLOR 14
  229.     PRINT
  230.     INPUT "Enter the name of Player 1: ", player1$
  231.     INPUT "Enter the name of Player 2: ", player2$
  232.     INPUT "Enter the character the ball will be made of: ", ball$
  233.     INPUT "Enter the characters the paddles will be made of: ", paddles$
  234.     INPUT "Enter the speed of the ball. Bigger = Slower. (1-100): ", speed
  235.     IF speed < 1 OR speed > 100 THEN
  236.         INPUT "Not in the range of possible speeds. Enter speed again: ", speed
  237.     END IF
  238.     INPUT "Enter the color of paddle 1: ", paddlecolor1
  239.     IF paddlecolor1 < 1 OR paddlecolor1 > 15 THEN
  240.         INPUT "Not in the range of possible colors. Enter color again: ", paddlecolor1
  241.     END IF
  242.     INPUT "Enter the color of paddle 2: ", paddlecolor2
  243.     IF paddlecolor2 < 1 OR paddlecolor2 > 15 THEN
  244.         INPUT "Not in the range of possible colors. Enter color again: ", paddlecolor2
  245.     END IF
  246.     INPUT "Enter the color of the ball: ", ballcolor
  247.     IF ballcolor < 1 OR ballcolor > 15 THEN
  248.         INPUT "Not in the range of possible colors. Enter color again: ", ballcolor
  249.     END IF
  250.     INPUT "Enter the color of the border: ", bordercolor
  251.     IF bordercolor < 1 OR bordercolor > 15 THEN
  252.         INPUT "Not in the range of possible colors. Enter color again: ", bordercolor
  253.     END IF
  254. ELSE
  255.     player1$ = "Player 1"
  256.     player2$ = "Player 2"
  257.     ball$ = "0"
  258.     paddles$ = "²"
  259.     speed = 75
  260.     paddlecolor1 = 12
  261.     paddlecolor2 = 9
  262.     ballcolor = 14
  263.     bordercolor = 8
  264. END IF
  265.  
  266. END SUB
  267.  
  268. SUB paddle (pr, pc, paddles$, length, CLR)
  269.  
  270. FOR x = pr TO pr + length
  271.     LOCATE x, pc
  272.     PRINT paddles$
  273. NEXT x
  274.  
  275. END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement