Это мой код для игры, в которой компьютер должен угадать определенный пользователем номер в заданном диапазоне. Это вызов из курса/книги для начинающих.Компьютер угадывает выбранный пользователем номер в пределах определенного диапазона
Я хотел бы обратить ваше внимание на функцию computerGuess(). Я думаю, что должен быть более красноречивый способ добиться того же результата? То, что я смотрю на меня, как на работу!
Назначение функции - вернуть средний элемент в списке (отсюда среднее число в диапазоне номеров, из которого выбирается компьютер). 0.5 в переменном переменной «index» я добавил, потому что в противном случае происходит преобразование из float-int, число будет округлено.
Спасибо.
Код:
# Computer Number Guesser
# By Dave
# The user must pick a number (1-100) and the computer attempts to guess
# it in as few attempts as possible
print("Welcome to the guessing game, where I, the computer, must guess your\
number!\n")
print("You must select a number between 1 and 100.")
number = 0
while number not in range(1, 101):
number = int(input("\nChoose your number: "))
computerNumber = 0
computerGuesses = 0
higherOrLower = ""
lowerNumber = 1
higherNumber = 101
def computerGuess(lowerNumber, higherNumber):
numberList = []
for i in range(lowerNumber, higherNumber):
numberList.append(i)
index = int((len(numberList)/2 + 0.5) -1)
middleValue = numberList[index]
return middleValue
while higherOrLower != "c":
if computerGuesses == 0:
computerNumber = computerGuess(lowerNumber, higherNumber)
elif higherOrLower == "l":
higherNumber = computerNumber
computerNumber = computerGuess(lowerNumber, higherNumber)
elif higherOrLower == "h":
lowerNumber = computerNumber + 1
computerNumber = computerGuess(lowerNumber, higherNumber)
print("\nThankyou. My guess is {}.".format(computerNumber))
computerGuesses += 1
higherOrLower = input("\nHow did I do? If this is correct, enter\
'c'. If your number is higher, enter 'h'. If it is lower, enter 'l': ")
print("\nHaha! I got it in {} attempt(s)! How great am I?".format\
(computerGuesses))
input("\n\nPress the enter key to exit.")
Поскольку вы просите более элегантный способ достижения своей цели, этот вопрос будет более уместным для сайта обзора кода, а не для этого. –
Это, вероятно, принадлежит сайту [code review] (http://codereview.stackexchange.com/). –
Это может быть по теме для обзора кода Stack Exchange, предполагая, что ** A) ** работает код ** и B) ** это не гипотетично или не является каким-либо образом – Quill