import random
game_array1 = [n for n in range (1000, 10000)]
game_array2 = []
BullsCounter = 0
CowsCounter = 0
rndm = str(random.choice(game_array1))
print(rndm)
BullsCows=str(input())
for element in game_array1:
for x in range(4):
if str(game_array1[element-1000])[x] == rndm[x]:
BullsCounter += 1
for y in range(4):
if (str(game_array1[element-1000])[x] == rndm[y] and x!=y) :
CowsCounter += 1
if BullsCounter == int(BullsCows[0]) and CowsCounter == int(BullsCows[1]):
game_array2.append(game_array1[element-1000])
BullsCounter = 0
CowsCounter = 0
print(game_array2)
Занят я логической игрой. Называется быки-коровы. Юзер программы загадывает любое 4значное число, а программа должна его отгадать. Как? Сейчас расскажу. Первым выводом программы - у меня это число rndm - является любое число из массива. Пользователь же должен ввести 2значное число, первая цифра которой - количество полных совпадений загаданного числа с rndm - то есть одинаковые цифры стоят на одинаковом месте, а вторая цифра - количество неполных совпадений, то есть цифры одинаковые, но, зараза, на разных местах стоят. При этом если есть такие совпадения, как, например, rndm = __9_, а мы загадали _99_, считается только "бык" - 3 цифра числа, вторая в пролете.
Так о чем я. Мною написанный кусок кода почему-то решил на время забыть, что существуют коровы, и выводит совпадения только по быкам.
ПРИМЕЧАНИЕ. Сейчас я сделал только первый проход через элементы массива 1000..10000, знаю, цикл замучу опосля. Не могли бы Вы написать, в чём проблема кода?