Вам нужно понять, как работают циклы while, например:
a = 5
while a == 5:
a = 6
print('done')
Вывод:
done
Условие, которое мы задали while l oop, сообщает ему, когда чтобы остановить цикл, но python должен сначала снова достичь условия для сравнения, что означает, что пока нет оператора break, python сначала завершит sh текущий l oop. Но в вашем коде, из-за другого while l oop, в котором l oop никогда не заканчивается, мы никогда не давали python возможности сравнить это состояние игры.
game = True
while game == True:
shop = False
while shop == False:
choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
if choice == "E" or choice == "e":
game = False
Чтобы исправить это , просто добавьте оператор break после game = False:
if choice == "E" or choice == "e":
game = False
break