تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 23 مهر 1402 |
سطح تمرین | متوسط |
در این پست قصد داریم پروژه ساخت بازی ساده با پایتون را بررسی و پیاده سازی نماییم.
سوال:بازی شیر یا خط را هم در محیط ترمینال و هم در محیط گرافیکی با کتابخانه tkinter پیاده سازی نمایید؟
راهنمایی بازی: بازی بدین صورت میباشد که کاربر ابتدا اعلام میکند شیر یا خط سپس سکه با یک عدد رندوم تنظیم میشود.
هر سمتی که سکه افتاد میشود کامپیوتر و در نهایت با مقایسه وضعیت نهایی سکه با انتخاب کاربر برنده مشخص میشود.
از قدیم برای تعیین موارد مختلف از شیر یا خط استفاده میکردیم.
طوری که یک سکه را به بالا پرتاب میکردیم وضعیت نهایی آن سکه تعیین کنند انجام کار بود.
به شدت این مورد را در تعیین طرف زمین در فوتبال دیدیم.
زمانی که داور میخواهد مسابقه ای را شروع کند از هر دو کاپیتان میپرسد که شیر یا خط و در نهایت هر سمتی که سکه بیاید آن کاپیتالطرف زمین را تعیین میکند.
حالا ما در این پروژه آن را به شکل یک بازی در آوردیم به طوری که کاربر حدس خودش را میزند و سپس وضعیت نهایی سکه برنده را تعیین میکند.
با استفاده از اعداد تصادفی وضعیت سکه را در حالت های مختلف ایجاد میکنیم تا وضعیت برنده بازی را مشخص کنیم.
این بازی ساده در پایتون اطلاعات برنامه نویسی زیادی به کاربران میدهد تا با دستورات مختلف برنامه نویسی آشنا شوند.
انجام پروژه های پایتون
وفایی مقدم
0936-328-6141
برای ساخت بازی با پایتون در محیط مشکی رنگ یا همان ترمینال باید ابتدا پیغامی را به کاربر نمایش دهیم.
این پیغام شامل تعیین شیر یا خط توسط کاربر میباشد.
print("1:shir 2:khat")
بعد از نمایش پیغام به کاربر باید ورودی کاربر را دریافت کنیم.
user = int(input(":"))
سپس باید ابتدا عدد رندومی به 1 تا 2 ایجاد کنیم که یک به معنای شیر و دو به معنای خط میباشد.
این کار را با کمک ماژول random انجام میدهیم.
impport random computer = random.randint(1,2)
حالا نوبت به مقایسه میباشد مقایسه اینکه الان وضعیت سکه با انتخاب کاربر یکی میباشد یا خیر.
پس کد مقایسه را به صورت زیر مینویسیم:
if computer == user: print("user win") else: print("computer win")
نکته:این بازی الان به صورت یک دور انجام میشود و میتوانید با کمک مثال حلقه for چندین دور بازی را اجرا نمایید.
ادامه پست پروژه ساخت بازی با پایتون میخواهیم بازی شیر یا خط را در محیط گرافیکی پیاده سازی نماییم.
پس ابتدا باید با استفاده از pip پکیج tkinter را نصب کنیم.
اگر با پکیج منیجر pip کار نکردید میتوانید پست آموزش دانلود و نصب pip را مشاهده نمایید.
با دستور زیر پکیج tkinter را برای پشتیبانی گرافیک بازی نصب میکنیم:
pip install tk
همچنین برای اینکه در ساخت بازی از تصویر هم استفاده کنیم پکیج pillow را نیز نصب میکنیم:
pip install pillow
حالا پکیج هایی که نصب کردیم را به پروژه import میکنیم:
import tkinter as tk from PIL import Image,ImageTk
سپس ابتدا کد های مربوط به طراحی رابط گرافیکی را به صورت زیر مینویسیم:
root = tk.Tk() root.geometry("400x400") lblSelect = tk.Label(root,text="1:shir 2:khat") txt = tk.Entry(root) btn = tk.Button(text="check",command=func) lbl = tk.Label(root) lblResult = tk.Label(root,text="result:") lblSelect.pack() txt.pack() btn.pack() lbl.pack() lblResult.pack() imgKhat = Image.open("khat.webp") renderKhat = ImageTk.PhotoImage(imgKhat) imgShir = Image.open("shir.webp") renderShir = ImageTk.PhotoImage(imgShir) root.mainloop()
همانطور که مشاهده میکنید ابتدا سایز صفحه را 400×400 تنظیم میکنیم.
سپس ابزار هایی مانند Label,Entry,Button را تعریف و تنظیم میکنیم.
در نهایت با استفاده از pack آن ها را روی صفحه قرار میدهیم.
دستور Image.Open برای باز کردن تصویر شیر یا خط میباشد که در ادامه از آن استفاده میکنیم.
دقت کنید که میخواهیم مانند پروژه ماشین حساب ساده در پایتون در لیبل مقادیر را قرار دهیم.
پس کد مربوط به تابع func که هنگامی که button کلیک میشود اجرا میشود را به صورت زیر مینویسیم:
import random import time import _thread def th(threadname,delay): #loading for i in range(1,10): time.sleep(delay) if i % 2 == 0: lbl.config(image=renderShir) else: lbl.config(image=renderKhat) computer = random.randint(1,2) #1 if computer == 1: lbl.config(image=renderShir) else: lbl.config(image=renderKhat) user = int(txt.get()) #1 shir if user == computer: lblResult.config(text="user win") else: lblResult.config(text="computer win") def func(): #loading _thread.start_new_thread(th,("loading",1))
همانطور که مشاهده میکنید ابتدا thread را استارت میکنیم.
چون میخواهیم یک loading قبل از نمایش نتیجه نهایی نمایش دهیم.
سپس با استفاده از یک حلقه for حالت زوج و فرد متغییر i را در نظر میگیریم.
تو هر یک از حالت های زوج و فرد یکبار تصویر شیر و یکبار تصویر خط را نمایش میدهیم.
در نهایت مشابه حالت ترمینال با مقایسه مقدار user , compuer برنده نهایی را مشخص میکنیم.
دوره آموزش پایتون از صفر تا ورود به بازار کار
با پشتیبانی مادام العمر سوالات
مشاوره رایگان
0936-328-6141 وفایی مقدم
در ادامه سورس کد کامل بازی را قرار میدهیم.
دقت کنید که میتوانستیم با دریافت آدرس ایمیل و بررسی صحت آدرس ایمیل مشخص کنیم که دقیقا چه کسی این بازی را انجام میدهد.
از بخش تمرین های پایتون میتوانید مجموعه تمرین های رایگان و با جواب پایتون را مشاهده نمایید.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.