forked from Mujju-palaan/Python3Programming--Coursera
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcourse_4_project.py
More file actions
63 lines (59 loc) · 2.13 KB
/
course_4_project.py
File metadata and controls
63 lines (59 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
VOWEL_COST = 250
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
VOWELS = 'AEIOU'
# Write the WOFPlayer class definition (part A) here
class WOFPlayer():
def __init__(self, initName):
self.name = initName
self.prizeMoney = 0
self.prizes = []
def goBankrupt(self):
self.prizeMoney = 0
def addPrize(self, prize):
self.prizes.append(prize)
def addMoney(self,amt):
self.prizeMoney = self.prizeMoney + amt
def __str__(self):
state = self.name + " ($" + str(self.prizeMoney) + ")"
return state
# Write the WOFHumanPlayer class definition (part B) here
class WOFHumanPlayer(WOFPlayer):
def getMove(category, obscuredPhrase, guessed):
str = input(self.name + "has $"+ str(self.prizeMoney)+ "/n" + ", Category:" + category + "/n" + ", Phrases:" + "/n" + obscuredPhrase + "/n" + ", Guessed:" + guessed + "/n" + "Guess a letter, phrase, or type 'exit' or 'pass':")
print(str)
# Write the WOFComputerPlayer class definition (part C) here
class WOFComputerPlayer(WOFPlayer):
SORTED_FREQUENCIES = 'ZQXJKVBPYGFWMUCLDRHSNIOATE'
prizemoney = 0
def __init__(self, name, difficulty):
self.name = name
self.difficulty = difficulty
self.prizeMoney = 0
self.prizes = []
def smartCoinFlip(self):
if random.randint(1, 10) > self.difficulty:
return True
else:
return False
def getPossibleLetters(self, guessed):
list = []
if self.prizemoney >= 250:
for l in LETTERS:
list.append(l)
else:
for l in LETTERS:
if l not in VOWELS:
list.append(l)
return list
def getMove(self, category, obscuredPhrase, guessed):
list = self.getPossibleLetters(guessed)
FlipResult = self.smartCoinFlip()
if len(list) == 0:
return 'pass'
else:
if FlipResult==True:
for l in self.SORTED_FREQUENCIES:
if l in list:
return l
elif FlipResult==False:
return random.choice(list)