I am trying to write a Cows and Bulls game on my own. Since yesterday I am getting an IndexError: list index out of range
error and I can't figure out what is wrong. I know there are better solutions, but can anyone review my code?
import random
#randomly generate 4 digitnumber
#asked the user to guess the number
#every digit gussed in the correct place they gave a "cow"
#every digit guessed correctly you get the "bull"
#one the user guessed the correct number game is over
#7 trials
def play_bull_and_cow(random_number, guess_number):
users_number = [int(x) for x in str(guess_number)]
trials = 7
while trials > 0:
if random_number == users_number:
trials -=1
return "you won, congratulations"
break
else:
bull = 0
cow = 0
for i in range(len(random_number)):
if users_number[i] == random_number[i]:
bull += 1
random_number.pop(i)
users_number.pop(i)
random_number = random_number
users_number = users_number
trials -= 1
continue
elif users_number[i] in random_number:
cow +=1
trials -=1
continue
else:
return "you have not guessed anything try again"
random_number = random.sample(range(1, 10), 4)
print(random_number)
guess_number = int(input("enter the 4 digit number: "))
print(play_bull_and_cow(random_number, guess_number))
output:
[5, 2, 3, 8]
enter the 4 digit number: 5237
Traceback (most recent call last):
File "C:\Users\Luiza\Desktop\try_to_understand.py", line 41, in <module>
print(play_bull_and_cow(random_number, guess_number))
File "C:\Users\Luiza\Desktop\try_to_understand.py", line 23, in play_bull_and_cow
if users_number[i] == random_number[i]:
IndexError: list index out of range