generated from mwc/lab_dice
Modified dice_stats.py to fix a bug in 3+4 of kind
Found an error where self.faces().sort() was syntacticly correct, at least I think it is, but wasn't actually generating my sorted list. Storing the faces returned list as a variable and then sorting the list stored in the variable did work reliably.
This commit is contained in:
parent
19cd2472c8
commit
0f68ab5afd
|
@ -19,22 +19,36 @@ class FiveDice:
|
|||
return False
|
||||
return True
|
||||
|
||||
def different_three_of_a_kind(self):
|
||||
listOfFaceValues = self.faces()
|
||||
maxCount = 0
|
||||
for value in listOfFaceValues:
|
||||
count = listOfFaceValues.count(value)
|
||||
if count >= maxCount:
|
||||
maxCount = count
|
||||
if maxCount >= 3:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def is_three_of_a_kind(self):
|
||||
self.faces().sort()
|
||||
if self.faces()[0] == self.faces()[1] and self.faces()[0] == self.faces()[2] and self.faces()[0] != self.faces()[3]:
|
||||
listOfFaces = self.faces()
|
||||
listOfFaces.sort()
|
||||
if listOfFaces[0] == listOfFaces[1] and listOfFaces[0] == listOfFaces[2]:
|
||||
return True
|
||||
elif self.faces()[1] == self.faces()[2] and self.faces()[1] == self.faces()[3] and self.faces()[1] != self.faces()[4]:
|
||||
elif listOfFaces[1] == listOfFaces[2] and listOfFaces[1] == listOfFaces[3]:
|
||||
return True
|
||||
elif self.faces()[2] == self.faces()[3] and self.faces()[2] == self.faces()[4]:
|
||||
elif listOfFaces[2] == listOfFaces[3] and listOfFaces[2] == listOfFaces[4]:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def is_four_of_a_kind(self):
|
||||
self.faces().sort()
|
||||
if self.faces()[0] != self.faces()[4] and self.faces()[0] == self.faces()[1] and self.faces()[0] == self.faces()[2] and self.faces()[0] == self.faces()[3]:
|
||||
listOfFaces = self.faces()
|
||||
listOfFaces.sort()
|
||||
if listOfFaces[0] == listOfFaces[1] and listOfFaces[0] == listOfFaces[2] and listOfFaces[0] == listOfFaces[3]:
|
||||
return True
|
||||
elif self.faces()[0] != self.faces()[1] and self.faces()[1] == self.faces()[2] and self.faces()[1] == self.faces()[3] and self.faces()[1] == self.faces()[4]:
|
||||
elif listOfFaces[1] == listOfFaces[2] and listOfFaces[1] == listOfFaces[3] and listOfFaces[1] == listOfFaces[4]:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
@ -44,7 +58,7 @@ successes = 0
|
|||
trials = 1000000
|
||||
for trial in tqdm(range(trials)):
|
||||
dice.roll()
|
||||
if dice.is_four_of_a_kind():
|
||||
if dice.is_three_of_a_kind():
|
||||
successes += 1
|
||||
|
||||
print(successes/trials)
|
||||
|
|
Loading…
Reference in New Issue