• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Mar 25th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. from graphics import *
2. import math
3. import random
4.
5. def centerOfWheels(win, w1, w2, w3):
6.     # gets the center of each wheel
7.     w1Center = w1.getCenter()
8.     w2Center = w2.getCenter()
9.     w3Center = w3.getCenter()
10.     return w1Center, w2Center, w3Center
11.
12.
13. def isClickInSpin(p):
14.     spinCenter = Point(325, 150) # center of the spin button
15.
16.     # finds the distance of the circle
17.     dist = math.sqrt(abs((p.getX() - spinCenter.getX()) ** 2 -
18.                          (p.getY() - spinCenter.getY()) ** 2))
19.
20.     if dist > 55: # distance is outside the radius of the circle
21.         return False
22.     else:
23.         return True # distance is within the radius of the circle
24.
25.
26. def spinButton(p, win):
27.     while (not (isClickInSpin(p))): # user clicked outside of spin button
28.         p = win.getMouse()
29.         return False
30.     if isClickInSpin(p): # user clicked inside the spin button
31.         return True
32.
33. def drawBackground(win):
34.     # draws the spin button
35.     spin = Rectangle(Point(365, 160), Point(275,130))
36.     spin.draw(win)
37.     spinText = Text(Point(320, 145), "Spin!")
38.     spinText.draw(win)
39.
40.     # draws the 3 wheels of the slot machine. w1, w2, and w3, the first, second
41.     # and third wheel, respectively
42.     w1 = Rectangle(Point(105, 340), Point(248, 200))
43.     w1.draw(win)
44.     w2 = Rectangle(Point(252, 340), Point(390, 200))
45.     w2.draw(win)
46.     w3 = Rectangle(Point(394, 340), Point(530, 200))
47.     w3.draw(win)
48.
49.     return w1, w2, w3
50.
51. def createShapes(win, w1Center, w2Center, w3Center):
52.     # first wheel's square, circle, and triangle
53.     w11 = Rectangle(Point(145, 299), Point(204, 241))
54.     w11.setFill("blue")
55.     w12 = Circle(w1Center, 35)
56.     w12.setFill("red")
57.     w13 = Polygon(Point(171, 299), Point(145, 241), Point(204, 241))
58.     w13.setFill("cyan")
59.
60.     # second wheel's square, circle, and triangle
61.     w21 = Rectangle(Point(288, 299), Point(345, 241))
62.     w21.setFill("blue")
63.     w22 = Circle(w2Center, 35)
64.     w22.setFill("red")
65.     w23 = Polygon(Point(315, 299), Point(287, 241), Point(345, 241))
66.     w23.setFill("cyan")
67.
68.     # third wheel's square, circle, and triangle
69.     w31 = Rectangle(Point(430, 299), Point(489, 241))
70.     w31.setFill("blue")
71.     w32 = Circle(w3Center, 35)
72.     w32.setFill("red")
73.     w33 = Polygon(Point(456, 299), Point(430, 241), Point(489, 241))
74.     w33.setFill("cyan")
75.     return w11, w12, w13, w21, w22, w23, w31, w32, w33
76.
77. def pickW1Shape(win, w11, w12, w13):
78.     # generates a random number for the shape, w1ShapeNum, from 0 to 2
79.     w1ShapeNum = random.randrange(3)
80.     if (w1ShapeNum == 0):
81.         w1shape = w11 # wheel is a square
82.     if (w1ShapeNum == 1):
83.         w1shape = w12 # wheel is a circle
84.     if (w1ShapeNum == 2):
85.         w1shape = w13 # wheel is a triangle
86.
87.     return w1shape      # was badly indented
88.
89. def pickW2Shape(win, w21, w22, w23):
90. # generates a random number for the shape, w2ShapeNum, from 0 to 2
91.     w2ShapeNum = random.randrange(3)
92.     if (w2ShapeNum == 0):
93.         w2shape = w21 # wheel is a square
94.     if (w2ShapeNum == 1):
95.         w2shape = w22 # wheel is a circle
96.     if (w2ShapeNum == 2):
97.         w2shape = w23 # wheel is a triangle
98.
99.     return w2shape      # was badly indented
100.
101. def pickW3Shape(win, w31, w32, w33):
102. # generates a random number for the shape, w3ShapeNum, from 0 to 2
103.     w3ShapeNum = random.randrange(3)
104.     if (w3ShapeNum == 0):
105.         w3shape = w31 # wheel is a square
106.     if (w3ShapeNum == 1):
107.         w3shape = w32 # wheel is a circle
108.     if (w3ShapeNum == 2):
109.         w3shape = w33 # wheel is a triangle
110.
111.     return w3shape      # was badly indented
112.
113. def undrawShapes(win, w1shape, w2shape, w3shape):
114.     w1shape = w1shape.undraw()
115.     w2shape = w2shape.undraw()
116.     w3shape = w3shape.undraw()
117.     return w1shape, w2shape, w3shape
118.
119. def drawShapes(win, w1shape, w2shape, w3shape):
120.     w1shape = w1shape.draw(win)
121.     w2shape = w2shape.draw(win)
122.     w3shape = w3shape.draw(win)
123.     return w1shape, w2shape, w3shape
124.
125. def main():
126.     # draws the main display window
127.     win = GraphWin("Jackpot!", 550, 450)
128.     win.setCoords(0, 0, 650, 450)
129.
130.     w1, w2, w3 = drawBackground(win)
131.     w1Center, w2Center, w3Center = centerOfWheels(win, w1, w2, w3)
132.     w11, w12, w13, w21, w22, w23, w31, w32, w33 = createShapes(win, w1Center, w2Center, w3Center)
133.
134.     # pick random shapes
135.     w1shape = pickW1Shape(win, w11, w12, w13)
136.     w2shape = pickW2Shape(win, w21, w22, w23)
137.     w3shape = pickW3Shape(win, w31, w32, w31)
138.
139.     # draw picked shapes
140.     drawShapes(win, w1shape, w2shape, w3shape)
141.
142.     # lines below here badly indented
143.     while (1):
144.         p = win.getMouse() # player's mouse click
145.
146.         if spinButton(p, win): # checks whether the click is valid
147.             undrawShapes(win, w1shape, w2shape, w3shape)
148.             w1shape = pickW1Shape(win, w11, w12, w13)
149.             w2shape = pickW2Shape(win, w21, w22, w23)
150.             w3shape = pickW3Shape(win, w31, w32, w31)
151.
152.         drawShapes(win, w1shape, w2shape, w3shape)
153.     #    win.getMouse() # wait for user click  DOESN'T APPEAR TO BE NEEDED?
154.     # lines above here badly indented
155.
156. main()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top