كيف تكتب كود بايثون الذي ينتج رقمًا عشوائيًا ويحد من مقدار التخمين للعثور عليه؟


من المفترض أن يكون الرمز قادرًا على إنتاج رقم عشوائي وإخبارك ما إذا كنت أعلى أم أقل. أريد أن أكون قادرًا على الحد من كمية التخمينات للعثور عليه.

بايثون
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")

ما حاولت:

أنا مبرمج مبتدئ ولكن لدي البرنامج الأساسي للعمل ولكن الشيء الوحيد الذي لا يعمل هو الكمية المحدودة من التخمينات التي تم إجراؤها.

الحل 1

أنت قريب جدًا من هذا. يجب توسيع حالة حلقة while الخاصة بك بحيث لا تنظر فقط إلى ما إذا كان الرقم يتطابق مع التخمين. يحتاج أيضًا إلى التحقق لمعرفة ما إذا كنت قد تجاوزت الحد الأقصى لعدد المحاولات المسموح بها. أعد ترتيب جملة while الخاصة بك مثل هذا:

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")

شيء من هذا القبيل ينبغي أن يساعد.

コメント

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