آموزش ساخت بازی سنگ، کاغذ، قیچی با پایتون
ساخت بازی یک راه عالی برای یادگیری برنامه نویسی است. میتونید برای تفریح هم که شده بازیهای ساده ایجاد کرده و مهارت برنامه نویسی خودتان را به چالش بکشید.
دوره پیشنهادی: دوره آموزش الگوریتمنویسی در پایتون
# سنگ، کاغذ، قیچی چیست؟
سنگ کاغذ قیچی یک بازی دستی برای دو یا چند بازیکن است. شرکتکنندگان میگویند «سنگ، کاغذ، قیچی» و سپس همزمان دستهای خود را به شکل یک سنگ، یک تکه کاغذ یا قیچی در میآورند. قوانین ساده هستند:
- سنگ قیچی را خرد می کند.
- کاغذ سنگ را می پوشاند.
- قیچی کاغذ را برش میزند.
اکنون که قوانین را یاد گرفتهاید، می توانیم شروع به ساخت بازی کنیم.
ویدیو مرتبط: ویدیو آموزش ماژول random در پایتون
# ساخت بازی سنگ، کاغذ، قیچی در پایتون
با استفاده از توضیحات و قوانین بالا، می تونید یک بازی سنگ کاغذ قیچی بسازید. قبل از شروع، باید ماژول random را import کنید. از این ماژول برای شبیه سازی انتخاب کامپیوتر به شکل تصادفی استفاده میکنیم:
import random
حالا میتونید از ابزارهای مختلف داخل ماژول random برای تصادفی کردن انتخابهای رایانه استفاده کنید. از اونجایی که کاربران هم باید بتونند یک گزینه را انتخاب کنند، اولین چیزی که نیاز دارید راهی برای دریافت ورودی کاربر است.
دوره پیشنهادی: دوره آموزش پایتون (python)
+ دریافت ورودی کاربر
گرفتن ورودی از یک کاربر در پایتون بسیار ساده است. هدف در اینجا این است که از کاربر بپرسیم که مایل است چه چیزی را انتخاب کند و سپس آن انتخاب را به یک متغیر اختصاص بدیم:
user_action = input("Enter a choice (rock, paper, scissors): ")
این کد از کاربر می خواد تا انتخاب خود را مشخص کند و آن را برای استفاده بعدی در یک متغیر ذخیره کند. بعد از انتخاب کاربر نوبت کامپیوتر است.
مقاله پیشنهادی: اجرای برنامههای فلسک با داکر
+ انتخاب کامپیوتر
میتونید از random.choice() استفاده کنید تا رایانه بهطور تصادفی بین یک گزینه را انتخاب کند:
possible_actions = ["rock", "paper", "scissors"]
computer_action = random.choice(possible_actions)
این کد اجازه می دهد تا یک عنصر تصادفی از لیست انتخاب شود. همچنین می توانید انتخاب هایی را که کاربر و رایانه انجام داده اند چاپ کنید:
print(f"\nYou chose {user_action}, computer chose {computer_action}.\n")
ویدیو مرتبط: ویدیو شرط if در پایتون
+ مقایسه نتایج
اکنون که هر دو بازیکن انتخاب خود را انجام داده اند، فقط باید راهی برای تصمیم گیری برنده مشخص شود. با استفاده از بلوک if ... elif ... else، می توانید انتخاب های بازیکنان را مقایسه کرده و برنده را تعیین کنید:
if user_action == computer_action:
print(f"Both players selected {user_action}. It's a tie!")
elif user_action == "rock":
if computer_action == "scissors":
print("Rock smashes scissors! You win!")
else:
print("Paper covers rock! You lose.")
elif user_action == "paper":
if computer_action == "rock":
print("Paper covers rock! You win!")
else:
print("Scissors cuts paper! You lose.")
elif user_action == "scissors":
if computer_action == "paper":
print("Scissors cuts paper! You win!")
else:
print("Rock smashes scissors! You lose.")
ابتدا بررسی میکنیم که انتخاب کاربر و کامپیوتر یکی نباشد. اگر این کار را انجام ندهید، باید هر اقدام ممکن را برای user_action بررسی کنید و آن را با هر اقدام ممکن برای computer_action مقایسه کنید. با بررسی شرط یکسان بودن انتخابها در ابتدا، میتوانید تنها با دو بررسی شرطی computer_action بدانید که رایانه چه چیزی را انتخاب کرده است.
در مجموع، کد شما اکنون باید به شکل زیر باشد:
import random
user_action = input("Enter a choice (rock, paper, scissors): ")
possible_actions = ["rock", "paper", "scissors"]
computer_action = random.choice(possible_actions)
print(f"\nYou chose {user_action}, computer chose {computer_action}.\n")
if user_action == computer_action:
print(f"Both players selected {user_action}. It's a tie!")
elif user_action == "rock":
if computer_action == "scissors":
print("Rock smashes scissors! You win!")
else:
print("Paper covers rock! You lose.")
elif user_action == "paper":
if computer_action == "rock":
print("Paper covers rock! You win!")
else:
print("Scissors cuts paper! You lose.")
elif user_action == "scissors":
if computer_action == "paper":
print("Scissors cuts paper! You win!")
else:
print("Rock smashes scissors! You lose.")
این کد به درستی کار میکند، اما مشکل اینجاست که شما فقط میتوانید یکبار بازی کنید.
ویدیو مرتبط: ویدیو آموزش حلقه while در پایتون
# اضافه کردن قابلیت بازی چندباره
حلقه ها راهی عالی برای تکرار یک اتفاق هستند. به طور خاص، می توانید از حلقه while برای بازی به طور نامحدود استفاده کنید:
import random
while True: # new
user_action = input("Enter a choice (rock, paper, scissors): ")
possible_actions = ["rock", "paper", "scissors"]
computer_action = random.choice(possible_actions)
print(f"\nYou chose {user_action}, computer chose {computer_action}.\n")
if user_action == computer_action:
print(f"Both players selected {user_action}. It's a tie!")
elif user_action == "rock":
if computer_action == "scissors":
print("Rock smashes scissors! You win!")
else:
print("Paper covers rock! You lose.")
elif user_action == "paper":
if computer_action == "rock":
print("Paper covers rock! You win!")
else:
print("Scissors cuts paper! You lose.")
elif user_action == "scissors":
if computer_action == "paper":
print("Scissors cuts paper! You win!")
else:
print("Rock smashes scissors! You lose.")
play_again = input("Play again? (y/n): ") # new
if play_again.lower() != "y": # new
break # new
به خطوط new در بالا توجه کنید. به سادگی یک حلقه while به برنامه اضافه کردیم و بعد از هر بازی، از کاربر میپرسیم که آیا دلش میخواهد بازی کند، یا نه.
# نتیجه گیری
تبریک می گویم! شما به تازگی اولین بازی پایتون خود را به پایان رساندید! اکنون می دانید که چگونه سنگ کاغذ قیچی را از ابتدا بسازید.