¿Cómo se escribe un código Python que produzca un número aleatorio y limite la cantidad de conjeturas para encontrarlo?

programación


El código está destinado a poder producir un número aleatorio e indicarle si está por encima o por debajo. Quiero poder limitar la cantidad de conjeturas que se hacen para encontrarlo.

Pitón
import random
MAX_NUM = 100
max_tries_allowed = 10
print("\tWelcome to 'Guess My Number !'")
print(f"\nI'm thinking of a number between 1 and {MAX_NUM}")
print("Try to guess it in as few attempts as possible. \n")
# Set the initial values
the_number = random.randrange(MAX_NUM) + 1
guess = None
tries = 0
#guessing loop
while (guess != the_number):
 guess = int(input("Take a guess: "))
 if (tries == max_tries_allowed):
  print("You lose")
 elif (guess > the_number):
   print("Lower...")
 else:
   print("Higher...")
 tries += 1
print("You guessed it! The number was ", the_number)
print("And it only took you ",tries, " tries!\n")
input("\n\nPress the Enter key to exit")

Lo que he probado:

Soy un codificador principiante pero tengo el programa base para funcionar, pero lo único que no funciona es la cantidad limitada de conjeturas realizadas.

Solución 1

Estás muy cerca de esto. Su condición de bucle while debe extenderse para que no solo mire si el número coincide con la suposición. También debe verificar si ha superado el número máximo de intentos permitidos. Reorganice su cláusula while de esta manera:

found = false
while (found == false and tries < max_tries_allowed)
  guess = int(input("Take a guess: "))
  tries += 1
  if (guess = the_number):
    found = true
  if (guess > the_number):
    print("Lower...")
  elif (guess < the_number):
    print("Higher...")
  else:
    found = true
if (found == false):
  print("You didn't find the number")

Algo así debería ayudar.

コメント

タイトルとURLをコピーしました