-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDealOrNoDeal.py
More file actions
149 lines (117 loc) · 4.49 KB
/
DealOrNoDeal.py
File metadata and controls
149 lines (117 loc) · 4.49 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
"""
==============================================
Deal or No Deal v1.0
By Lachlan Evans
==============================================
Libraries
"""
import random
import sys
'''
Core Game Variables
availableCases: Array of numeric (dollar) values of the cases
selectedCases: An array storing the list of selected cases (integer value)
availableCasesCount: The amount of cases to pick from.
'''
allCaseValues = [
.50, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750,
1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000,
50000, 75000, 100000, 20000
]
displayValues = [
.50, 1, 2, 5, 10, 20, 50, 100, 150, 200, 250, 500, 750,
1000, 2000, 3000, 4000, 5000, 10000, 15000, 20000,
50000, 75000, 100000, 20000
]
selectedCases = []
yourCaseValue = None
available_cases_count = len(allCaseValues)
'''
Main Program
'''
def main():
global yourCaseValue
global available_cases_count
random.shuffle(allCaseValues)
'''
Case Selection
'''
while yourCaseValue is None:
try:
user_case_number = int(input(
"Hello and welcome to deal or no deal, please choose a case between 1, %s: " % available_cases_count))
if 1 <= user_case_number <= available_cases_count:
print("Case %s selected." % user_case_number)
yourCaseValue = allCaseValues[user_case_number - 1]
allCaseValues.remove(yourCaseValue)
selectedCases.append(user_case_number)
else:
print("Please enter a valid case number.")
except ValueError:
print("Please enter a valid case number.")
'''
Iteration until no more cases can be opened
'''
case_open_count = 0
while len(allCaseValues) > 0:
if len(allCaseValues) > 1:
try:
print("")
print("Available Cases: %s " % get_available_cases())
selected_case_number = int(input("Please select a case to open: "))
print("")
if 1 <= selected_case_number <= available_cases_count:
if selected_case_number in selectedCases:
print("This case has already been selected.")
else:
selectedCases.append(selected_case_number)
selected_case_value = allCaseValues.pop(0)
displayValues.remove(selected_case_value)
print(
"You have selected case %s, it contains $%s" % (selected_case_number, selected_case_value))
case_open_count += 1
if case_open_count >= 3:
execute_banker()
case_open_count = 0
else:
print("This case is not valid.")
except ValueError:
print("Please enter a valid case number")
else:
print(sorted(displayValues))
stay_switch = False
while not stay_switch:
prompt_result = str(input("Would you like to switch or stay?").lower())
if prompt_result == 'stay':
print("You have won $%s" % yourCaseValue)
stay_switch = True
elif prompt_result == 'switch':
print("You have won $%s" % str(allCaseValues[0]))
stay_switch = True
else:
print("Please enter switch or stay only!")
sys.exit(0)
'''
Returns a list of possible cases
'''
def get_available_cases():
available_cases = []
for caseNumber in range(1, available_cases_count + 1):
if caseNumber not in selectedCases:
available_cases.append(caseNumber)
return available_cases
'''
Executes the banker function
'''
def execute_banker():
print("[===== BANKER CALLS =====]")
available_cases = get_available_cases()
offer = round(sum(allCaseValues) / len(available_cases))
print(sorted(displayValues))
print("The banker has offered $%s" % offer)
response = str(input("Deal Or No Deal?").lower())
if response == 'deal':
print("You would have one: $%s" % yourCaseValue)
print("You have won $%s" % offer)
sys.exit(0)
main()