پروژه: بازی سنگ، کاغذ، قیچی (Rock, Paper, Scissors)
اهداف پروژه
- نوشتن توابع مستقل و خوانا
- مدیریت ورودی و خروجی کاربر
- استفاده از منطق شرطی برای تصمیمگیری
- کار با دادهٔ تصادفی
- ساخت برنامهٔ تعاملی ساده بدون کلاس
۱. تعریف مقادیر اولیه و کتابخانهها
import random
USER_CHOICES = ("rock", "paper", "scissor")
تعریف کتابخانهی random برای انتخاب تصادفی کامپیوتر و ذخیره مقادیر معتبر کاربر در متغیر سراسری
۲. گرفتن ورودی کاربر
def get_user_input():
choice = input("pick your choice [\"rock\",\"paper\",\"scissor\"]: ")
while choice not in USER_CHOICES:
choice = input("pick your choice [\"rock\",\"paper\",\"scissor\"]: ")
return choice
تابع برای دریافت و اعتبارسنجی ورودی کاربر تا فقط مقادیر معتبر پذیرفته شوند
۳. تولید ورودی کامپیوتر
def get_pc_input():
pc_choice = random.choice(USER_CHOICES)
print(f"pc choice was: {pc_choice}")
return pc_choice
انتخاب تصادفی برای کامپیوتر و نمایش آن
۴. تعیین برنده
def determine_winner(user_input, pc_input):
if user_input == pc_input:
return "DRAW!"
elif (user_input == "rock" and pc_input == "scissor") \
or (user_input == "scissor" and pc_input == "paper") \
or (user_input == "paper" and pc_input == "rock"):
print("user won")
else:
print("computer won")
تابع برای بررسی منطق بازی و تعیین برنده
۵. تابع اصلی اجرای بازی
def main():
user_input = get_user_input()
pc_input = get_pc_input()
determine_winner(user_input, pc_input)
print("end of program")
تابع main ترتیب اجرای مراحل بازی را کنترل میکند
۶. حلقه اجرای چندباره بازی
answer = 'y'
while answer == "y":
main()
answer = input("do you want to continue? (y/n):")
این حلقه امکان اجرای چندباره بازی را فراهم میکند تا کاربر بتواند بازی را تکرار کند