مینی پروژه های پایتونی ، ساخت بازی سنگ کاغذ قیچی

مینی پروژه های پایتونی ، ساخت بازی سنگ کاغذ قیچی

آقا این پایتون چه قد محبوبه ، از هر جهتی بهش نگاه میکنیم واسه خودش بهترین حساب میشه . سادگیش ، قدرتش ، سبک بودنش و .....

تو این مقاله قصد دارم یه پروژه ساده دیگه رو با پایتون باهم پیاده سازی کنیم .

همون طور که از عنوان این مقاله معلوم هست قراره بازی سنگ کاغذ قیچی رو باهم پیاده سازی کنیم . پس بدون بحث اضافه بریم سراغ پروژه 

مرحله اول

اول از همه ما باید کتابخانه random‌ رو به پروژمون ایمپورت کنیم

import random

مرحله دوم 

در مرحله دوم یه پیغام خوش آمد به کاربر چاپ میکنیم ، پس داریم :

print("Hello in Game RPS")

مرحله سوم

در این مرحله دو متغیر برای امتیاز دهی تعریف میکنیم و مقادیر آنها رو برابر صفر قرار میدیم . یعنی فعلا هیچ امتیازی هر دو بازیکن ندارن . یکی برای سیستم و یکی برای کاربر ، پس داریم :

userRate, sysRate = 0, 0

مرحله چهارم

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

اول از همه در این حلقه از کاربر درخواست ورودی میکنیم (سنگ ، کاغذ ،قیچی)

while True:
    userChoice = input("rock - paper - scissor : (1-2-3) or End Game 4 ?")

نوشتیم که برای انتخاب سنگ عدد ۱ ، کاغذ عدد ۲ و قیچی عدد عدد ۳ رو وارد کنید و یک چیز دیگر هم نوشتیم . گفتیم که اگر کاربر عدد ۴ را وارد کرد بازی تمام شود .

بعد آن یک متغیر دیگر مینویسیم تا اینبار سیستم انتخاب کند 

sysChoice = random.randint(1, 3)  # "rock", "paper", "scissor"

از کتابخانه رندوم کمک گرفتیم و گفتیم که از ۱ تا ۳ برای ما عدد تصادفی تولید کند . ۱ برای سنگ , ۲ برای کاغذ و ۳ برای قیچی

مرحله پنجم 

در این مرحله منطق برنامه رو پیاده سازی خواهیم کرد 

if userChoice == "1" and sysChoice == 1:
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "1" and sysChoice == 2:
        sysRate += 1
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "1" and sysChoice == 3:
        userRate += 1
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    # -------------------------
    elif userChoice == "2" and sysChoice == 1:
        userRate += 1
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "2" and sysChoice == 2:
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "2" and sysChoice == 3:
        sysRate += 1
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    # -------------------------
    elif userChoice == "3" and sysChoice == 1:
        sysRate += 1
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "3" and sysChoice == 2:
        userRate += 1
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "3" and sysChoice == 3:
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "4":
        break
    else:
        print("Invalid Choice")

اول از همه با یک دستور if یک شرط را بررسی کردیم و گفتیم که اگر انتخاب کاربر و انتخاب سیستم هر دو برابر یک بودند ، چاپ کن سیستم سنگ را انتخاب کرد و در پرینت دومی هم امتیاز ها را چاپ کردیم (به روش f استرینگ)

بعد آن در elif بعدی گفتیم اگر کاربر عدد ۱ و سیستم عدد ۲ را انتخاب کرد به متغیر sysRate یک واحد اضافه کن چون در این بار سیستم یک بار امتیاز گرفته است و باید به امتیاز های آن بیافزاییم و بعد آن چاپ کردیم که سیستم چی انتخاب کرده و در خط بعدی دوباره با روش f-string امتیاز ها را چاپ کردیم

در elif بعدی گفتیم که اگر انتخاب کاربر برابر ۱ و سیستم برابر ۳ بود این بار متغیر userRate رو یک واحد افزایش ده و چاپ کن انتخاب سیستم این است و امتیاز های شما این .

در تمام مراحل ما با همین ساختار و شروط برنامه رو پیاده سازی کردیم ، اما در آخرین elif گفتیم اگر کاربر ۴ را وارد کرد از برنامه خارج شو و در آخر هم گفتیم اگر هیچ یک از اعداد تعریف شده نبود به جای خطا چاپ کند انتخاب نامعتبر!

مرحله ششم

در این مرحله هم شرطی مینویسیم که مشخص شود سیستم برنده شده یا کاربر . پس داریم :

if userRate > sysRate:
    print("Won")
elif userRate < sysRate:
    print("Los")
else:
    print("Equal")
print(f"You Rate : {userRate}\nSystem Rate : {sysRate}")

گفتیم که اگر کاربر امتیاز کاربر بزرگتر از سیستم بود چاپ کند شما برنده شدید و در شرط بعدی هم گفتیم اگر امتیاز سیستم بزرگتر از کاربر بود شما باختید در else آخر هم گفتیم اگر هیچ کدوم شروط برقرار نبود مساوی چاپ کند .

در آخر هم امتیاز ها را چاپ کرده ایم

پس کل برنامه ما به این صورت شد :

import random
print("Hello in Game RPS")
userRate, sysRate = 0, 0
while True:
    userChoice = input("rock - paper - scissor : (1-2-3) or End Game 4 ?")
    sysChoice = random.randint(1, 3)  # "rock", "paper", "scissor"
      if userChoice == "1" and sysChoice == 1:
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "1" and sysChoice == 2:
        sysRate += 1
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "1" and sysChoice == 3:
        userRate += 1
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    # -------------------------
    elif userChoice == "2" and sysChoice == 1:
        userRate += 1
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "2" and sysChoice == 2:
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "2" and sysChoice == 3:
        sysRate += 1
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    # -------------------------
    elif userChoice == "3" and sysChoice == 1:
        sysRate += 1
        print("system choice : rock")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "3" and sysChoice == 2:
        userRate += 1
        print("system choice : paper")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "3" and sysChoice == 3:
        print("system choice : scissor")
        print(f"{userRate} - {sysRate}")
    elif userChoice == "4":
        break
    else:
        print("Invalid Choice")
if userRate > sysRate:
    print("Won")
elif userRate < sysRate:
    print("Los")
else:
    print("Equal")
print(f"You Rate : {userRate}\nSystem Rate : {sysRate}")
      

از بهترین نوشته‌های کاربران سکان آکادمی در سکان پلاس


online-support-icon