ساخت بازی سنگ کاغذ قیچی در پایتون — راهنمای کاربردی
«زبان برنامهنویسی پایتون» (Python Programming Language) یک زبان برنامهنویسی همهمنظوره است که میتوان با استفاده از آن، کارهای گوناگون از برنامهنویسی وب گرفته تا محاسبات و پردازشهای علمی را انجام داد. نوشتن بازی یکی از انواع کارهایی است که میتوان با استفاده از این زبان انجام داد. افراد علاقهمند به بازینویسی، میتوانند کار را از نوشتن بازیهای سادهتر و کوچکتر آغاز کنند. بازی محبوب سنگ، کاغذ، قیچی یکی از این بازیها است. در ادامه، نحوه ساخت بازی سنگ کاغذ قیچی در پایتون آموزش داده میشود. در قطعه کدی که در ادامه ارائه میشود، از هیچ کتابخانه بازی خارجی از جمله PyGame استفاده نخواهد شد.
ساخت بازی سنگ کاغذ قیچی در پایتون
در این بازی، کاربر اولین شانس را برای انتخاب از میان گزینههای سنگ، کاغذ و قیچی دارد. پس از آن، کامپیوتر از میان دو انتخاب باقیمانده، به صورت تصادفی، یک گزینه را انتخاب میکند.
سپس، بر اساس قواعد بازی سنگ، کاغذ، قیچی، برنده اعلام میشود. قواعد انتخاب برنده در بازی سنگ، کاغذ، قیچی در ادامه آمده است.
- سنگ در مقایسه با کاغذ -> کاغذ برنده میشود.
- سنگ در مقایسه با قیچی -> سنگ برنده میشود.
- کاغذ در مقایسه با قیچی -> قیچی برنده میشود.
برای ساخت بازی سنگ کاغذ قیچی در پایتون از تابع توکار randint() برای تولید مقدار صحیح تصادفی در یک طیف داده شده، استفاده میشود. این تابع درون ماژول Random در پایتون قرار گرفته است. در ادامه، کد پیادهسازی این بازی در پایتون، ارائه شده است.
1# import random module
2import random
3
4# Print multiline instruction
5# performstring concatenation of string
6print("Winning Rules of the Rock paper scissor game as follows: \n"
7 +"Rock vs paper->paper wins \n"
8 + "Rock vs scissor->Rock wins \n"
9 +"paper vs scissor->scissor wins \n")
10
11while True:
12 print("Enter choice \n 1. Rock \n 2. paper \n 3. scissor \n")
13
14 # take the input from user
15 choice = int(input("User turn: "))
16
17 # OR is the short-circuit operator
18 # if any one of the condition is true
19 # then it return True value
20
21 # looping until user enter invalid input
22 while choice > 3 or choice < 1:
23 choice = int(input("enter valid input: "))
24
25
26 # initialize value of choice_name variable
27 # corresponding to the choice value
28 if choice == 1:
29 choice_name = 'Rock'
30 elif choice == 2:
31 choice_name = 'paper'
32 else:
33 choice_name = 'scissor'
34
35 # print user choice
36 print("user choice is: " + choice_name)
37 print("\nNow its computer turn.......")
38
39 # Computer chooses randomly any number
40 # among 1 , 2 and 3. Using randint method
41 # of random module
42 comp_choice = random.randint(1, 3)
43
44 # looping until comp_choice value
45 # is equal to the choice value
46 while comp_choice == choice:
47 comp_choice = random.randint(1, 3)
48
49 # initialize value of comp_choice_name
50 # variable corresponding to the choice value
51 if comp_choice == 1:
52 comp_choice_name = 'Rock'
53 elif comp_choice == 2:
54 comp_choice_name = 'paper'
55 else:
56 comp_choice_name = 'scissor'
57
58 print("Computer choice is: " + comp_choice_name)
59
60 print(choice_name + " V/s " + comp_choice_name)
61
62 # condition for winning
63 if((choice == 1 and comp_choice == 2) or
64 (choice == 2 and comp_choice ==1 )):
65 print("paper wins => ", end = "")
66 result = "paper"
67
68 elif((choice == 1 and comp_choice == 3) or
69 (choice == 3 and comp_choice == 1)):
70 print("Rock wins =>", end = "")
71 result = "Rock"
72 else:
73 print("scissor wins =>", end = "")
74 result = "scissor"
75
76 # Printing either user or computer wins
77 if result == choice_name:
78 print("<== User wins ==>")
79 else:
80 print("<== Computer wins ==>")
81
82 print("Do you want to play again? (Y/N)")
83 ans = input()
84
85
86 # if user input n or N then condition is True
87 if ans == 'n' or ans == 'N':
88 break
89
90# after coming out of the while loop
91# we print thanks for playing
92print("\nThanks for playing")
خروجی قطعه کد بالا، به صورت زیر است.
winning Rules of the Rock paper and scissor game as follows: rock vs paper->paper wins rock vs scissors->rock wins paper vs scissors->scissors wins Enter choice 1. Rock 2. paper 3. scissor User turn: 1 User choice is: Rock Now its computer turn....... computer choice is: paper Rock V/s paper paper wins =>computer wins do you want to play again? N
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- تولید اعداد تصادفی در پایتون — به زبان ساده
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
^^
سلام.من همه کد ها رو زدم ولی نمیدنم چرا برای random.randint ارور میده
سلام ، میشه سورس نسخه گرافیکی این بازی هم بزارین ؟
سلام
من این کد هارو توی نرم افزار پایتون نسخه ۳ وارد کردم ولی نمی دونم چرا برای دستور های elif و if خطای سینتکس رو میداد
سلام
به اختمال زیاد فاصله ها به خوبی رعایت نشده