You are on page 1of 3

#written and designed by Cullin Tripp

import random
def choose_questions():
x = random.sample(xrange(0,5),4)
return x
def check_list(x,list1):
if len(list1) == 1:
if x == list1[0]:
return 0
else:
return 1
if len(list1) == 2:
if x == list1[0]:
return 0
elif x == list1[1]:
return 0
else:
return 1
if len(list1) == 3:
if x == list1[0]:
return 0
elif x == list1[1]:
return 0
elif x == list1[2]:
return 0
else:
return 1
all_numbers = []
count = 0
while count < 50:
all_numbers.append(count + 1)
count = count + 1
odd_numbers = []
even_numbers = []
for i in all_numbers:
if i % 2 == 0:
even_numbers.append(i)
else:
odd_numbers.append(i)

prime_numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
non_prime_numbers = list(set(all_numbers) - set(prime_numbers))
n_3 = []
divisible_by_3 = []
for i in all_numbers:
if i % 3 == 0:
divisible_by_3.append(i)
else:
n_3.append(i)

greater_than_25 = []
less_than_25 = []
for i in all_numbers:
if i >= 25:
less_than_25.append(i)
else:
greater_than_25.append(i)
n_5 = []
divisible_by_5 = []
for i in all_numbers:
if i % 5 == 0:
divisible_by_5.append(i)
else:
n_5.append(i)
college_basketball =[1,2,3,4,5,10,11,12,13,14,15,20,21,22,23,24,25,30,31,32,33,3
4,35,40,41,42,43,44,45,50]
n_cb = list(set(all_numbers) - set(college_basketball))
print "Think of a number between 1 and 50..."
number = int(raw_input("> "))
print "Nice! I get 4 questions, after which, I get 3 guesses!"
q_list = ["Is the number even? ", "Is the number prime? ", "Is the number divisi
ble by 3? ", "Is it less than or equal to 25? ", "Can it be used for a jersey nu
mber in college basketball?", "Is the number divisible by 5?"]
random_slots = choose_questions()
#print "Random slots:",random_slots
final_questions = []
for i in random_slots:
final_questions.append(q_list[i])
guess_list = all_numbers
for i in range(0,4):
print final_questions[i]
response = raw_input("(y/n) ")
if random_slots[i] == 0:
if response == 'y':
#remove odds
guess_list = list(set(guess_list) - set(odd_numbers))
else:
#remove evens
guess_list = list(set(guess_list) - set(even_numbers))
elif random_slots[i] == 1:
if response == 'y':
#remove non-prime numbers
guess_list = list(set(guess_list) - set(non_prime_number
s))
else:
#remove prime numbers
guess_list = list(set(guess_list) - set(prime_numbers))
elif random_slots[i] == 2:

if response == 'y':
#remove numbers not divisible by 3
guess_list = list(set(guess_list) - set(n_3))
else:
#remove numbers divisible by 3
guess_list = list(set(guess_list) - set(divisible_by_3))
elif random_slots[i] == 3:
if response == 'y':
#remove numbers less than or equal to 50
guess_list = list(set(guess_list) - set(less_than_25))
else:
#remove numbers greater than 50
guess_list = list(set(guess_list) - set(greater_than_25)
)
elif random_slots[i] == 4:
if response == 'y':
#remove non-jersey numbers
guess_list = list(set(guess_list) - set(n_cb))
else:
#remove jersey numbers
guess_list = list(set(guess_list) - set(college_basketba
ll))
elif random_slots[i] == 5:
if response == 'y':
#remove numbers not divisible by 5
guess_list = list(set(guess_list) - set(n_5))
else:
#remove numbers divisible by 5
guess_list = list(set(guess_list) - set(divisible_by_5))
else:
pass
#guess = guess_list[random.randint(0,len(guess_list) - 1)]
guess = []
if len(guess_list) >= 3:
x = 3.00
guess = random.sample(set(guess_list),3)
elif len(guess_list) > 1 and len(guess_list) < 3:
x = 2.00
guess = random.sample(set(guess_list),2)
else:
x = 1.00
guess = random.sample(set(guess_list),1)
percentage = (x / (len(guess_list))) * 100.00
print "Likelihood of correct answer: %.2f" % percentage,"%"
for i in guess:
if i == number:
print "My guess is %d..." % i
print "Yes! I was correct! It was %d!" % number
exit()
else:
print "Incorrect guess: %d" % i
print "Whoops...you actually picked %d..." % number

You might also like