در این مطلب، ویدئو تیک تاک پا با هوش مصنوعی – آموزش پایتون (قسمت 2) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,760
سلام بچه ها من همین الان داشتم این ویدیو را ویرایش
2
00:00:02,760 –> 00:00:04,740
می کردم می خواهم یک مقدمه سریع برای
3
00:00:04,740 –> 00:00:06,390
قسمت دوم داشته باشم فقط به این دلیل که
4
00:00:06,390 –> 00:00:08,220
چند خطا وجود دارد که در
5
00:00:08,220 –> 00:00:10,080
پایان این ویدیو با آنها مواجه شدم، بنابراین واقعاً مهم است
6
00:00:10,080 –> 00:00:12,929
که شما بچه ها همه چیز را تماشا کنید زیرا من
7
00:00:12,929 –> 00:00:14,490
این کار را انجام می دهم. در انتها این خطاها را برطرف کنید و
8
00:00:14,490 –> 00:00:15,719
اگر آن را تماشا نکردید
9
00:00:15,719 –> 00:00:17,609
راه حل را پیدا نمی کنید و می دانید که
10
00:00:17,609 –> 00:00:20,279
به هر حال چه خبر است، امیدوارم بچه ها از
11
00:00:20,279 –> 00:00:22,020
ویدیو لذت ببرید، لطفاً
12
00:00:22,020 –> 00:00:25,590
حتماً آن را لایک کنید و سابسکرایب کنید و بله، پس
13
00:00:25,590 –> 00:00:28,650
اکنون به
14
00:00:28,650 –> 00:00:30,359
سراغ چیزهای سرگرم کننده تر
15
00:00:30,359 –> 00:00:32,399
یعنی هوش مصنوعی می رویم.
16
00:00:32,399 –> 00:00:34,739
17
00:00:34,739 –> 00:00:36,000
18
00:00:36,000 –> 00:00:37,050
اینجا خیلی خوب
19
00:00:37,050 –> 00:00:38,940
فقط کدنویسی اولیه است که فقط از طریق یک
20
00:00:38,940 –> 00:00:40,920
سری توابع مختلف اجرا می شود، بنابراین من فقط
21
00:00:40,920 –> 00:00:44,340
می خواهم وارد تابع اصلی خود در اینجا
22
00:00:44,340 –> 00:00:45,629
شوم و کاری که می خواهم انجام دهم این است که فقط
23
00:00:45,629 –> 00:00:47,940
این بخش کوچکی را که دارم ویرایش می کنم.
24
00:00:47,940 –> 00:00:50,129
اکنون اینجا نوشته شده است این فقط به این دلیل است
25
00:00:50,129 –> 00:00:52,980
که روشی که من قرار است انجام دهم s این است که
26
00:00:52,980 –> 00:00:54,930
حرکت کامپیوتر ما یک حرکت را به ما برمی گرداند،
27
00:00:54,930 –> 00:00:57,239
بنابراین من چیزی که می خواهم بگویم این است که می خواهم
28
00:00:57,239 –> 00:01:01,559
بگویم حرکت برابر است با کامپیوتر من خوب است،
29
00:01:01,559 –> 00:01:04,379
خوب و بعد از آن ما
30
00:01:04,379 –> 00:01:06,450
هنوز تابلو را چاپ نخواهیم کرد زیرا می خواهیم
31
00:01:06,450 –> 00:01:09,630
بررسی کنیم چیزی که من می خواهم بگویم اگر حرکت
32
00:01:09,630 –> 00:01:11,490
برابر با صفر است و این بدان معنی است
33
00:01:11,490 –> 00:01:14,460
که عملکرد حرکت کامپیوتر ما
34
00:01:14,460 –> 00:01:15,869
قادر به انجام حرکت نیست، یا
35
00:01:15,869 –> 00:01:18,360
به دلیل پر بودن تخته از
36
00:01:18,360 –> 00:01:20,340
حرکت بازیکن به آخرین موقعیت یا
37
00:01:20,340 –> 00:01:22,170
به هر دلیل عجیب دیگر. ما فقط
38
00:01:22,170 –> 00:01:26,850
میخواهیم بگوییم بازی کراوات چاپی مانند آن،
39
00:01:26,850 –> 00:01:28,259
زیرا اگر هیچ حرکت دیگری وجود نداشته باشد
40
00:01:28,259 –> 00:01:30,000
که رایانه بتواند انجام دهد، باید به
41
00:01:30,000 –> 00:01:32,790
سادگی یک بازی کراواتی باشد، در غیر این صورت این بدان معناست که
42
00:01:32,790 –> 00:01:34,259
ما حرکتی داریم که صفر نبود، بنابراین
43
00:01:34,259 –> 00:01:36,420
یک به نه بود. ما فقط آن
44
00:01:36,420 –> 00:01:40,229
حرکت را در برد وارد می کنیم و در این مورد به
45
00:01:40,229 –> 00:01:41,850
آن چه می گوییم حرف درج
46
00:01:41,850 –> 00:01:44,720
آن حرف یا هر چیز دیگری که در این مورد
47
00:01:44,720 –> 00:01:48,659
کامپیوتر ما مانند آن یک تخته ضخیم می
48
00:01:48,659 –> 00:01:51,000
شود و سپس کمی چاپ می کنیم
49
00:01:51,000 –> 00:01:52,470
پیام فقط به کاربر ما می گوید
50
00:01:52,470 –> 00:01:54,689
که چه اتفاقی افتاده است و این نیز فقط برای
51
00:01:54,689 –> 00:01:56,399
همه چیز را از هم جدا کنید تا
52
00:01:56,399 –> 00:01:58,860
دیدن شبکهای که میخواهیم چاپ کنیم راحتتر باشد
53
00:01:58,860 –> 00:02:02,670
و من فقط میگویم مکان کامپیوتر
54
00:02:02,670 –> 00:02:05,880
و سپس در این مورد دوباره دو
55
00:02:05,880 –> 00:02:10,130
اسلش معکوس و OH
56
00:02:10,130 –> 00:02:17,780
در موقعیت انجام میدهیم، حرکت میکنیم و بعد از آن
57
00:02:17,780 –> 00:02:22,520
من فقط یک کار را انجام می دهم: چرا
58
00:02:22,520 –> 00:02:24,650
که پس از انجام این کار، ما
59
00:02:24,650 –> 00:02:27,890
تخته را چاپ نمی کنیم زیرا می
60
00:02:27,890 –> 00:02:29,990
خواهیم صبر کند تا
61
00:02:29,990 –> 00:02:31,610
قبل از چاپ حرف را در تخته وارد کنیم
62
00:02:31,610 –> 00:02:34,700
و سپس این کار زیباست. خیلی برای
63
00:02:34,700 –> 00:02:38,120
کامپیوتر ما حرکت می کند کمی من مجموعه دستورالعمل های اینجا را نمی دانم،
64
00:02:38,120 –> 00:02:39,920
بنابراین اکنون می توانیم
65
00:02:39,920 –> 00:02:42,320
به سمت هوش مصنوعی واقعی حرکت کنیم، تقریباً به
66
00:02:42,320 –> 00:02:43,520
روشی که این کار می کند این است که
67
00:02:43,520 –> 00:02:45,170
از یک الگوریتم واقعاً اساسی پیروی می کنیم
68
00:02:45,170 –> 00:02:46,880
و الگوریتم هم همینطور است. پنج مرحله داشته باشید،
69
00:02:46,880 –> 00:02:48,920
مرحله اول باید بگوید
70
00:02:48,920 –> 00:02:50,780
آیا حرکتی وجود دارد که می توانیم انجام دهیم که
71
00:02:50,780 –> 00:02:53,780
در صورت وجود برنده شدن ما نتیجه می دهد،
72
00:02:53,780 –> 00:02:55,340
بیایید آن حرکت را انجام دهیم زیرا این بدان معناست که
73
00:02:55,340 –> 00:02:57,290
بازی تمام می شود و ما به عنوان رایانه برنده می شویم.
74
00:02:57,290 –> 00:03:00,560
خوب،
75
00:03:00,560 –> 00:03:02,570
بنابراین ما نمی توانیم در یک حرکت برنده شویم، آیا حرکتی وجود دارد
76
00:03:02,570 –> 00:03:04,670
که بازی می کند اگر آن حرکت را پیدا کنیم، میتوانند یکی از نوبتهای بعدی خود را انجام دهند
77
00:03:04,670 –> 00:03:06,830
که باعث میشود آنها
78
00:03:06,830 –> 00:03:10,190
برنده بازی شوند، پس آنچه
79
00:03:10,190 –> 00:03:12,110
میخواهیم بگوییم این است که نه،
80
00:03:12,110 –> 00:03:13,550
به شما اجازه نمیدهیم این
81
00:03:13,550 –> 00:03:16,340
حرکت را با حرکت به سمت آن مسدود کنیم. بعد از
82
00:03:16,340 –> 00:03:18,770
آن، ما می گوییم خوب است، بنابراین من نمی توانم برنده شوم،
83
00:03:18,770 –> 00:03:20,780
بازیکن نمی تواند برنده شود، بنابراین
84
00:03:20,780 –> 00:03:22,580
مهم نیست که کجا حرکت کنیم، بنابراین
85
00:03:22,580 –> 00:03:25,010
تصمیم می گیریم که اگر گوشه ای
86
00:03:25,010 –> 00:03:28,040
وجود نداشته باشد، یک گوشه را برای حرکت به سمت درست انتخاب می کنیم.
87
00:03:28,040 –> 00:03:29,330
انتقال به همه آنها پر شده است،
88
00:03:29,330 –> 00:03:30,770
ما بررسی می کنیم که آیا مرکز
89
00:03:30,770 –> 00:03:32,720
گرفته شده است اگر مرکز هنوز گرفته
90
00:03:32,720 –> 00:03:35,030
نشده است، مرکز را می گیریم و
91
00:03:35,030 –> 00:03:36,380
بعد از آن کاری که می خواهیم انجام دهیم این است که
92
00:03:36,380 –> 00:03:38,960
حرکت می کنیم به هر لبه باز و و و
93
00:03:38,960 –> 00:03:41,270
لبه ها کاملاً ساده هستند،
94
00:03:41,270 –> 00:03:42,440
سپس از گوشه آنها در
95
00:03:42,440 –> 00:03:45,170
مرکز سمت راست نیستند، بنابراین این پنج
96
00:03:45,170 –> 00:03:47,420
مرحله اصلی است که معتقدم
97
00:03:47,420 –> 00:03:49,670
چهار یا پنج مرحله اصلی است که من نمی دانم چهار یا پنج مرحله اصلی که
98
00:03:49,670 –> 00:03:51,980
ما به عنوان کامپیوتری که
99
00:03:51,980 –> 00:03:53,300
از طریق آن الگوریتم دنبال
100
00:03:53,300 –> 00:03:55,100
میکنیم تا مشخص کنیم کجا حرکت میکنیم، بنابراین
101
00:03:55,100 –> 00:03:56,750
اولین چیزی که میخواهم انجام دهم o است من فقط می
102
00:03:56,750 –> 00:03:58,660
خواهم لیستی از حرکات ممکن تهیه کنم و
103
00:03:58,660 –> 00:04:00,890
حرکات ممکن است که هر
104
00:04:00,890 –> 00:04:04,850
مربع خالی هنوز روی تخته باقی بماند، بنابراین برای انجام
105
00:04:04,850 –> 00:04:06,110
این کار فقط می خواهم بگویم که حرکات ممکن
106
00:04:06,110 –> 00:04:09,170
برابر است با آنها تا ترک آن مانند
107
00:04:09,170 –> 00:04:10,820
چهار حرکت کوچک انجام شود. چیزی که اینجاست، من فقط می
108
00:04:10,820 –> 00:04:12,380
خواهم به کد قدیمی خود نگاهی بیندازم، زیرا من
109
00:04:12,380 –> 00:04:15,350
آن را بسیار کارآمد انجام دادم، بله، بنابراین می گویم X 4
110
00:04:15,350 –> 00:04:21,709
X N یا X 4 X حرف
111
00:04:21,709 –> 00:04:28,100
و شماره گذاری می کنم خسته شده است اکنون ممکن است
112
00:04:28,100 –> 00:04:30,080
نداند همه اینها به چه معناست، اما آن را توضیح می دهم
113
00:04:30,080 –> 00:04:33,070
در یک ثانیه اگر حرف مساوی باشد
114
00:04:33,070 –> 00:04:38,930
خالی و X برابر با صفر نباشد، خوب است، بنابراین
115
00:04:38,930 –> 00:04:41,389
این یک جور گیج کننده به نظر می رسد، اما
116
00:04:41,389 –> 00:04:42,560
تقریباً چیزی که در
117
00:04:42,560 –> 00:04:44,509
اینجا می گوییم این است که یک حلقه for اجرا می کنیم و من
118
00:04:44,509 –> 00:04:45,860
فقط این کار را انجام می دهم فقط یک خط
119
00:04:45,860 –> 00:04:48,440
چون سریعتر است، حرف 4 برابری را می گویم، بنابراین
120
00:04:48,440 –> 00:04:51,229
این نشانگر ما خواهد بود و این
121
00:04:51,229 –> 00:04:53,750
مقدار واقعی در صفحه شمارش است،
122
00:04:53,750 –> 00:04:55,310
بنابراین کاری که یک عدد انجام می دهد این است که
123
00:04:55,310 –> 00:04:58,130
همه شاخص ها و مقادیر واقعی چیزها را به ما می دهد.
124
00:04:58,130 –> 00:05:00,530
در لیست ما، بنابراین
125
00:05:00,530 –> 00:05:02,330
به عنوان مثال در صفحه،
126
00:05:02,330 –> 00:05:08,690
چیزی شبیه 0 فضای خالی 1 X 2 O به ما می دهد و
127
00:05:08,690 –> 00:05:09,889
این به طور مناسب یک X و در یک حرف ذخیره می شود
128
00:05:09,889 –> 00:05:12,080
و سپس
129
00:05:12,080 –> 00:05:14,030
بررسی می کنیم و این فقط در همان خط است
130
00:05:14,030 –> 00:05:16,280
من فقط آن را می نویسم زیرا اگر
131
00:05:16,280 –> 00:05:18,229
حرف خالی باشد سریعتر است بنابراین
132
00:05:18,229 –> 00:05:20,810
چیزی در آنجا و شاخص ها نداریم نه 0
133
00:05:20,810 –> 00:05:22,880
زیرا ما همیشه
134
00:05:22,880 –> 00:05:24,410
در ابتدای لیست خود آن فضای خالی برای دیدن داریم، بنابراین
135
00:05:24,410 –> 00:05:26,360
نمی خواهیم رایانه فکر کند که
136
00:05:26,360 –> 00:05:28,419
آنها می توانند به موقعیت 0 بروند
137
00:05:28,419 –> 00:05:30,530
زیرا این مجاز نیست، بنابراین
138
00:05:30,530 –> 00:05:32,539
من فقط این را در X قرار دادم نمی تواند برابر 0 است، بنابراین
139
00:05:32,539 –> 00:05:35,560
این فقط شاخص های همه
140
00:05:35,560 –> 00:05:38,060
موقعیت های ممکن را که می توانیم وارد آنها شویم بررسی می کند که
141
00:05:38,060 –> 00:05:39,830
قبلاً پر نشده اند و سپس
142
00:05:39,830 –> 00:05:41,659
آن را در یک لیست قرار می دهد تا لیستی
143
00:05:41,659 –> 00:05:44,180
مانند 1 4 یا 5 6 یا چیزی شبیه به آن در
144
00:05:44,180 –> 00:05:47,530
هر موقعیتی ایجاد کند. are هنوز کامل نیست،
145
00:05:47,530 –> 00:05:49,789
بنابراین این همان کاری است که حرکت های ممکن اکنون انجام می دهند،
146
00:05:49,789 –> 00:05:51,979
پس از آن من فقط یک
147
00:05:51,979 –> 00:05:55,460
متغیر حرکت پیش فرض را در اینجا برابر با 0 قرار می
148
00:05:55,460 –> 00:05:56,360
دهم تا زمانی که به پایان
149
00:05:56,360 –> 00:05:58,340
برنامه خود رسیدیم، اگر هنوز حرکتی پیدا نکردیم
150
00:05:58,340 –> 00:06:00,560
برای انجام این کار، حرکتی که 0 خواهد بود را برمی گردانیم
151
00:06:00,560 –> 00:06:01,849
و سپس می رویم برای
152
00:06:01,849 –> 00:06:05,030
گفتن اینکه در برنامه ما تیک زدن خوب است، بنابراین اکنون
153
00:06:05,030 –> 00:06:06,380
باید مرحله اول را طی کنیم
154
00:06:06,380 –> 00:06:07,820
و اولین قدم این بود که بررسی کنیم آیا
155
00:06:07,820 –> 00:06:09,830
حرکتی وجود دارد که می توانیم انجام دهیم که منجر
156
00:06:09,830 –> 00:06:12,320
به برد شود، اکنون چند راه وجود دارد که می
157
00:06:12,320 –> 00:06:13,970
توانید این کار را انجام دهید. روشی که من به نوعی
158
00:06:13,970 –> 00:06:17,030
فهمیدم اوم کارآمدترین راه
159
00:06:17,030 –> 00:06:18,710
برای انجام آن است و منطقیتر است
160
00:06:18,710 –> 00:06:20,449
که کاری که میخواهیم انجام دهیم این است که
161
00:06:20,449 –> 00:06:24,289
یک کپی از تابلویی
162
00:06:24,289 –> 00:06:26,150
که میخواهیم جابجا میکنیم تهیه کنیم. تک تک
163
00:06:26,150 –> 00:06:30,110
موقعیت های خالی را بررسی کنید و ببینید که آیا وقتی به
164
00:06:30,110 –> 00:06:32,719
آن موقعیت در کپی تابلوی خود می رویم،
165
00:06:32,719 –> 00:06:35,639
آیا موقعیت برنده ای است یا نه
166
00:06:35,639 –> 00:06:37,020
که ممکن است گیج کننده به نظر برسد، توضیح دادن آن سخت است،
167
00:06:37,020 –> 00:06:38,099
اما اجازه دهید من فقط
168
00:06:38,099 –> 00:06:40,110
کد را با شما عزیزان مرور کنم، زیرا ما دوباره
169
00:06:40,110 –> 00:06:42,179
باید بررسی کنیم که آیا برنده شدهایم و سپس میتوانیم
170
00:06:42,179 –> 00:06:43,319
بررسی کنیم که آیا بازیکن میتواند در
171
00:06:43,319 –> 00:06:45,539
نوبت بعدی خود برنده شود، بیایید این کار را در یک حلقه برای انجام دهیم،
172
00:06:45,539 –> 00:06:47,759
بنابراین من میگویم چهار let in و
173
00:06:47,759 –> 00:06:49,249
این فقط مخفف حرف O است
174
00:06:49,249 –> 00:06:51,539
زیرا این کار باعث میشود حرف ما باشد و
175
00:06:51,539 –> 00:06:54,239
سپس X مانند این باشد، پس کاری که قرار است
176
00:06:54,239 –> 00:06:57,239
انجام دهد این است که اولین بار بررسی شود که آیا
177
00:06:57,239 –> 00:06:58,559
همیشه میتواند برنده شود و سپس بررسی میکند
178
00:06:58,559 –> 00:07:01,019
که آیا XS میتواند سفارش دهد یا نه، میخواهم بگویم برای
179
00:07:01,019 –> 00:07:04,889
من در حرکات احتمالی، بنابراین این
180
00:07:04,889 –> 00:07:06,419
موقعیتهای ما را به همه ما میدهد، مانند 1، 3
181
00:07:06,419 –> 00:07:09,089
هر موقعیتی که خالی باشد، ما
182
00:07:09,089 –> 00:07:11,459
یک کپی تخته ایجاد میکنیم که به سادگی نامیده میشود. کپی هیئت مدیره
183
00:07:11,459 –> 00:07:14,849
و برای انجام این کار می توانید یک نام مستعار بسازید
184
00:07:14,849 –> 00:07:17,969
که فقط این کار را انجام می دهد، اما اگر این کار را انجام
185
00:07:17,969 –> 00:07:18,719
می دهید به این
186
00:07:18,719 –> 00:07:20,729
معنی است که زمانی که
187
00:07:20,729 –> 00:07:23,490
کپی برد را در برنامه خود ارجاع می دهید و
188
00:07:23,490 –> 00:07:25,169
چیزی در مورد کپی برد
189
00:07:25,169 –> 00:07:27,360
تغییر می دهید، در واقع لیست اصلی اصلی ما را تغییر می دهد.
190
00:07:27,360 –> 00:07:30,329
لیست اصلی برد، بنابراین کاری که ما
191
00:07:30,329 –> 00:07:32,879
باید انجام دهیم تا یک کلون بسازیم این است که یک
192
00:07:32,879 –> 00:07:34,800
دونقطه مانند این قرار دهیم تا برنامه
193
00:07:34,800 –> 00:07:36,329
بداند که ما نمی خواهیم فقط
194
00:07:36,329 –> 00:07:38,669
با یک نام جدید به آن ارجاع دهیم و می خواهیم در
195
00:07:38,669 –> 00:07:40,589
واقع یک کپی از آن بسازیم و ایجاد کنیم. فضای جدیدی
196
00:07:40,589 –> 00:07:43,439
در حافظه برای آن می توانم
197
00:07:43,439 –> 00:07:44,939
در ویدیوی دیگری بررسی کنم که دقیقاً چگونه در پایتون کار می کند
198
00:07:44,939 –> 00:07:48,209
با چیزی که شما آن را
199
00:07:48,209 –> 00:07:50,179
می نامید. فکر می کنم چیزی وجود دارد که دوست دارم
200
00:07:50,179 –> 00:07:52,619
تغییرناپذیر و قابل تغییر باشد. من معتقدم این
201
00:07:52,619 –> 00:07:54,389
چیزی است که آنها متغیر نامیده اند زیرا لیست
202
00:07:54,389 –> 00:07:55,860
ها قابل تغییر هستند به همین دلیل می توانید انجام دادن
203
00:07:55,860 –> 00:07:57,869
چیزی شبیه به آن اوم به هر حال
204
00:07:57,869 –> 00:07:59,069
بیایید به مرحله بعدی برویم.
205
00:07:59,069 –> 00:08:04,259
میخواهم بگویم نسخه تابلویی من برابر با باقی ماندهام حالا کاری که قرار
206
00:08:04,259 –> 00:08:06,389
است انجام دهد این است که ما یک کپی از تابلوی
207
00:08:06,389 –> 00:08:09,509
خود ایجاد کردهایم، اکنون به
208
00:08:09,509 –> 00:08:12,929
سادگی نامه خود را قرار میدهیم که
209
00:08:12,929 –> 00:08:14,639
بر اساس این که در حال
210
00:08:14,639 –> 00:08:17,969
بررسی شاخص و for در حلقه for
211
00:08:17,969 –> 00:08:20,369
حرکات احتمالی هستیم، o یا X خواهد بود، بنابراین برای اولین
212
00:08:20,369 –> 00:08:23,699
موقعیت خالی فرض کنید 1
213
00:08:23,699 –> 00:08:25,469
است که بالا سمت چپ خواهد بود، ما به سادگی می رویم.
214
00:08:25,469 –> 00:08:28,169
اگر بگوییم که بالا سمت چپ برابر با o است و
215
00:08:28,169 –> 00:08:30,329
سپس اکنون بررسی میکنیم که آی