🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ saeed fadaoddini
سنگ کاغذ قیچی با روشی ابتکاری
جامعه پایتون (وب) ایجاد شده در ۰۳ آذر ۱۴۰۱
from config import GAME_MODEL, RULE_GAME, score_board
from random import choice
def question():
    """
    First the question is asked if you play
    """
    user_answer = input('Do you want to game play? (y/n)')
    answer(user_answer)
def answer(user_answer):
    """
    It is guided according to the choice made
    """
    if user_answer == "y" or user_answer == "Y":
        play_game()
    elif user_answer == "n" or user_answer == "N":
        end_game()
    else:
        print("Oops!! Please be mor careful...")
        question()
def end_game():
    """
    Finished game
    """
    print('End Game... ')
def choose_one_user():
    user_choose = input('Please choose one (r, p, s):')
    if user_choose not in GAME_MODEL:
        print("Oops!! Please be mor careful...")
        return choose_one_user()
    return user_choose
def choose_one_system():
    system_choose = choice(GAME_MODEL)
    return system_choose
def result_win(user_choose, system_choose):
    res = RULE_GAME[user_choose + system_choose]
    return res
def score_user(res_game):
    res = 0
    if res_game == "w":
        res = 1
    elif res_game == "l":
        res = 2
    else:
        res = 3
    return res
def update_score(result_game):
    if result_game == 1:
        msg = 'You win'
        score_board['user'] += 1
    elif result_game == 2:
        msg = 'You lose'
        score_board['system'] += 1
    else:
        msg = 'draw'
    print('--->>  ', f'user: {score_board["user"]}'.ljust(36))
    print('--->>  ', f'system: {score_board["system"]}'.ljust(36))
    print('--->>  ', f'result: {msg}'.ljust(36))
def play_game():
    while score_board['user'] < 3 and score_board['system'] < 3:
        user_choose = choose_one_user()
        system_choose = choose_one_system()
        res_game = result_win(user_choose, system_choose)
        result_game = score_user(res_game)
        update_score(result_game)
    print("#" * 52)
    print("#" * 52)
    print('---->>  ', f'user: {score_board["user"]}'.ljust(36))
    print('---->>  ', f'system: {score_board["system"]}'.ljust(36))
    print("#" * 52)
    print("#" * 52)
if __name__ == '__main__':
    question()

قسمت config

# paper rock scissor
GAME_MODEL = ("p", "r", "s")
RULE_GAME = {
    "pp": "d",
    "pr": "w",
    "ps": "l",
    "rp": "l",
    "rr": "d",
    "rs": "w",
    "sp": "w",
    "sr": "l",
    "ss": "d",
   }
score_board = {
    "user": 0,
    "system": 0,
}
saeed fadaoddini ۰۳ آذر ۱۴۰۱، ۱۶:۵۴

البته یک مرحله میشه کم بشه چون تابع score_user کار بیهوده ای می‌کنه من می‌تونستم مستقیما با نتیجه‌های w و l و d برم و شرط‌ها رو بررسی کنم ولی خوب الکی یک گیت بی مورد درست کردم وسط کد‌ها

saeed fadaoddini ۰۳ آذر ۱۴۰۱، ۱۶:۵۸