در این مطلب، ویدئو Vizualisation مسیریابی پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:27:43
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,599
در این ویدیو قصد داریم
2
00:00:01,599 –> 00:00:03,360
نگاهی به یک الگوریتم مسیریابی بسیار معروف
3
00:00:03,360 –> 00:00:05,359
به نام الگوریتم dijkstra بیاندازیم
4
00:00:05,359 –> 00:00:07,600
این الگوریتم کوتاه ترین
5
00:00:07,600 –> 00:00:09,519
مسیر را از نقطه آبی در گوشه سمت چپ بالا
6
00:00:09,519 –> 00:00:11,280
تا نقطه زردی که من
7
00:00:11,280 –> 00:00:13,360
در این برنامه ترسیم کرده ام محاسبه می کند. فقط به ما اجازه
8
00:00:13,360 –> 00:00:15,360
میدهد نقطه پایانی را تعیین کنیم، همچنین به
9
00:00:15,360 –> 00:00:17,520
ما امکان ترسیم دیواری را میدهد که
10
00:00:17,520 –> 00:00:19,359
مانع الگوریتم میشود و در این
11
00:00:19,359 –> 00:00:21,920
ویدیو ما میخواهیم این
12
00:00:21,920 –> 00:00:24,640
تجسم را با استفاده از پایتون و
13
00:00:24,640 –> 00:00:27,279
بازی ماژول pi دوباره ایجاد کنیم، بنابراین بیایید مستقیم وارد شویم
14
00:00:27,279 –> 00:00:29,519
و اگر این کار را کردید در نهایت در گوگل شغلی پیدا می کنید
15
00:00:29,519 –> 00:00:30,720
زیرا به این آموزش نگاه کردید،
16
00:00:30,720 –> 00:00:32,399
پس مطمئن شوید که یک
17
00:00:32,399 –> 00:00:34,239
لایک را در زیر بگذارید، خوب حالا ما می خواهیم
18
00:00:34,239 –> 00:00:36,320
به کدهایی در ویرایشگر بپردازیم،
19
00:00:36,320 –> 00:00:38,239
من چند خط کد از قبل
20
00:00:38,239 –> 00:00:40,800
نوشته شده است، پس به من اجازه دهید فقط به طور خلاصه این
21
00:00:40,800 –> 00:00:42,879
کد را اجرا کنید و به شما نشان دهیم که از چه
22
00:00:42,879 –> 00:00:44,559
چیزی شروع می کنیم، بنابراین وقتی آن را اجرا می کنم،
23
00:00:44,559 –> 00:00:46,800
پنجره سیاه و سفید کوچک ظاهر می شود و
24
00:00:46,800 –> 00:00:49,120
ما این امکان را داریم که
25
00:00:49,120 –> 00:00:52,079
با فشار دادن این نماد کوچک قرمز x و
26
00:00:52,079 –> 00:00:53,680
i این پنجره را ببندیم. دقیقاً همان کاری است که کد در
27
00:00:53,680 –> 00:00:55,520
ویرایشگر انجام می دهد، اما اجازه دهید من این
28
00:00:55,520 –> 00:00:57,039
خط به خط
29
00:00:57,039 –> 00:00:58,559
را مرور کنم تا همه ما در همان صفحه
30
00:00:58,559 –> 00:01:00,320
در بالای صفحه باشیم.
31
00:01:00,320 –> 00:01:02,160
ابتدا چند واردات دارم.
32
00:01:02,160 –> 00:01:04,080
برای ایجاد
33
00:01:04,080 –> 00:01:05,760
کادرهای محاورهای کوچک که
34
00:01:05,760 –> 00:01:07,760
بعداً از آنها استفاده خواهیم کرد، سپس من یک
35
00:01:07,760 –> 00:01:10,720
import دیگر دارم و pygame و
36
00:01:10,720 –> 00:01:13,119
همچنین سیستمهای ماژول زیر را وارد میکنم
37
00:01:13,119 –> 00:01:15,920
که پنجره را ایجاد میکنم، بنابراین
38
00:01:15,920 –> 00:01:18,960
عرض را روی ارتفاع 500 تنظیم کردم. به 500 و کمتر از
39
00:01:18,960 –> 00:01:21,280
آن، من یکی از آن نمایشگرهای بازی pi را مقداردهی اولیه
40
00:01:21,280 –> 00:01:23,280
کردهام و
41
00:01:23,280 –> 00:01:25,920
عرض و ارتفاع را به عنوان
42
00:01:25,920 –> 00:01:27,680
آرگومانهای این تابع در زیر که من
43
00:01:27,680 –> 00:01:29,920
متد اصلی دارم و
44
00:01:29,920 –> 00:01:32,640
متد اصلی حلقه اصلی ما را در خود جای میدهد.
45
00:01:32,640 –> 00:01:34,400
حلقه اصلی اینجاست و حلقه اصلی در
46
00:01:34,400 –> 00:01:36,400
حال حاضر هنوز خالی به نظر می رسد
47
00:01:36,400 –> 00:01:39,520
تنها چیزی که دارد این بلوک کد استاندارد است
48
00:01:39,520 –> 00:01:41,360
و کاری که این بلوک کد به ما اجازه می دهد انجام دهیم این
49
00:01:41,360 –> 00:01:44,079
است که اساساً پنجره را
50
00:01:44,079 –> 00:01:45,600
51
00:01:45,600 –> 00:01:47,600
ببندیم که پنجره سیاه کوچکی را که داریم می بینید و چه زمانی
52
00:01:47,600 –> 00:01:49,920
روی x کوچک فشار می دهم، پنجره بسته می شود
53
00:01:49,920 –> 00:01:51,439
و این دقیقاً همان کاری است که این
54
00:01:51,439 –> 00:01:53,680
بلوک کد انجام می دهد و در زیر
55
00:01:53,680 –> 00:01:57,600
آن یک پنجره پر می کنیم که پنجره ما را
56
00:01:57,600 –> 00:02:00,000
با رنگ سیاه پر می کند و در
57
00:02:00,000 –> 00:02:02,960
نهایت یک متد تلنگر صفحه نمایش فراخوانی می
58
00:02:02,960 –> 00:02:04,799
شود و این اساساً فقط
59
00:02:04,799 –> 00:02:06,719
نمایشگر را به روز می کند تا بسیاری از شما ممکن است عادت داشته باشید.
60
00:02:06,719 –> 00:02:08,878
برای استفاده از بهروزرسانی
61
00:02:08,878 –> 00:02:10,959
نمایشگر بهجای تلنگر نمایشگر، میتوانید از
62
00:02:10,959 –> 00:02:13,920
یکی از یکی در اینجا استفاده کنید، هر دو کار میکنند
63
00:02:13,920 –> 00:02:16,160
و در پایان من
64
00:02:16,160 –> 00:02:18,239
روش اصلی را فراخوانی میکنم، کاری که میخواهیم انجام دهیم این
65
00:02:18,239 –> 00:02:20,000
است که میخواهیم چیزی شبیه به این ایجاد کنیم.
66
00:02:20,000 –> 00:02:22,560
بنابراین میخواهیم یک
67
00:02:22,560 –> 00:02:23,599
68
00:02:23,599 –> 00:02:27,120
الگوی شبکهای ایجاد کنیم و میخواهیم
69
00:02:27,120 –> 00:02:29,920
این شبکه را با پر کردن جعبه سیاهی که
70
00:02:29,920 –> 00:02:32,720
در حال حاضر داریم با کادرهای کوچک ایجاد کنیم
71
00:02:32,720 –> 00:02:35,200
و این کادرها
72
00:02:35,200 –> 00:02:38,720
با استفاده از یک جفت شاخص قابل شناسایی هستند
73
00:02:38,720 –> 00:02:41,120
تا ایندکس برود. به صورت افقی،
74
00:02:41,120 –> 00:02:43,200
نمایه ای به نام i
75
00:02:43,200 –> 00:02:45,120
و شاخصی که به صورت عمودی
76
00:02:45,120 –> 00:02:47,760
می رود، شاخصی به نام j خواهد بود، بنابراین وقتی در
77
00:02:47,760 –> 00:02:50,720
مورد کادری با شاخص 0 0 صحبت می کنیم، در مورد کادری
78
00:02:50,720 –> 00:02:53,680
در بالا سمت چپ صحبت می کنیم
79
00:02:53,680 –> 00:02:56,000
و به طور مشابه اگر ما در حال صحبت کردن در مورد
80
00:02:56,000 –> 00:02:58,959
کادر با شاخص 25 25 ما در
81
00:02:58,959 –> 00:03:00,720
مورد این مورد در پایین سمت راست صحبت می کنیم، بنابراین
82
00:03:00,720 –> 00:03:02,879
هر کادر در شبکه به طور منحصر به
83
00:03:02,879 –> 00:03:05,680
فرد با یک جفت شاخص قابل شناسایی است،
84
00:03:05,680 –> 00:03:08,400
بنابراین چگونه می توانیم چیزی ایجاد کنیم که اولین چیزی که به نظر می رسد
85
00:03:08,400 –> 00:03:10,720
شبیه به آن باشد.
86
00:03:10,720 –> 00:03:13,599
قرار است چند
87
00:03:13,599 –> 00:03:17,120
ستون و چند سطر ایجاد کنیم و
88
00:03:17,120 –> 00:03:20,640
بگوییم که 25 ستون و 25
89
00:03:20,640 –> 00:03:22,800
سطر داریم علاوه بر این باید
90
00:03:22,800 –> 00:03:24,239
91
00:03:24,239 –> 00:03:25,040
92
00:03:25,040 –> 00:03:26,799
عرض و ارتفاع هر یک از اینها را مشخص کنیم.
93
00:03:26,799 –> 00:03:29,040
بنابراین ما عرض
94
00:03:29,040 –> 00:03:31,599
را برابر عرض پنجره تقسیم بر
95
00:03:31,599 –> 00:03:33,200
تعداد ستون ها تنظیم می کنیم
96
00:03:33,200 –> 00:03:36,319
و ارتفاع کادر
97
00:03:36,319 –> 00:03:38,319
برابر با ارتفاع پنجره تقسیم
98
00:03:38,319 –> 00:03:40,560
بر تعداد ردیف ها پس از انجام این
99
00:03:40,560 –> 00:03:43,680
کار، خواهد بود. دوباره یک آرایه خالی ایجاد می کنیم
100
00:03:43,680 –> 00:03:45,360
و این آرایه خالی
101
00:03:45,360 –> 00:03:46,799
شبکه نامیده می شود،
102
00:03:46,799 –> 00:03:49,360
اکنون این آرایه خالی
103
00:03:49,360 –> 00:03:51,519
تمام جعبه های فردی را ذخیره می کند که
104
00:03:51,519 –> 00:03:52,959
در این تصویر به شما نشان دادم
105
00:03:52,959 –> 00:03:55,280
همه این جعبه های فردی قرار
106
00:03:55,280 –> 00:03:57,760
است در این آرایه شبکه ذخیره شوند. اما
107
00:03:57,760 –> 00:03:59,040
ما فقط در یک
108
00:03:59,040 –> 00:04:00,879
لحظه یک بار به آن خواهیم رسید این کار را انجام دادیم
109
00:04:00,879 –> 00:04:04,080
که یک کلاس جدید به نام box
110
00:04:04,080 –> 00:04:06,239
ایجاد می کنیم و در آن چند متد ایجاد می کنیم
111
00:04:06,239 –> 00:04:08,239
که اولی یک متد init خواهد بود
112
00:04:08,239 –> 00:04:10,400
و در آنجا می توانید ببینید که
113
00:04:10,400 –> 00:04:12,879
ما دو شاخص را داریم که قبلاً در مورد آنها صحبت
114
00:04:12,879 –> 00:04:14,720
کردم. i و j
115
00:04:14,720 –> 00:04:17,120
به این ترتیب است که
116
00:04:17,120 –> 00:04:19,358
هر یک از این کادرها را شناسایی می کنیم، بنابراین
117
00:04:19,358 –> 00:04:22,479
self.xsi را می نویسیم و self.y j است و
118
00:04:22,479 –> 00:04:24,320
این موقعیت کادر را به ما می گوید
119
00:04:24,320 –> 00:04:26,800
و بعد از آن ما هستیم اکنون میخواهیم
120
00:04:26,800 –> 00:04:30,560
یک متد ترسیم در این کلاس ایجاد کنیم،
121
00:04:30,560 –> 00:04:32,400
روش ترسیم به ما کمک میکند
122
00:04:32,400 –> 00:04:36,080
این کادرهای جداگانه را
123
00:04:36,080 –> 00:04:38,160
روی بوم خود
124
00:04:38,160 –> 00:04:40,160
بکشیم و چند
125
00:04:40,160 –> 00:04:42,000
آرگومان لازم دارد و پنجرهای را میگیرد که میخواهیم
126
00:04:42,000 –> 00:04:43,040
127
00:04:43,040 –> 00:04:45,440
کادرها را در آن رسم کنیم.
128
00:04:45,440 –> 00:04:47,680
پنجره در اینجا، بنابراین ما آن را به عنوان
129
00:04:47,680 –> 00:04:49,759
یک آرگومان در اینجا منتقل می کنیم و علاوه بر
130
00:04:49,759 –> 00:04:51,680
آن
131
00:04:51,680 –> 00:04:52,960
رنگ کادر را نیز
132
00:04:52,960 –> 00:04:55,919
به عنوان آرگومان می گیرد، بنابراین با گرفتن
133
00:04:55,919 –> 00:04:58,800
134
00:04:58,800 –> 00:05:00,400
رنگ های مختلف برای بخش های مختلف
135
00:05:00,400 –> 00:05:02,240
الگوریتم، این جلوه تجسم زیبا را دریافت می کنیم.
136
00:05:02,240 –> 00:05:03,600
137
00:05:03,600 –> 00:05:06,000
بعد از آن خیلی زیبا به نظر می رسیم متد draw
138
00:05:06,000 –> 00:05:07,360
erect را
139
00:05:07,360 –> 00:05:10,479
از ماژول بازی pi فراخوانی کنید و
140
00:05:10,479 –> 00:05:12,160
در اینجا چند
141
00:05:12,160 –> 00:05:14,720
آرگومان را ابتدا در
142
00:05:14,720 –> 00:05:17,520
پنجره ای که مستطیل
143
00:05:17,520 –> 00:05:19,600
را می کشیم منتقل می کنیم و سپس به رنگ مستطیل می پردازیم.
144
00:05:19,600 –> 00:05:20,880
145
00:05:20,880 –> 00:05:23,600
مختصات x مستطیل
146
00:05:23,600 –> 00:05:26,479
مختصات y و همچنین عرض
147
00:05:26,479 –> 00:05:28,639
و ارتفاع را اکنون خواهید دید که من
148
00:05:28,639 –> 00:05:30,880
دو پیکسل از عرض
149
00:05:30,880 –> 00:05:32,800
و ارتفاع کم کردهام در حالی که این کار را انجام میدهم شما میبینید
150
00:05:32,800 –> 00:05:34,639
که فقط در یک لحظه
151
00:05:34,639 –> 00:05:36,639
پس از آن
152
00:05:36,639 –> 00:05:39,360
آخرین کاری که باید
153
00:05:39,360 –> 00:05:41,840
در اینجا قبل از روش اصلی انجام دهم و
154
00:05:41,840 –> 00:05:42,880
این است که در
155
00:05:42,880 –> 00:05:46,479
واقع تمام نمونه
156
00:05:46,479 –> 00:05:50,080
های جعبه را در این آرایه شبکه ای که
157
00:05:50,080 –> 00:05:51,759
در اینجا ایجاد کردیم ذخیره کنید،
158
00:05:51,759 –> 00:05:52,560
بنابراین
159
00:05:52,560 –> 00:05:55,039
پس از اینکه
160
00:05:55,039 –> 00:05:58,240
همه این کادرهای جداگانه را اضافه کردیم، در
161
00:05:58,240 –> 00:06:00,240
اینجا می توانید ببینید که ما در حال ایجاد
162
00:06:00,240 –> 00:06:01,600
نمونه هایی
163
00:06:01,600 –> 00:06:04,080
از جعبه کلاس هستیم و آن را
164
00:06:04,080 –> 00:06:07,520
به آرایه اضافه می کنیم و پس از ضمیمه کردن آن
165
00:06:07,520 –> 00:06:10,720
به این آرایه، آرایه را به آرایه گرید الحاق می کنیم
166
00:06:10,720 –> 00:06:12,639
167
00:06:12,639 –> 00:06:15,280
بسیار خوب، بنابراین اکنون شبکه را
168
00:06:15,280 –> 00:06:18,400
با تمام این نمونه های کلاس پر کرده ایم.
169
00:06:18,400 –> 00:06:20,720
جعبه چیز نهایی که
170
00:06:20,720 –> 00:06:22,400
برای ترسیم شبکه در
171
00:06:22,400 –> 00:06:24,720
پنجره خود باید تابع ترسیم
172
00:06:24,720 –> 00:06:27,520
را در کادر کلاس در هر
173
00:06:27,520 –> 00:06:30,240
کادر جداگانه فراخوانی کنیم، بنابراین با چرخش در
174
00:06:30,240 –> 00:06:32,319
تمام ستون ها و تمام ردیف ها می
175
00:06:32,319 –> 00:06:34,240
توانیم به هر کادر جداگانه در
176
00:06:34,240 –> 00:06:37,199
شبکه اشاره کنیم. و تابع رسم را روی آن اعمال کنید
177
00:06:37,199 –> 00:06:40,160
و خب حالا بیایید جلو برویم و این را اجرا کنیم
178
00:06:40,160 –> 00:06:43,120
تا ببینیم نتیجه این کار چیست، بنابراین
179
00:06:43,120 –> 00:06:45,120
اگر این را اجرا کنم می بینید
180
00:06:45,120 –> 00:06:48,400
که این شبکه بسیار زیبا را ایجاد کرده ام
181
00:06:48,400 –> 00:06:49,840
و فکر می کنم کمی خواهد بود برای شما تاریک است،
182
00:06:49,840 –> 00:06:52,160
اجازه دهید فقط رنگ را تغییر دهم
183
00:06:52,160 –> 00:06:54,000
تا مطمئن شوم که
184
00:06:54,000 –> 00:06:55,120
185
00:06:55,120 –> 00:06:56,960
روی صفحه نمایش شما
186
00:06:56,960 –> 00:06:59,520
کمی واضح تر به نظر می رسد.
187
00:06:59,520 –> 00:07:01,360
188
00:07:01,360 –> 00:07:05,280
اکنون در رنگ
189
00:07:05,280 –> 00:07:06,319
خاکستری
190
00:07:06,319 –> 00:07:08,240
چیزی که من هنوز می خواهم توضیح دهم این است
191
00:07:08,240 –> 00:07:11,360
که چرا ما در اینجا یک عدد 2 را از
192
00:07:11,360 –> 00:07:13,280
عرض و ارتفاع کم می کنیم، بنابراین بیایید
193
00:07:13,280 –> 00:07:15,440
بگوییم که من از شر آن خلاص می شوم و می بینید
194
00:07:15,440 –> 00:07:16,400
195
00:07:16,400 –> 00:07:18,880
که حاشیه اطراف جعبه
196
00:07:18,880 –> 00:07:20,319
به سادگی نیست. دیگر آنجا
197
00:07:20,319 –> 00:07:22,960
خواهیم بود و ما به سادگی این هواپیمای خاکستری را داریم، بنابراین
198
00:07:22,960 –> 00:07:26,080
من باید یک dd نوعی حاشیه
199
00:07:26,080 –> 00:07:27,680
در اطراف اینجا
200
00:07:27,680 –> 00:07:31,039
به طوری که ما این اثر شبکه ای زیبا را داشته
201
00:07:31,039 –> 00:07:33,280
باشیم، به همین دلیل است که من دو پیکسل را
202
00:07:33,280 –> 00:07:36,000
از عرض و
203
00:07:36,000 –> 00:07:37,759
ارتفاع کم کردم.
204
00:07:37,759 –> 00:07:40,080
205
00:07:40,080 –> 00:07:41,919
جعبههای مختلف
206
00:07:41,919 –> 00:07:45,120
بسته به عملکردشان، بنابراین در
207
00:07:45,120 –> 00:07:46,240
پنجره رنگ
208
00:07:46,240 –> 00:07:47,360
209
00:07:47,360 –> 00:07:50,319
، فرض کنید که کادر بالا سمت چپ
210
00:07:50,319 –> 00:07:52,160
باید نقطه شروع باشد، سپس
211
00:07:52,160 –> 00:07:54,560
باید بتوانیم یک رنگ خاص
212
00:07:54,560 –> 00:07:57,520
به آن اضافه کنیم یا فرض کنید برای مثال، یک دیوار اضافه میکنیم تا
213
00:07:57,520 –> 00:07:59,440
مانع الگوریتم شود.
214
00:07:59,440 –> 00:08:01,599
در اینجا، پس این سه
215
00:08:01,599 –> 00:08:04,560
کادر باید رنگ دیگری داشته باشند و
216
00:08:04,560 –> 00:08:07,520
همان چیزی باید در مورد هدف اعمال شود،
217
00:08:07,520 –> 00:08:09,759
بنابراین نقطه ای که الگوریتم باید در آن پایان یابد
218
00:08:09,759 –> 00:08:13,039
، چگونه می توانیم این طرح رنگی را
219
00:08:13,039 –> 00:08:13,919
220
00:08:13,919 –> 00:08:16,000
برای کادرهای مختلف ایجاد کنیم، بنابراین در
221
00:08:16,000 –> 00:08:17,919
ویرایشگر به روشی که می خواهیم بازگردیم. دوباره این کار را انجام می دهیم این است
222
00:08:17,919 –> 00:08:20,720
که ما پرچم های مختلفی را برای
223
00:08:20,720 –> 00:08:22,800
جعبه های مختلف در اینجا تنظیم می کنیم،
224
00:08:22,800 –> 00:08:26,319
من یک پرچم برای جعبه شروع ایجاد کرده ام،
225
00:08:26,319 –> 00:08:29,759
یک پرچم برای جعبه های دیواری و یک پرچم
226
00:08:29,759 –> 00:08:32,159
برای جعبه هدف، اجازه دهید به طور خلاصه
227
00:08:32,159 –> 00:08:35,919
بروم و باز کنم را پنجره paint را مجدداً
228
00:08:35,919 –> 00:08:38,958
در اینجا، اگر
229
00:08:38,958 –> 00:08:41,360
اولین کادر را در اینجا داشته باشیم و
230
00:08:41,360 –> 00:08:43,440
فرض کنیم که این کادر جایی است که
231
00:08:43,440 –> 00:08:46,000
الگوریتم شروع می شود، در این کادر
232
00:08:46,000 –> 00:08:48,160
باید پرچم شروع در اینجا به درستی تنظیم شود، به
233
00:08:48,160 –> 00:08:51,200
طور مشابه این سه کادر در
234
00:08:51,200 –> 00:08:52,000
اینجا
235
00:08:52,000 –> 00:08:54,720
که هستند برای ساختن دیوار ما
236
00:08:54,720 –> 00:08:57,600
باید پرچم دیوار روی true تنظیم شود و
237
00:08:57,600 –> 00:09:00,399
در نهایت اگر نقطه پایانی داشته باشیم،
238
00:09:00,399 –> 00:09:02,880
پرچم هدف را روی true تنظیم خواهیم کرد
239
00:09:02,880 –> 00:09:05,279
، بنابراین این همان کاری است که این سه
240
00:09:05,279 –> 00:09:07,680
پرچم انجام می دهند، سپس در زیر ما
241
00:09:07,680 –> 00:09:09,920
قرار است کادر شروع را در گوشه بالا
242
00:09:09,920 –> 00:09:13,360
سمت چپ تنظیم کنیم، دقیقاً مانند آنچه در
243
00:09:13,360 –> 00:09:15,839
این پنجره رنگ وجود دارد،
244
00:09:15,839 –> 00:09:18,160
این شروع
245
00:09:18,160 –> 00:09:20,320
از اینجا خواهد بود
246
00:09:20,320 –> 00:09:24,320
و از آنجایی که این دارای شاخص 0 0 است
247
00:09:24,320 –> 00:09:27,040
، ایندکس های مناسب را
248
00:09:27,040 –> 00:09:29,120
در اینجا به عنوان نشان می دهیم. خوب،
249
00:09:29,120 –> 00:09:31,200
بنابراین از آنجایی که این جعبه شروع ما است،
250
00:09:31,200 –> 00:09:32,720
باید پرچم
251
00:09:32,720 –> 00:09:35,120
را نیز تنظیم کنیم و در مرحله بعدی پرچم شروع را روی true
252
00:09:35,120 –> 00:09:36,640
قرار می دهیم، به
253
00:09:36,640 –> 00:09:39,040
روش اصلی پایین می رویم و متغیری ایجاد می
254
00:09:39,040 –> 00:09:41,040
کنیم که باعث می شود الگوریتم شما
255
00:09:41,040 –> 00:09:42,800
اکنون نیازی به نگرانی در مورد آن ندارید ما
256
00:09:42,800 –> 00:09:44,959
بعداً از این استفاده خواهیم کرد اما
257
00:09:44,959 –> 00:09:46,399
در ابتدا
258
00:09:46,399 –> 00:09:48,959
روی false تنظیم می شود و
259
00:09:48,959 –> 00:09:51,279
با
260
00:09:51,279 –> 00:09:53,519
فشار دادن یک کلید روی صفحه کلید خود این متغیر را فعال می کنیم بنابراین
261
00:09:53,519 –> 00:09:55,600
هر زمان که فشار دادیم بیایید بگوییم فاصله
262
00:09:55,600 –> 00:09:59,040
و الگوریتم شروع می شود، سپس این
263
00:09:59,040 –> 00:10:02,320
مقدار روی true تنظیم می شود، علاوه بر این،
264
00:10:02,320 –> 00:10:04,959
265
00:10:04,959 –> 00:10:08,000
متغیر مجموعه جعبه هدف را نیز روی false قرار می
266
00:10:08,000 –> 00:10:10,160
دهیم، زیرا می توانیم کادر هدف را تنظیم کنیم
267
00:10:10,160 –> 00:10:12,480
تا کادری که الگوریتم
268
00:10:12,480 –> 00:10:15,040
مسیر را پیدا می کند نقطه پایان به صورت دستی
269
00:10:15,040 –> 00:10:16,240
با ماوس خود،
270
00:10:16,240 –> 00:10:18,720
بنابراین تا زمانی که این
271
00:10:18,720 –> 00:10:20,160
متغیر تنظیم نشده است، نتوانیم الگوریتم را اجرا کنیم و بنابراین
272
00:10:20,160 –> 00:10:22,079
در اینجا آن را روی false قرار می دهیم و سپس
273
00:10:22,079 –> 00:10:24,399
در پایین تر،
274
00:10:24,399 –> 00:10:27,360
برخی از کنترل های ماوس را ایجاد می کنیم تا زمانی که
275
00:10:27,360 –> 00:10:30,880
دیوار را بکشیم. که مانع از الگوریتم
276
00:10:30,880 –> 00:10:34,000
مورد نیاز ما برای گرفتن موقعیت ماوس می شود و
277
00:10:34,000 –> 00:10:35,680
این دقیقاً همان کاری است که ما در این بلوک کد انجام می دهیم،
278
00:10:35,680 –> 00:10:36,560
279
00:10:36,560 –> 00:10:39,120
بنابراین در اینجا ما در حال
280
00:10:39,120 –> 00:10:41,920
بررسی این رویداد هستیم که یک حرکت ماوس را تایپ کنیم
281
00:10:41,920 –> 00:10:42,880
،
282
00:10:42,880 –> 00:10:45,279
بنابراین اگر ماوس خود را حرکت می دهیم، آن
283
00:10:45,279 –> 00:10:48,399
را تنظیم می کنیم. متغیر x برابر با
284
00:10:48,399 –> 00:10:51,120
موقعیت x و متغیر y است برابر با
285
00:10:51,120 –> 00:10:53,440
موقعیت y روی صفحه نمایش خود،
286
00:10:53,440 –> 00:10:56,720
میتوانیم بلوک کد کوچک دیگری داشته
287
00:10:56,720 –> 00:10:59,680
باشیم که به ما کمک
288
00:10:59,680 –> 00:11:02,240
میکند دیواری را ترسیم کنیم که مانع الگوریتم میشود،
289
00:11:02,240 –> 00:11:03,600
بنابراین در اینجا
290
00:11:03,600 –> 00:11:06,160
میگوییم که اگر دکمههای نقطه رویداد
291
00:11:06,160 –> 00:11:09,200
صفر باشد، اساساً به این معنی است که
292
00:11:09,200 –> 00:11:10,800
هر زمان
293
00:11:10,800 –> 00:11:13,040
دکمه سمت چپ ماوس فشار داده می شود،
294
00:11:13,040 –> 00:11:15,120
بنابراین این معادل فشار دادن دکمه سمت چپ ماوس است
295
00:11:15,120 –> 00:11:17,920
، سپس ابتدا
296
00:11:17,920 –> 00:11:21,760
297
00:11:21,760 –> 00:11:25,440
شاخص کادر انتخاب شده را تنظیم می کنیم، بنابراین
298
00:11:25,440 –> 00:11:28,079
شاخص i و شاخص j را تنظیم می
299
00:11:28,079 –> 00:11:31,279
کنیم و می رویم. برای تنظیم پرچم دیوار
300
00:11:31,279 –> 00:11:34,480
در اینجا از این آیتم شبکه خاص روی
301
00:11:34,480 –> 00:11:38,240
true و در نهایت
302
00:11:38,240 –> 00:11:41,279
هدف را تعیین می کنیم تا هدف
303
00:11:41,279 –> 00:11:43,760
اساساً نقطه ای باشد که
304
00:11:43,760 –> 00:11:45,920
الگوریتم قرار است به آنجا اجرا شود تا
305
00:11:45,920 –> 00:11:50,079
مسیر به کجا ختم شود و آه. برای
306
00:11:50,079 –> 00:11:51,519
تنظیم این،
307
00:11:51,519 –> 00:11:53,600
میخواهیم بگوییم که
308
00:11:53,600 –> 00:11:55,760
دکمه سمت چپ ماوس
309
00:11:55,760 –> 00:11:58,079
باید فشار داده شود، بنابراین این
310
00:11:58,079 –> 00:12:00,160
دو دکمه نقطه رویداد اساساً به این معنی است که دکمه چپ
311
00:12:00,160 –> 00:12:02,320
ماوس باید فشار داده شود و
312
00:12:02,320 –> 00:12:03,600
علاوه بر آن
313
00:12:03,600 –> 00:12:06,480
، بررسی کنیم که آیا
314
00:12:06,480 –> 00:12:08,639
جعبه هدف متغیر set که
315
00:12:08,639 –> 00:12:09,600
در اینجا ایجاد کردیم
316
00:12:09,600 –> 00:12:11,839
روی false تنظیم شده است،
317
00:12:11,839 –> 00:12:12,800
318
00:12:12,800 –> 00:12:16,800
بنابراین اگر
319
00:12:16,800 –> 00:12:19,519
متغیر جعبه هدف را
320
00:12:19,519 –> 00:12:21,360
تنظیم کنیم، این متغیر را روی true تنظیم می کنیم و
321
00:12:21,360 –> 00:12:22,720
دیگر نمی توانیم هدف را به درستی تغییر دهیم
322
00:12:22,720 –> 00:12:23,519
،
323
00:12:23,519 –> 00:12:25,519
324
00:12:25,519 –> 00:12:27,680
علاوه بر این، می توانید در اینجا ببینید که
325
00:12:27,680 –> 00:12:29,680
ما پرچم مناسب را تنظیم میکنیم،
326
00:12:29,680 –> 00:12:32,160
زیرا در جعبه هدف،
327
00:12:32,160 –> 00:12:34,480
هدف پرچم روی درست تنظیم میشود و
328
00:12:34,480 –> 00:12:37,440
پس از آن، ما در حال بررسی
329
00:12:37,440 –> 00:12:39,920
فشار کلید روی صفحهکلید خود هستیم و این
330
00:12:39,920 –> 00:12:42,160
الگوریتم ما را شروع میکند،
331
00:12:42,160 –> 00:12:44,639
بنابراین هر زمان که نوع رویداد
332
00:12:44,639 –> 00:12:46,880
یک بنابراین هر زمان که صفحه کلید را فشار می دهیم
333
00:12:46,880 –> 00:12:47,920
334
00:12:47,920 –> 00:12:49,920
و علاوه بر آن کادر هدف
335
00:12:49,920 –> 00:12:52,079
تنظیم می شود، بنابراین ما فقط می توانیم
336
00:12:52,079 –> 00:12:54,720
اجرای الگوریتم را هر زمان که هدف
337
00:12:54,720 –> 00:12:57,040
تنظیم شده است شروع کنیم، بنابراین اگر
338
00:12:57,040 –> 00:12:58,959
نقطه پایانی برای الگوریتم نداریم، البته ما
339
00:12:58,959 –> 00:13:01,440
نباید بتوان آن را اجرا کرد، بنابراین فقط اگر
340
00:13:01,440 –> 00:13:03,680
این دو مورد اعمال شوند، یک دکمه
341
00:13:03,680 –> 00:13:06,480
فشار داده شود و کادر هدف تنظیم شده باشد، فقط
342
00:13:06,480 –> 00:13:08,720
جستجو را شروع می کنیم و سپس در
343
00:13:08,720 –> 00:13:10,720
پایین تر مطمئن می شویم
344
00:13:10,720 –> 00:13:12,639
که کادرهای جداگانه کشیده شده اند.
345
00:13:12,639 –> 00:13:14,880
رنگ مناسب پس اگر شروع f تاخیر تنظیم شده است،
346
00:13:14,880 –> 00:13:17,279
347
00:13:17,279 –> 00:13:19,200
اگر پرچم دیوار تنظیم شده باشد،
348
00:13:19,200 –> 00:13:20,560
از یک رنگ استفاده می کنیم، از رنگ دیگری استفاده می کنیم
349
00:13:20,560 –> 00:13:22,560
و در نهایت اگر پرچم هدف تنظیم شد
350
00:13:22,560 –> 00:13:24,240
، از رنگ سوم استفاده می کنیم، بنابراین
351
00:13:24,240 –> 00:13:28,079
بیایید این را اجرا کنیم.
352
00:13:28,079 –> 00:13:30,160
و شما می توانید ببینید که کادر بالا
353
00:13:30,160 –> 00:13:32,079
سمت چپ
354
00:13:32,079 –> 00:13:34,000
کمی متفاوت رنگ شده است،
355
00:13:34,000 –> 00:13:35,920
این رنگ آبی روشن است و دلیل آن این است
356
00:13:35,920 –> 00:13:38,480
که پرچم شروع این کادر
357
00:13:38,480 –> 00:13:40,639
روی true تنظیم شده است، این نقطه شروع ما است،
358
00:13:40,639 –> 00:13:43,120
اکنون تماشا کنید که وقتی فشار می دهم چه اتفاقی می افتد
359
00:13:43,120 –> 00:13:45,440
دکمه سمت چپ ماوس را می بینید که می توانم
360
00:13:45,440 –> 00:13:47,760
آن را به اطراف بکشم و دیوارهایی
361
00:13:47,760 –> 00:13:49,760
ایجاد کنم که بعداً الگوریتم را مسدود می کنند،
362
00:13:49,760 –> 00:13:52,959
وقتی دکمه سمت راست
363
00:13:52,959 –> 00:13:54,160
ماوس را فشار
364
00:13:54,160 –> 00:13:56,480
می دهم، می بینید که این کادر زرد ظاهر می شود