خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

بازی کریکت دست را با استفاده از پایتون انجام دهید

به سمت چین پیش بروید و دست خود را در این شبیه سازی کریکت مبتنی بر متن امتحان کنید.

کریکت با حدود 2.5 میلیارد طرفدار یکی از بزرگترین و محبوب ترین ورزش ها در جهان است. فقط در هند، کریکت 5.3 میلیارد دلار ارزش دارد. ساچین تندولکار، دونالد بردمن، برایان لارا و ام اس دهنی تنها چند افسانه هستند که نام آنها در قلب میلیون ها نفر زنده است.

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

کریکت دست چیست؟

کریکت دست بازیی است که در آن دو نفر با استفاده از انگشتان خود با یکدیگر به رقابت می پردازند. در هر نوبت، هر دو بازیکن یک عدد را با استفاده از انگشتان خود به طور همزمان نمایش می دهند. اگر امتیازها مطابقت داشته باشند، batsman خارج است، در غیر این صورت آنها تعداد خود را به عنوان دویدن به دست می آورند. در نهایت، بازیکنی که بیشترین امتیاز را به ثمر رساند، برنده بازی است.

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

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

چگونه با استفاده از پایتون بازی کریکت دستی بسازیم

شما می توانید کد منبع کریکت دست با استفاده از پایتون را در اینجا پیدا کنید
GitHub
مخزن

مطلب مرتبط:   راهنمای صفحه بندی در جنگو

کتابخانه تصادفی مورد نیاز برای پرتاب اولیه و انتخاب های کامپیوتر را وارد کنید. تابعی به نام input_num تعریف کنید که دو آرگومان min و max را به ترتیب برای تایید ورودی کاربر می پذیرد. با استفاده از تابع ()input، عددی را که کاربر وارد می‌کند در متغیر num ذخیره کنید و آن را از نوع پیش‌فرض String به عدد صحیح با استفاده از int() ارسال کنید.

اگر عددی که کاربر وارد می‌کند بزرگ‌تر از حداکثر یا کمتر از حد است، از کاربر بخواهید با فراخوانی بازگشتی تابع، یک انتخاب معتبر وارد کند. اگر عدد در محدوده است، آن را برگردانید.

import random

def input_num(min, max):
    num = int(input())

    if num > max or num < min:
        print("Enter valid choice")
        return input_num(min, max)
    else:
        return num

یک تابع innings را تعریف کنید که batsman فعلی و runs را به عنوان آرگومان ورودی بپذیرد. از کاربر بخواهید اعدادی را در محدوده یک تا شش وارد کند. با توجه به قوانین کریکت دستی، اگر کاربر و رایانه هر دو یک عدد را انتخاب کنند، بتمن فعلی بیرون است.

یک متغیر کل را برای ذخیره کل اجراهای امتیازدهی شده توسط یک batsman مقداردهی کنید و آن را روی صفر قرار دهید. یک حلقه while بی نهایت شروع کنید و تابع input_num() را برای ذخیره و اعتبارسنجی ورودی کاربر فراخوانی کنید. از تابع randint() ماژول تصادفی برای انتخاب یک عدد تصادفی بین یک و شش برای کامپیوتر استفاده کنید.

انتخاب های هر دو بازیکن را نمایش دهید، سپس بررسی کنید که آیا آنها برابر هستند یا خیر. اگر آنها هستند، نشان دهید که batsman خارج است و مجموع دوهایی را که در آن اینینگ به ثمر رسانده است، برگردانید.

در غیر این صورت، بررسی کنید که چه کسی در حال ضربه زدن است و مقدار مناسب را به نمره کل، اعم از pnum یا cnum اضافه کنید. نمایش امتیاز فعلی batsman.

در مورد اینینگ دوم، شما می خواهید بررسی کنید که آیا خمیر قبلاً امتیاز حریف خود را شکست داده است یا خیر. برای انجام این کار، بررسی کنید که آیا مقدار to_chase خالی نیست و آیا امتیاز batsman بیشتر است یا خیر. اگر چنین است، امتیاز برنده خود را برگردانید.

def innings(batsman, to_chase):
    print("Enter numbers between 1 and 6. If you both choose the same number then " + batsman + " is out")
    total = 0

    while True:
        pnum = input_num(1, 6)
        cnum = random.randint(1, 6)

        print("User chose", pnum)
        print("Computer chose", cnum)

        if pnum == cnum:
            print(batsman + " is out")
            return total
        else:
            total = total + (pnum if batsman == "User" else cnum)
            print(batsman + " score is", total)
            if to_chase is not None and total > to_chase:
                return total

با استفاده از تابع ()input_num پیام را برای پرتاب و تایید انتخاب کاربر نمایش دهید. سکه را پرتاب کنید و نتیجه را در سکه متغیر ذخیره کنید. مقدار پیش فرض player_bowls را به false مقداردهی کنید. اگر برگرداندن سکه با انتخاب کاربر مطابقت داشته باشد، کاربر برنده بازی پرتاب شده و بین ضربه زدن و بولینگ یکی را انتخاب می کند.

مطلب مرتبط:   نحوه آپلود تصاویر در یک سطل ذخیره سازی Supabase از یک برنامه Next.js

انتخاب کاربر را انتخاب کنید و بررسی کنید که آیا او یکی را وارد کرده است. اگر بله، عبارت را true ارزیابی کرده و در متغیر player_bowls ذخیره کنید. نمایش انتخاب کاربر از طرف دیگر، اگر کامپیوتر برنده بازی شد، randint() را اجرا کنید و مقدار مناسب را برای player_bowls ارزیابی کنید.

انتخاب کامپیوتر را نمایش دهید و اینینگ را شروع کنید.

print("Time for toss, Enter 0 for Heads and 1 for Tails")
choice = input_num(0, 1)
coin = random.randint(0, 1)
player_bowls = False

if coin == choice:
    print("You have won the toss")
    print("Select 0 to bat, 1 to bowl ")
    player_bowls = input_num(0, 1) == 1

    if player_bowls:
        print("You chose to bowl")
    else:
        print("You chose to bat")
else:
    print("Computer won the toss")
    player_bowls = random.randint(0, 1) == 1

    if player_bowls:
        print("Computer chose to bat")
    else:
        print("Computer chose to bowl")

اگر player_bowls درست باشد، کامپیوتر ابتدا ضربه می زند و بالعکس. با استفاده از تابعی که قبلاً تعریف کردید، ران های به ثمر رسیده در یک اینینگ را محاسبه کنید. این تابع به نام batsman فعلی و دویدن برای تعقیب نیاز دارد. همانطور که اولین batsman امتیاز را تعیین می کند، آن را به یک پارامتر اختیاری تبدیل کنید و None را پاس کنید. برای اینینگ های دوم، امتیاز ضربه زنی که هدف را تعیین می کند، پاس کنید.

if player_bowls:
    comp_score = innings("Computer", None)
    user_score = innings("User", comp_score)
else:
    user_score = innings("User", None)
    comp_score = innings("Computer", user_score)

اگر کامپیوتر امتیاز کمتری از کاربر کسب کند، کاربر برنده است و بالعکس. در صورتی که امتیازات یکسان است، یک تساوی نمایش دهید.

if comp_score < user_score:
    print("User wins")
elif user_score < comp_score:
    print("Computer wins")
else:
    print("Match draw")

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

مطلب مرتبط:   WordPress.com در مقابل WordPress.org: تفاوت چیست؟

خروجی کریکت دست با استفاده از پایتون

شما می توانید خروجی یک بازی کریکت دستی را با استفاده از پایتون به صورت زیر مشاهده کنید:

خروجی کریکت دست با استفاده از پایتون

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

بازی های مبتنی بر ترمینال در پایتون

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

با ساخت Magic 8 Ball، Hangman، Rock Paper Scissors، Mad Libs Generator و بازی حدس اعداد شروع کنید. همانطور که بیشتر پیش می روید، کتابخانه PyGame را کاوش کنید تا بازی های ویدئویی گرافیکی خود را نیز بسازید.