Skip to content

Commit d7bff27

Browse files
authored
Merge pull request #143 from DeepNinja07x/DeepNinja07x-patch-2
Add files via upload
2 parents 5ca558a + 3e50fea commit d7bff27

12 files changed

+1196
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Python Rolling Dice Simulation
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from graphics import *
2+
3+
4+
class Button:
5+
"""activated() and deactivated() and clicked(p) is a method that returns if the user pressed within the required area"""
6+
7+
def __init__(self, win, center, width, height, label):
8+
"""Create rectangular button e.g qb=Button(myWin,centerPoint,width,height,'Quit')"""
9+
w, h = width / 2.0, height / 2.0
10+
x, y = center.getX(), center.getY()
11+
12+
self.xmax, self.xmin = x + w, x - w
13+
self.ymax, self.ymin = y + h, y - h
14+
15+
p1 = Point(self.xmin, self.ymin)
16+
p2 = Point(self.xmax, self.ymax)
17+
18+
self.rect = Rectangle(p1, p2)
19+
self.rect.setFill("lightgrey")
20+
self.rect.draw(win)
21+
self.label = Text(center, label)
22+
self.label.draw(win)
23+
self.deactivate()
24+
25+
def clicked(self, p):
26+
"""return true if active and inside p"""
27+
return (
28+
self.active
29+
and self.xmin <= p.getX() <= self.xmax
30+
and self.ymin <= p.getY() <= self.ymax
31+
) # use return when you change an already set variable/variables
32+
33+
def getLabel(self):
34+
"""label of the string"""
35+
return self.label.getText() # here as well
36+
37+
def activate(self):
38+
"""sets button to active"""
39+
self.label.setFill("black")
40+
self.rect.setWidth(2)
41+
self.active = True
42+
43+
def deactivate(self):
44+
"""sets button to unactive"""
45+
self.label.setFill("darkgray")
46+
self.rect.setWidth(1)
47+
self.active = False
48+
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
from graphics import *
2+
3+
4+
class DieView:
5+
# shows graphical representation of a 6 sided dice
6+
def __init__(self, win, center, size):
7+
# create a view of the die e.g. d1=DieView(myWin,Point(40,50),20) its centered at 40,50 and length of 20
8+
self.win = win
9+
self.background = "white" # color of face
10+
self.foreground = "black" # Thats for the pips
11+
self.psize = 0.1 * size # radius of each pip
12+
hsize = size / 2.0 # size of die
13+
offset = 0.6 * hsize # distance from center to other pips
14+
cx, cy = center.getX(), center.getY()
15+
p1 = Point(cx - hsize, cy - hsize)
16+
p2 = Point(cx + hsize, cy + hsize)
17+
rect = Rectangle(p1, p2)
18+
rect.draw(win)
19+
rect.setFill(self.background)
20+
21+
# create 7 circles
22+
self.pip1 = self.__makePip(cx - offset, cy - offset)
23+
self.pip2 = self.__makePip(cx - offset, cy)
24+
self.pip3 = self.__makePip(cx - offset, cy + offset)
25+
self.pip4 = self.__makePip(cx, cy)
26+
self.pip5 = self.__makePip(cx + offset, cy - offset)
27+
self.pip6 = self.__makePip(cx + offset, cy)
28+
self.pip7 = self.__makePip(cx + offset, cy + offset)
29+
30+
# draw an initial value
31+
self.setValue(1)
32+
33+
def __makePip(self, x, y):
34+
# Internal helper method to draw a pip at (x,y)
35+
pip = Circle(Point(x, y), self.psize)
36+
pip.setFill(self.background)
37+
pip.setOutline(self.background)
38+
pip.draw(self.win)
39+
return pip
40+
41+
def setValue(self, value):
42+
# set this to display value
43+
# turn all pips off
44+
self.pip1.setFill(self.background)
45+
self.pip2.setFill(self.background)
46+
self.pip3.setFill(self.background)
47+
self.pip4.setFill(self.background)
48+
self.pip5.setFill(self.background)
49+
self.pip6.setFill(self.background)
50+
self.pip7.setFill(self.background)
51+
52+
# turn correct pips on
53+
if value == 1:
54+
self.pip4.setFill(self.foreground)
55+
elif value == 2:
56+
self.pip1.setFill(self.foreground)
57+
self.pip7.setFill(self.foreground)
58+
elif value == 3:
59+
self.pip1.setFill(self.foreground)
60+
self.pip7.setFill(self.foreground)
61+
self.pip4.setFill(self.foreground)
62+
elif value == 4:
63+
self.pip1.setFill(self.foreground)
64+
self.pip3.setFill(self.foreground)
65+
self.pip5.setFill(self.foreground)
66+
self.pip7.setFill(self.foreground)
67+
elif value == 5:
68+
self.pip1.setFill(self.foreground)
69+
self.pip3.setFill(self.foreground)
70+
self.pip4.setFill(self.foreground)
71+
self.pip5.setFill(self.foreground)
72+
self.pip7.setFill(self.foreground)
73+
else:
74+
self.pip1.setFill(self.foreground)
75+
self.pip2.setFill(self.foreground)
76+
self.pip3.setFill(self.foreground)
77+
self.pip4.setFill(self.foreground)
78+
self.pip5.setFill(self.foreground)
79+
self.pip7.setFill(self.foreground)
80+

0 commit comments

Comments
 (0)