Я знаю, что я повторно разместил вопрос, похожий, но я изменил код, и у меня возникли проблемы с угадыванием высокого или низкого уровня. Когда я получаю вывод, он уходит после третьего предположения и дает большее число или даже меньшее число, чем раньше. мой номер 8, и он угадает 12, и я говорю его Высокий и дает 25 в качестве следующего предположения. Как я могу это исправить? Как подсчитать количество догадок, потому что это не считается?Угадайте игру для comupter, фиксируя высокие или низкие номера
from random import randint
def computer_guess(num):
low = 1
high = 100
newGuess = 0
guess = randint(1,100)
while guess != num:
newGuess = randint(low,high)
print("The computer takes a guess...", newGuess)
ans = input("Is the number L for low, H for High, or C for correct? ")
if (ans == "H" or ans == "h"):
if(high/2 > num):
high = high/2
else:
high = high-1
elif (ans == "L" or ans == "l"):
if(low*2 < num):
low = low*2
else:
low = low +1
elif (ans == "C" or ans == "c"):
ans = "Correct"
guess = num;
print(str(high) + "|" + str(low) + "|" + str(newGuess))
print("The computer guessed", guess, "and it was correct!")
print(" I computron won the battle")
def main():
num = 0
print("I am computron, I accept your guessing game!")
num = int(input("\n\nChoose a number for the computer to guess: "))
if num < 1 or num > 100:
print("Must be in range [1, 100]")
else:
computer_guess(num)
print("guesses count: " + str(num))
play_again = input("would you like to play again(yes or no)? ")
if play_again == "yes" or play_again == "y" or play_again == "Y":
main()
if play_again == "no" or play_again == "n" or play_again == "N":
exit()
if __name__ == '__main__':
main()
спасибо! Он исправил проблему. Что я могу сделать для счета? – get2thechopper
Установите счетчик. Объявите переменную int перед циклом while и установите ее в 0. После этого каждый цикл в начале добавит 1 к переменной, выполнив (например, если переменная i): i + = 1. Вы можете также функция возвращает значение подсчета, и вы можете печатать в main() или просто распечатывать ее после выигрыша в функции. – MLavrentyev
Хорошо, спасибо за руководство и сделаем! – get2thechopper