• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Mar 25th, 2019 52 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.
90. def pickW2Shape(win, w21, w22, w23):
91. # generates a random number for the shape, w2ShapeNum, from 0 to 2
92.     w2ShapeNum = random.randrange(3)
93.     if (w2ShapeNum == 0):
94.         w2shape = w21 # wheel is a square
95.     if (w2ShapeNum == 1):
96.         w2shape = w22 # wheel is a circle
97.     if (w2ShapeNum == 2):
98.         w2shape = w23 # wheel is a triangle
99.
100.     return w2shape      # was badly indented
101.
102. def pickW3Shape(win, w31, w32, w33):
103. # generates a random number for the shape, w3ShapeNum, from 0 to 2
104.     w3ShapeNum = random.randrange(3)
105.     if (w3ShapeNum == 0):
106.         w3shape = w31 # wheel is a square
107.     if (w3ShapeNum == 1):
108.         w3shape = w32 # wheel is a circle
109.     if (w3ShapeNum == 2):
110.         w3shape = w33 # wheel is a triangle
111.
112.     return w3shape      # was badly indented
113.
114. def undrawShapes(win, w1shape, w2shape, w3shape):
115.     w1shape = w1shape.undraw()
116.     w2shape = w2shape.undraw()
117.     w3shape = w3shape.undraw()
118.     return w1shape, w2shape, w3shape
119.
120. def drawShapes(win, w1shape, w2shape, w3shape):
121.     w1shape = w1shape.draw(win)
122.     w2shape = w2shape.draw(win)
123.     w3shape = w3shape.draw(win)
124.     return w1shape, w2shape, w3shape
125.
126. def main():
127.     # draws the main display window
128.     win = GraphWin("Jackpot!", 550, 450)
129.     win.setCoords(0, 0, 650, 450)
130.
131.     w1, w2, w3 = drawBackground(win)
132.     w1Center, w2Center, w3Center = centerOfWheels(win, w1, w2, w3)
133.     w11, w12, w13, w21, w22, w23, w31, w32, w33 = createShapes(win, w1Center, w2Center, w3Center)
134.
135.     # pick random shapes
136.     w1shape = pickW1Shape(win, w11, w12, w13)
137.     w2shape = pickW2Shape(win, w21, w22, w23)
138.     w3shape = pickW3Shape(win, w31, w32, w31)
139.
140.     # draw picked shapes
141.     drawShapes(win, w1shape, w2shape, w3shape)
142.
143.     # lines below here badly indented
144.     while (1):
145.         p = win.getMouse() # player's mouse click
146.
147.         if spinButton(p, win): # checks whether the click is valid
148.             undrawShapes(win, w1shape, w2shape, w3shape)
149.             w1shape = pickW1Shape(win, w11, w12, w13)
150.             w2shape = pickW2Shape(win, w21, w22, w23)
151.             w3shape = pickW3Shape(win, w31, w32, w31)
152.
153.     drawShapes(win, w1shape, w2shape, w3shape)
154.     win.getMouse() # wait for user click
155.     # lines above here badly indented
156.
157. 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