بازی حدس اعداد با پایتون

بازی حدس اعداد با پایتون

اکثر افراد حرفه‌ای با پیشینه علوم کامپیوتر، به اولین پروژه خود پس از انجام یک زبان برنامه‌نویسی فکر می‌کنند. در اینجا ما قصد داریم تا یک بازی حدس اعداد با پایتون بنویسیم . این بازی میتونه یک پروژه ی ساده واسه ی شروع باشه .

در اینجا یک بازی حدس اعداد میسازیم که اول کاربر محدوده ای را انتخاب میکند . مثلا کاربر از 0 تا 100 را انتخاب میکند . سپس سیستم یک عدد تصادفی بین 0 تا 100 را انتخاب میکند. و کاربر باید توی کمترین تعداد اون عدد را حدس بزند . البته با کمک سیستم ! درجه سختی این پروژه سطح ساده می باشد .

 

تحلیل و بررسی این بازی با پایتون
تعداد کل حدس ها = 7

توضیح شماره 1 :

بیاید فرض کنیم محدوده ورودی های کاربر، از 1 تا 100 باشه. و کامپایلر به طور تصادفی 42 رو به عنوان عدد مورد نظر انتخاب کنه. حالا بازی حدس زدن شروع میشه . کاربر به عنوان اولین حدس خودش عدد 50 رو وارد میکنه. کامپایلر نشان میده “دوباره امتحان کنید! خیلی بالا حدس زدی». این به آن معناست که عدد تصادفی (یعنی 42) در محدوده 50 تا 100 قرار نمی گیرد. مهم حدس زدن نیمی از محدوده است. و دوباره کاربر نیمی از 50 را حدس می‌زند .

پس نصف 50 ، 25 است. کاربر به عنوان حدس دوم خود عدد 25 رو  وارد میکنه.در این زمان کامپایلر نشان میده، “دوباره امتحان کنید! خیلی کم حدس زدی.» این به آن معناست که اعداد صحیح کمتر از 25 (از 1 تا 25) درست نیستند. اکنون محدوده حدس زدن کاربر کوتاهتر است. یعنی از 25 تا 50 .

کاربر نیمی از این محدوده رو حدس میزنه. فرضا کاربر 37 رو به عنوان حدس سوم خودش حدس زد. این بار دوباره کامپایلر خروجی رو اینطوری نشون میده: «دوباره امتحان کنید! خیلی کم حدس زدی.» . برای کاربر، محدوده حدس زدن با هر حدس کوچکتر می شود. اکنون محدوده حدس برای کاربر از 37 تا 50 است .

حال فرض کنیم که کاربر 43 را به عنوان حدس چهارم خود حدس زده است. این بار کامپایلر خروجی “ دوباره امتحان کنید! خیلی بالا حدس زدی». بنابراین، محدوده حدس جدید برای کاربران از 37 تا 43 خواهد بود. این پروسه انقدر تکرار میشه. تا کاربر عدد صحیح رو حدس بزنه. که تعداد حدس های او برابر 7 حدس میشه . و این بار کامپایلر خروجی رو اینطوری نشون میده: «تبریک می‌گویم شما آن را در n تلاش انجام دادید » .

بازی با پایتون
تعداد کل حدس ها = 6

توضیح شماره 2:

فرضا محدوده ورودی های کاربر، از 1 تا 50 باشد. و کامپایلر به طور تصادفی 42 را به عنوان عدد صحیح انتخاب کرد.  بازی حدس زدن شروع می شود. نصف 50 25 است. کاربر به عنوان اولین حدس خود عدد 25 را وارد می کند. این زمان کامپایلر نشان می دهد:  “دوباره امتحان کنید! خیلی کم حدس زدی » .

این بدان معناست که اعداد صحیح کمتر از 25 (از 1 تا 25) قابل حدس زدن نیستند. اکنون محدوده حدس زدن کاربر کوتاهتر است. یعنی از 25 تا 50. سپس کاربر نیمی از این محدوده را حدس میزند. که فرضا میشود 37 .  این بار دوباره کامپایلر خروجی را اینطور نشان می دهد: «دوباره امتحان کنید! خیلی کم حدس زدی ».

برای کاربر، محدوده حدس زدن با هر حدس کوچکتر می شود. اکنون محدوده حدس برای کاربر از 37 تا 50 است. که کاربر 43 را به عنوان حدس سوم خود حدس میزند. این بار کامپایلر خروجی “دوباره امتحان کنید! خیلی بالا حدس زدی» را نشان میدهد. بنابراین، محدوده حدس جدید برای کاربران از 37 تا 43 خواهد بود. که باز هم کاربر نیمی از این محدوده، یعنی 40 را به عنوان حدس چهارم خود حدس میزند.

این بار کامپایلر خروجی را اینگونه نشان می دهد. « دوباره امتحان کنید! خیلی کم حدس زدی » . محدوده ی حدس را حتی کوچکتر میکنیم. به طوری که از 41 به 43 می رسد. و اکنون کاربر 41 را به عنوان پنجمین حدس خود حدس می زند. که اشتباه است و خروجی “دوباره امتحان کنید! خیلی کمحدس زدی » را نشان میدهد. و در نهایت، کاربر عدد درست را حدس میزند. که 42 به عنوان ششمین حدس او است.

 

بنابراین، حداقل تعداد حدس ها به محدوده ی انتخابی کاربر بستگی دارد. و کامپایلر باید حداقل تعداد حدس زدن را به خودی خود بستگی به محدوده محاسبه کند.
آنالیز و توضیح الگوریتم

مراحل ساخت این بازی با پایتون به شرح زیر است:

  • کاربر کران پایین و کران بالای محدوده را وارد می کند.
  • کامپایلر یک عدد صحیح تصادفی بین محدوده تولید می کند. و آن را در یک متغیر برای مراجع بعدی ذخیره می کند.
  • برای حدس زدن مکرر، یک حلقه while مقدار دهی اولیه می شود.
  • اگر کاربر عددی را حدس بزند که بزرگتر از یک عدد انتخاب شده تصادفی است. کاربر یک خروجی دریافت می کند: «دوباره امتحان کنید! خیلی بالا حدس زدی”.
  • در غیر این صورت، اگر کاربر عددی را حدس بزند که کوچکتر از یک عدد تصادفی انتخاب شده است. کاربر یک خروجی دریافت می کند: «دوباره امتحان کنید! خیلی کم حدس زدی” .
  • و اگر کاربر در حداقل تعداد حدس‌ها حدس بزند. کاربر یک خروجی دریافت می کند :  «تبریک میگوییم ! شما آن را در N تلاش حدس زدید » .
  • در غیر این صورت، اگر کاربر عدد صحیح را در حداقل تعداد حدس‌ها نتواند حدس بزند . پیام :  “دفعه بعد امتحان کنید” دریافت خواهد کرد.
در زیر پیاده سازی الگوریتم این بازی با پایتون آمده است:

import random

import math

 

# گرفتن ورودی ها

lower = int(input(“Enter Lower bound:- “)) عدد کمتر محدوده را وارد کنید

 

upper = int(input(“Enter Upper bound:- “)) عدد بیشتر محدوده را وارد کنید

 

 

#ایجاد یک عدد رندوم بین این محدوده  

x = random.randint(lower, upper)

print(“\n\tYou’ve only “, round(math.log(upper – lower + 1, 2)) , ” chances to guess the integer!\n”)

 

 

# مشخص کردن تعداد حدس ها

count = 0

while count < math.log(upper – lower + 1, 2):

    count += 1

     #گرفتن حدس از کاربر

    guess = int(input(“Guess a number:- “))

 

    # بررسی شرایط حدس

    if x == guess:

        print(“Congratulations you did it in “, count, ” try”)

        # Once guessed, loop will break

        break

    elif x > guess:

        print(“You guessed too small!”)

    elif x < guess:

        print(“You Guessed too high!”)

 

# اگر حدس ها از تعداد مجاز بیشتر شد ، عدد درست نشان داده شود و پیام ” بار دیگر امتحان کنید ” نمایش داده شود

if count >= math.log(upper – lower + 1, 2):

    print(“\nThe number is %d” % x)

    print(“\tBetter Luck Next time!”)

 

# . میتوانید این کد ها را در کد ادیتور خود کپی و استفاده کنید

 

OUTPUT: در زیر مثالی از خروجی برنامه فوق آمده است

Enter lower bound : 1

Enter Upper bound : 100

 

You have only 7 chances to guess the number!

 

Guess a number : 50

You Guessed too small !

Guess a number : 75

You Guessed too high !

Guess a number : 56

You Guessed too high !

Guess a number : 53

You Guessed too small !

Guess a number : 54

 

Congratulations you did it in 6 try

 

Process finished with exit code 0

این یک مثال بسیار ساده از ساخت بازی با پایتون بود. که میتونید به عنوان اولین پروژه تون اون رو پیاده سازی کنید . پایتون قابلیت های بسیار زیادی داره. و میتونید با اون بازی ها و پروژه های خیلی پیچیده تر از این رو پیاده سازی کنید. و لذت ببرید !

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دلیل بازگشت وجه