در این مطلب، ویدئو بازی مار در پایتون – آموزش مقدماتی پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:23:25
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:02,159
سلام بچه ها به یک آموزش سرگرم کننده جدید پایتون خوش آمدید
2
00:00:02,159 –> 00:00:03,280
3
00:00:03,280 –> 00:00:04,960
امروز ما می خواهیم
4
00:00:04,960 –> 00:00:07,040
بازی معروف مار را در پایتون پیاده سازی
5
00:00:07,040 –> 00:00:08,480
کنیم شما کمی در مورد
6
00:00:08,480 –> 00:00:10,639
ساختارهای داده های مختلف به طور خاص
7
00:00:10,639 –> 00:00:12,639
در مورد لیست ها و تاپل ها
8
00:00:12,639 –> 00:00:14,240
یاد خواهید گرفت و یاد خواهید گرفت که چگونه از
9
00:00:14,240 –> 00:00:16,640
جریان های کنترل مختلف برای مدیریت استفاده کنید. منطق بازی
10
00:00:16,640 –> 00:00:18,480
را یاد خواهید گرفت و همچنین یاد خواهید گرفت که چگونه از
11
00:00:18,480 –> 00:00:19,760
یک ماژول داخلی به نام
12
00:00:19,760 –> 00:00:22,400
نفرین برای دستکاری صفحه نمایش داخل
13
00:00:22,400 –> 00:00:24,000
ترمینال خود استفاده کنید،
14
00:00:24,000 –> 00:00:26,800
بنابراین قبل از شروع کار می
15
00:00:26,800 –> 00:00:29,519
خواهم به این پسر در اینجا امتیاز بدهم بنابراین او
16
00:00:29,519 –> 00:00:30,960
این کد مار را
17
00:00:30,960 –> 00:00:34,000
هشت سال پیش در github پست کرد. و من از
18
00:00:34,000 –> 00:00:34,800
این کد استفاده می
19
00:00:34,800 –> 00:00:37,200
کنم، فقط کمی آن را بهبود دادم
20
00:00:37,200 –> 00:00:39,920
تا درک آن برای شما آسان تر باشد،
21
00:00:39,920 –> 00:00:42,480
اما اساساً این مرد اینجا شایسته امتیازات است،
22
00:00:42,480 –> 00:00:44,000
بنابراین من لینک را
23
00:00:44,000 –> 00:00:45,600
در توضیحات قرار می دهم و شما می توانید آن را کاملاً بررسی کنید.
24
00:00:45,600 –> 00:00:48,320
بیایید شروع کنیم
25
00:00:48,320 –> 00:00:50,800
و همانطور که گفتم ما از
26
00:00:50,800 –> 00:00:52,239
ماژول curses استفاده می کنیم،
27
00:00:52,239 –> 00:00:55,440
بنابراین این یک کتابخانه برای دستکاری
28
00:00:55,440 –> 00:00:56,079
صفحه
29
00:00:56,079 –> 00:00:58,719
در داخل ترمینال است و قبلاً
30
00:00:58,719 –> 00:00:59,680
در پایتون ساخته شده است،
31
00:00:59,680 –> 00:01:02,719
بنابراین نیازی به نصب آن نیست
32
00:01:02,719 –> 00:01:06,240
و ما می توانیم بلافاصله هنر را
33
00:01:06,240 –> 00:01:09,840
وارد می کنیم و سپس
34
00:01:09,840 –> 00:01:13,200
باید ابتدا صفحه نمایش خود
35
00:01:13,200 –> 00:01:17,040
را راه اندازی کنیم، بنابراین پنجره خود را تنظیم کنید بنابراین باید
36
00:01:17,040 –> 00:01:18,159
چند
37
00:01:18,159 –> 00:01:20,479
روش را از این کتابخانه فراخوانی کنیم، بنابراین می گوییم
38
00:01:20,479 –> 00:01:21,520
curses dot
39
00:01:21,520 –> 00:01:25,439
init scr init screen
40
00:01:25,439 –> 00:01:28,880
سپس با گفتن یک پنجره جدید ایجاد می کنیم
41
00:01:28,880 –> 00:01:32,880
برد مساوی است نقطه نفرین
42
00:01:32,880 –> 00:01:37,040
برنده جدید و سپس باید
43
00:01:37,040 –> 00:01:37,680
تعداد
44
00:01:37,680 –> 00:01:40,000
خطوط تعداد ستون ها و
45
00:01:40,000 –> 00:01:41,680
نقاط شروع را مشخص کنیم
46
00:01:41,680 –> 00:01:45,360
بنابراین در اینجا می گوییم 20 خط 60 ستون
47
00:01:45,360 –> 00:01:48,880
و باید از صفر شروع شود
48
00:01:48,880 –> 00:01:51,119
و در اینجا باید مراقب باشیم زیرا
49
00:01:51,119 –> 00:01:52,079
این بدان معنی است
50
00:01:52,079 –> 00:01:55,280
که مختصات y اول می آید
51
00:01:55,280 –> 00:01:59,520
و x دوم می شود و معمولاً در
52
00:01:59,520 –> 00:02:01,200
بیشتر برنامه
53
00:02:01,200 –> 00:02:03,360
ها برعکس است، بنابراین
54
00:02:03,360 –> 00:02:05,520
مراقب باشید در اینجا
55
00:02:05,520 –> 00:02:08,560
می گوییم صفحه کلید نقطه پیروزی
56
00:02:08,560 –> 00:02:11,680
یکی است، بنابراین می خواهیم از
57
00:02:11,680 –> 00:02:13,599
صفحه کلید استفاده کنیم بنابراین کلیدهای جهت دار
58
00:02:13,599 –> 00:02:16,879
مار خود را کنترل کنید سپس می گوییم
59
00:02:16,879 –> 00:02:20,959
curses no echo زیرا نمی خواهیم به
60
00:02:20,959 –> 00:02:21,680
61
00:02:21,680 –> 00:02:24,879
کاراکترهای ورودی دیگر گوش دهیم و این را
62
00:02:24,879 –> 00:02:25,680
به ترمینال خود بازتاب دهیم
63
00:02:25,680 –> 00:02:29,200
سپس می خواهیم مکان نما را مخفی
64
00:02:29,200 –> 00:02:30,239
کنیم بنابراین می گوییم
65
00:02:30,239 –> 00:02:35,599
curses dot curse
66
00:02:35,760 –> 00:02:39,120
set و این را روی صفر قرار
67
00:02:39,120 –> 00:02:42,319
می دهیم سپس می خواهیم یک مرز بکشید ما می گوییم
68
00:02:42,319 –> 00:02:46,000
win dot حاشیه صفر
69
00:02:46,000 –> 00:02:49,200
و می گوییم win dot بدون
70
00:02:49,200 –> 00:02:52,319
تاخیر یک یا درست است،
71
00:02:52,319 –> 00:02:55,200
به این معنی که ما
72
00:02:55,200 –> 00:02:56,560
منتظر ورودی بعدی
73
00:02:56,560 –> 00:02:59,680
کاربر نیستیم تا زمانی که کاربر کلید بعدی را بزند،
74
00:02:59,680 –> 00:03:00,400
75
00:03:00,400 –> 00:03:03,840
اما در عوض ما
76
00:03:03,840 –> 00:03:06,480
um هستیم و سپس فقط از آن استفاده می کند. فقط
77
00:03:06,480 –> 00:03:07,200
از
78
00:03:07,200 –> 00:03:09,760
منهای یک استفاده می کنیم اگر رویداد دیگری دریافت نکردیم
79
00:03:09,760 –> 00:03:10,959
اما
80
00:03:10,959 –> 00:03:15,280
حلقه ما همچنان می تواند ادامه داشته باشد،
81
00:03:15,280 –> 00:03:18,800
بنابراین اکنون ویندوز را تنظیم کرده ایم،
82
00:03:18,800 –> 00:03:22,319
بنابراین اکنون به منطق بازی نیاز داریم
83
00:03:22,319 –> 00:03:25,360
و برای این کار از یک حلقه while استفاده می کنیم،
84
00:03:25,360 –> 00:03:26,239
بنابراین فعلا
85
00:03:26,239 –> 00:03:30,239
فقط بگویید while true بنابراین این اساساً
86
00:03:30,239 –> 00:03:33,280
یک حلقه بی پایان است و در اینجا ما
87
00:03:33,280 –> 00:03:36,400
منتظر ورودی بعدی کاربر هستیم و
88
00:03:36,400 –> 00:03:37,040
این را
89
00:03:37,040 –> 00:03:40,239
با گفتن رویداد برابر است با win
90
00:03:40,239 –> 00:03:43,360
dot دریافت ch کاراکتر بعدی را دریافت می کنیم
91
00:03:43,360 –> 00:03:46,959
و سپس باید کاری انجام
92
00:03:46,959 –> 00:03:48,159
دهیم
93
00:03:48,159 –> 00:03:51,599
و در آخر می خواهیم
94
00:03:51,599 –> 00:03:54,640
نفرین را صدا کنیم. نقطه و برنده شوید،
95
00:03:54,640 –> 00:03:57,840
بنابراین دوباره پنجره ما را از بین میبرد و
96
00:03:57,840 –> 00:03:58,400
سپس
97
00:03:58,400 –> 00:04:01,519
امتیاز را چاپ
98
00:04:01,519 –> 00:04:04,560
میکنیم، بنابراین میخواهیم یک امتیاز را پیگیری کنیم،
99
00:04:04,560 –> 00:04:08,319
بنابراین فعلاً میگوییم امتیاز ما برابر است با
100
00:04:08,319 –> 00:04:11,599
صفر و جایی در اینجا
101
00:04:11,599 –> 00:04:16,238
هر زمان که غذا را میزنیم این را افزایش میدهیم،
102
00:04:16,238 –> 00:04:20,079
بنابراین حالا بیایید چاپ خود را بهبود دهیم.
103
00:04:20,079 –> 00:04:21,440
کمی پیام دهید بیایید از an استفاده کنیم
104
00:04:21,440 –> 00:04:25,199
رشته f و سپس می گوییم امتیاز
105
00:04:25,199 –> 00:04:29,280
یا امتیاز نهایی
106
00:04:29,280 –> 00:04:32,000
برابر است و سپس می توانیم از پرانتزهای فرفری
107
00:04:32,000 –> 00:04:33,280
با این
108
00:04:33,280 –> 00:04:36,400
رشته f استفاده کنیم و از um
109
00:04:36,400 –> 00:04:40,160
این متغیر در اینجا استفاده کنیم، بنابراین
110
00:04:40,160 –> 00:04:43,600
حالا um اجازه دهید این را ذخیره کنیم
111
00:04:43,600 –> 00:04:46,960
و این را اجرا کنیم تا بتوانیم
112
00:04:46,960 –> 00:04:49,680
از ترمینال در اینجا استفاده کنیم تا این توسط
113
00:04:49,680 –> 00:04:50,960
این
114
00:04:50,960 –> 00:04:54,800
ترمینال داخلی در ویرایشگر کد ویژوال استودیوی من است،
115
00:04:54,800 –> 00:04:57,360
اما شما همچنین می توانید از ویرایشگر معمولی خود استفاده کنید
116
00:04:57,360 –> 00:05:00,479
و سپس اسکریپت را با گفتن
117
00:05:00,479 –> 00:05:03,840
python python snake.pi اجرا کنید، بنابراین این
118
00:05:03,840 –> 00:05:05,680
نام فایل در اینجا است
119
00:05:05,680 –> 00:05:08,080
و سپس اگر این را اجرا کنیم باید
120
00:05:08,080 –> 00:05:10,160
پنجره ما را ببینید، بله، این
121
00:05:10,160 –> 00:05:13,199
کار می کند، بنابراین در اینجا ما پنجره بازی خود را داریم،
122
00:05:13,199 –> 00:05:16,240
بنابراین اجازه دهید این
123
00:05:16,240 –> 00:05:19,280
اکنون به طور بی پایان در حال اجرا است، زیرا ما
124
00:05:19,280 –> 00:05:21,199
حلقه while true را داریم،
125
00:05:21,199 –> 00:05:24,400
بنابراین من ctrl c را می زنم تا
126
00:05:24,400 –> 00:05:27,440
دوباره اسکریپت پایتون خود را متوقف کنم
127
00:05:27,440 –> 00:05:30,639
و اکنون آنچه
128
00:05:30,639 –> 00:05:34,160
ما نیاز داریم. داشتن ساختارهای داده ای برای
129
00:05:34,160 –> 00:05:37,680
پیگیری مار و غذا،
130
00:05:37,680 –> 00:05:40,960
بنابراین فرض کنید مار
131
00:05:40,960 –> 00:05:44,479
و غذا و برای مار
132
00:05:44,479 –> 00:05:47,600
از یک لیست استفاده می کنیم
133
00:05:47,600 –> 00:05:50,639
و در داخل لیست از مختصات استفاده می کنیم یا
134
00:05:50,639 –> 00:05:51,360
135
00:05:51,360 –> 00:05:55,759
مختصات را ذخیره می کنیم تا مختصات y و x
136
00:05:55,759 –> 00:05:59,360
و برای این کار می توانید از دیگری استفاده کنید.
137
00:05:59,360 –> 00:06:02,960
لیست برای هر مختصات اما حتی
138
00:06:02,960 –> 00:06:06,319
بهتر از آن اینجا یک تاپل است زیرا
139
00:06:06,319 –> 00:06:10,400
یک تاپل تغییر ناپذیر است بنابراین شما نمی
140
00:06:10,400 –> 00:06:14,000
توانید آن را بعد از ایجاد تغییر دهید
141
00:06:14,000 –> 00:06:16,960
و این خوب است زیرا ما مجبور نیستیم
142
00:06:16,960 –> 00:06:20,800
مختصات را تغییر دهیم و یک تاپل
143
00:06:20,800 –> 00:06:22,639
به پایتون اجازه می دهد
144
00:06:22,639 –> 00:06:26,400
چندین بهینه سازی را در مقایسه با لیست ها انجام
145
00:06:26,400 –> 00:06:28,560
دهد بنابراین بله پس این یک پیشرفت کوچک خوب
146
00:06:28,560 –> 00:06:30,800
در اینجا که می توانیم از آن استفاده کنیم
147
00:06:30,800 –> 00:06:33,600
و سپس اجازه دهید چند
148
00:06:33,600 –> 00:06:35,840
مختصات شروع را وارد کنیم، بنابراین می گوییم
149
00:06:35,840 –> 00:06:39,440
4 10 و 4 9
150
00:06:39,440 –> 00:06:43,199
و 4 8، بنابراین
151
00:06:43,199 –> 00:06:46,319
به یاد داشته باشید که اولین مختصات y است، بنابراین
152
00:06:46,319 –> 00:06:48,319
این همه در یک
153
00:06:48,319 –> 00:06:52,400
ردیف است اما مختصات متفاوتی دارد
154
00:06:52,400 –> 00:06:55,759
و غذای ما یک مختصات اولیه نیز دارد،
155
00:06:55,759 –> 00:06:58,720
بنابراین در اینجا دوباره از یک تاپل استفاده
156
00:06:58,720 –> 00:07:00,560
می کنیم و می گوییم این باید در
157
00:07:00,560 –> 00:07:04,639
10 20 باشد و سپس برای مثال می
158
00:07:04,639 –> 00:07:08,319
توانیم این را اینجا بکشیم تا ببینیم آیا
159
00:07:08,319 –> 00:07:11,360
برای c در snake
160
00:07:11,360 –> 00:07:15,759
برای هر مختصاتی که می خواهیم
161
00:07:15,759 –> 00:07:19,440
نقطه بگوییم کار می کند یا خیر. در کاراکتر و سپس
162
00:07:19,440 –> 00:07:22,880
می گوییم c 0 پس مختصات y
163
00:07:22,880 –> 00:07:26,479
c 1 و سپس
164
00:07:26,479 –> 00:07:29,520
اجازه دهید استفاده کنیم یا باید علامت را مشخص کنیم
165
00:07:29,520 –> 00:07:31,599
بنابراین در اینجا از یک ستاره استفاده می کنیم
166
00:07:31,599 –> 00:07:34,720
و برای
167
00:07:34,720 –> 00:07:38,160
غذای خود باید همان
168
00:07:38,160 –> 00:07:42,160
غذای غذا را بگوییم و در اینجا از علامت استفاده می کنیم.
169
00:07:42,160 –> 00:07:46,800
علامت هش و حالا اگر ما دوباره این کار را اجرا کنید،
170
00:07:46,800 –> 00:07:50,560
سپس می بینیم که ما مار خود را اینجا
171
00:07:50,560 –> 00:07:53,759
داریم و غذای خود را اینجا داریم، بنابراین
172
00:07:53,759 –> 00:07:57,120
اکنون البته مار ما باید حرکت کند،
173
00:07:57,120 –> 00:08:00,479
بنابراین بیایید دوباره این کار را متوقف کنیم
174
00:08:00,479 –> 00:08:04,960
و اوم ادامه دهیم،
175
00:08:04,960 –> 00:08:08,400
بنابراین اولین چیزی که می خواهیم تغییر دهیم این است
176
00:08:08,400 –> 00:08:09,840
که نمی خواهیم
177
00:08:09,840 –> 00:08:14,000
داشته باشیم. این به عنوان یک حلقه بی پایان است
178
00:08:14,000 –> 00:08:17,199
یا اساساً می توانیم اولین غذا را
179
00:08:17,199 –> 00:08:18,160
180
00:08:18,160 –> 00:08:21,919
فوراً در اینجا اضافه کنیم و سپس
181
00:08:21,919 –> 00:08:25,039
می خواهیم بگوییم این باید
182
00:08:25,039 –> 00:08:28,639
تا زمانی اجرا شود که کاربر کلید فرار را بزند
183
00:08:28,639 –> 00:08:29,599
184
00:08:29,599 –> 00:08:32,640
و کلید فرار به عنوان
185
00:08:32,640 –> 00:08:36,559
کلید 27 در ماژول مکان نما تعریف
186
00:08:36,559 –> 00:08:40,559
شود. این را به عنوان یک ثابت در اینجا تعریف کنید
187
00:08:40,559 –> 00:08:43,919
و سپس ما نیز می توانیم کلید را دریافت کنیم و
188
00:08:43,919 –> 00:08:44,800
اولین
189
00:08:44,800 –> 00:08:48,560
کلید کلید نفرین است،
190
00:08:48,560 –> 00:08:51,920
بنابراین ما با حرکت
191
00:08:51,920 –> 00:08:54,480
دادن مار به سمت راست
192
00:08:54,480 –> 00:08:58,480
شروع می کنیم و سپس کلید می گوییم در حالی که
193
00:08:58,480 –> 00:09:01,600
کلید برابر نیست فرار را
194
00:09:01,600 –> 00:09:04,720
ادامه می دهیم و
195
00:09:04,720 –> 00:09:08,240
در اینجا اولین کاری که می خواهیم انجام دهیم این است که
196
00:09:08,240 –> 00:09:09,839
مقداری اطلاعات اضافه
197
00:09:09,839 –> 00:09:12,880
کنیم تا بتوانیم بگوییم پنجره در
198
00:09:12,880 –> 00:09:16,399
رشته در خط 0
199
00:09:16,399 –> 00:09:21,839
و ستون 2 و در اینجا اضافه می کنیم
200
00:09:21,839 –> 00:09:25,360
و سپس می گوییم امتیاز
201
00:09:25,360 –> 00:09:28,880
به اضافه
202
00:09:28,880 –> 00:09:32,000
رشته امتیاز
203
00:09:32,000 –> 00:09:35,360
و سپس از علامت فاصله دیگری استفاده
204
00:09:35,360 –> 00:09:36,000
می کنیم تا بخواهیم
205
00:09:36,000 –> 00:09:39,040
نمره را به صفحه نمایش خود بکشیم
206
00:09:39,040 –> 00:09:41,760
سپس ما نیز میخواهیم وقتی مارمان بزرگتر میشود، سرعت را افزایش
207
00:09:41,760 –> 00:09:43,600
دهیم،
208
00:09:43,600 –> 00:09:47,360
بنابراین برای این کار ما یک
209
00:09:47,360 –> 00:09:51,120
تایم اوت تعیین میکنیم،
210
00:09:51,120 –> 00:09:53,440
بنابراین این فقط فرمول از
211
00:09:53,440 –> 00:09:54,399
کد است،
212
00:09:54,399 –> 00:09:57,600
بنابراین یک در github تا 150
213
00:09:57,600 –> 00:10:01,600
منهای طول مار
214
00:10:01,600 –> 00:10:04,800
و سپس آن را
215
00:10:04,800 –> 00:10:09,200
بر پنج تقسیم
216
00:10:09,200 –> 00:10:12,720
میکنیم متأسفانه من باید ببینم که من در پرانتز سمت راست قرار دارم،
217
00:10:12,720 –> 00:10:14,000
218
00:10:14,000 –> 00:10:17,440
بنابراین تقسیم بر پنج
219
00:10:17,440 –> 00:10:21,839
به اضافه طول مار
220
00:10:21,839 –> 00:10:26,279
تقسیم بر 10 و سپس مدول
221
00:10:26,279 –> 00:10:29,120
120، بنابراین
222
00:10:29,120 –> 00:10:33,279
باید سرعت um را
223
00:10:33,279 –> 00:10:36,560
بر اساس طول مار افزایش
224
00:10:36,560 –> 00:10:40,240
دهد، بنابراین اکنون ما تایم اوت خود را داریم.
225
00:10:40,240 –> 00:10:43,120
کاری که میخواهیم انجام دهیم این است که در اینجا
226
00:10:43,120 –> 00:10:45,279
میخواهیم کلید بعدی را که
227
00:10:45,279 –> 00:10:49,360
قبلاً در اینجا تنظیم کردهام دریافت کنیم و
228
00:10:49,360 –> 00:10:52,640
اکنون کلید ما کلید جهتنمای راست است،
229
00:10:52,640 –> 00:10:53,519
230
00:10:53,519 –> 00:10:57,040
بنابراین بیایید از آن به عنوان
231
00:10:57,040 –> 00:11:00,399
کلید قبلی استفاده کنیم تا کلید قبلی ما
232
00:11:00,399 –> 00:11:04,720
با این کلید برابر شود، سپس به دست میآییم. رویداد جدید
233
00:11:04,720 –> 00:11:08,720
و سپس در ابتدا ما
234
00:11:08,720 –> 00:11:09,200
تنظیم می