🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ شیما همایونی
استفاده از دیکشنری scoreboard
جامعه پایتون (وب) ایجاد شده در ۰۱ تیر ۱۴۰۱

سلام وقت بخیر

میتونیم به جای اینکه در بدنه تابع ()play از دیشکنری result استفاده کنیم، از همون دیکشنری scoreboard که در فایل config نوشتیم استفاده کنیم؟

سلام امیدوارم عالی باشید

عذرخواهی میکنم بخاطر طولانی شدن زمان پاسخگویی

برای اینکه به شما پاسخ مستقیم ندم ابتدا به عنوان یک تمرین ازتون میخام چنین کاری رو انجام بدید و ببنید ایا دچار مشکلی خواهید شد یا خیر؟ نتیجه رو در همین تاپیک بفرمایید تا با هم جلو بریم

پوریا شفیعی ۰۲ تیر ۱۴۰۱، ۲۰:۱۴

سلام

بله من انجام دادم بدون مشکل ران شد. به نظر خودم یک خط از برنامه کمتر شد. اما نمیدونم این کار باعث سردرگمی بشه یا نه.

شیما همایونی ۰۲ تیر ۱۴۰۱، ۲۰:۱۸

بسیار عالی پس کدتون رو ارسال کنید تا از روی کدتون و روشی که رفتید توضیحات رو بدم خدمتتون

پوریا شفیعی ۰۲ تیر ۱۴۰۱، ۲۰:۵۶
import random
from config import CHOICES,RULES,score_board
def get_user_choice():
    user_input = input('Enter your choice please (r, p, s): ')
    if user_input not in CHOICES:
        print("Oops!!, wrong choice, try again please...")
        return get_user_choice()
    return user_input
def get_system_choice():
    system_choice=random.choice(CHOICES)
    return system_choice
def find_winner(user, system):
    match={user, system}
    if len(match)==1:
        return None
    else:
        return RULES[tuple(sorted(match))]
def update_score_board(score_board):
    if score_board['user']==3:
        score_board['user']+=1
    else:
        score_board['system']+=1
    print('#'*30)
    print('##', f"user:{score_board['user']}".ljust(24), '##')
    print('##', f"system:{score_board['system']}".ljust(24), '##')
    print('#'*30)
def play():
    while score_board['user']<3 and score_board['system']<3:
        user_choice=get_user_choice()
        system_choice=get_system_choice()
        winner=find_winner(user_choice, system_choice)
        if winner==user_choice:
            score_board['user']+=1
            msg='you won'
        elif winner==system_choice:
            score_board['system']+=1
            msg='you lost'
        else:
            msg='draw'
        print(f"your choice:{user_choice}, system choice:{system_choice}, result:{msg}")
    update_score_board(score_board)
if __name__ == '__main__':
    play()
شیما همایونی ۰۴ تیر ۱۴۰۱، ۰۴:۰۴

سلام امیدوارم عالی باشید

اره میتونید از اون هم استفاده کنید و مشکلی نیست بلخره برنامه نویسی هست و برای حل یک مسءله راه حل‌های متفاوتی وجود داره

بهترین پاسخ
پوریا شفیعی ۰۴ تیر ۱۴۰۱، ۱۶:۳۷