در این مطلب، ویدئو پروژه توسعه بازی پایتون با استفاده از OOP – آموزش Minesweeper (w/ Tkinter) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 2:27:14
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:02,000
جیم در این دوره آموزشی به شما کمک می کند تا
2
00:00:02,000 –> 00:00:04,240
مهارت های پایتون خود را با آموزش
3
00:00:04,240 –> 00:00:06,560
ساختن یک بازی ذهن
4
00:00:06,560 –> 00:00:09,040
5
00:00:09,040 –> 00:00:11,679
6
00:00:11,679 –> 00:00:13,920
7
00:00:13,920 –> 00:00:15,759
جاروگر بهبود بخشید. پروژه
8
00:00:15,759 –> 00:00:18,080
بعد از یادگیری اصول اولیه این
9
00:00:18,080 –> 00:00:20,320
سری از ویدیوها دقیقا برای شماست
10
00:00:20,320 –> 00:00:22,320
زیرا در این سری از ویدیوها ما
11
00:00:22,320 –> 00:00:25,199
قصد داریم یک بازی با پایتون توسعه
12
00:00:25,199 –> 00:00:27,920
دهیم اگر اصول اولیه را بدانید و یک
13
00:00:27,920 –> 00:00:30,400
دوره مقدماتی را گذرانده باشید فارغ از اینکه در چه کانال یا
14
00:00:30,400 –> 00:00:32,960
دوره ای است. پس این همان
15
00:00:32,960 –> 00:00:34,559
سری است که شما به دنبال آن هستید زیرا
16
00:00:34,559 –> 00:00:37,040
به شما اصول اولیه چگونگی
17
00:00:37,040 –> 00:00:40,160
شروع ساخت یک پروژه پایتون را می دهد اکنون
18
00:00:40,160 –> 00:00:42,640
در این سری یک بازی
19
00:00:42,640 –> 00:00:44,879
به نام Minesweeper توسعه خواهیم داد که
20
00:00:44,879 –> 00:00:47,280
به عنوان یک بازی تک نفره شناخته می شود که
21
00:00:47,280 –> 00:00:49,680
بسیار سرگرم کننده است. برای بازی و همچنین چالش برانگیز،
22
00:00:49,680 –> 00:00:51,680
بیایید ببینیم چه بازی ای را یاد می گیرید
23
00:00:51,680 –> 00:00:54,559
که در آن سری توسعه دهید، بنابراین این
24
00:00:54,559 –> 00:00:56,239
همان بازی است که ما
25
00:00:56,239 –> 00:00:58,239
در طول این سری توسعه خواهیم داد، اکنون
26
00:00:58,239 –> 00:01:00,239
می توانید ببینید که ما h مقداری از
27
00:01:00,239 –> 00:01:03,440
فروش داریم که میتوانیم برویم کلیک کنیم و آنها را باز
28
00:01:03,440 –> 00:01:05,920
کنیم، هدف اصلی در ذهن جارو این است
29
00:01:05,920 –> 00:01:08,880
که روی سلولی که مین
30
00:01:08,880 –> 00:01:11,200
پشت سلول دارد کلیک نکنیم، پس این یعنی چه
31
00:01:11,200 –> 00:01:13,360
که اگر قرار بود بروم و آن را باز
32
00:01:13,360 –> 00:01:15,759
کنم شما می توانید ببینید که من اکنون یک شماره را دریافت می کنم،
33
00:01:15,759 –> 00:01:18,240
این بدان معنی است که در
34
00:01:18,240 –> 00:01:21,040
سلول های احاطه شده آن سلول یک ذهن وجود دارد
35
00:01:21,040 –> 00:01:23,600
که نباید روی آن کلیک کنم، بنابراین
36
00:01:23,600 –> 00:01:26,000
حدس می زنم و می گویم شما
37
00:01:26,000 –> 00:01:29,600
اینجا ذهن ندارید و همچنین نمی کنید. من در
38
00:01:29,600 –> 00:01:31,600
آنجا فکر نمی کنم و می توانید ببینید که من کاملاً
39
00:01:31,600 –> 00:01:33,600
درست می گویم بنابراین با
40
00:01:33,600 –> 00:01:36,240
کلیک راست ماوس روی آن کلیک می کنم تا آن را به عنوان یک معدن علامت گذاری کنم
41
00:01:36,240 –> 00:01:38,079
زیرا اگر قرار بود با کلیک
42
00:01:38,079 –> 00:01:40,560
چپ ماوس روی آن کلیک کنم بازی را درست از دست خواهم داد،
43
00:01:40,560 –> 00:01:43,600
بنابراین کاری که اکنون می خواهم انجام دهم این
44
00:01:43,600 –> 00:01:46,000
است که سعی کنم بقیه مکان
45
00:01:46,000 –> 00:01:48,640
هایی که مکان های بی فکر هستند را درست حدس بزنم، بنابراین من
46
00:01:48,640 –> 00:01:50,479
روی آنجا کلیک می کنم و می توانید ببینید
47
00:01:50,479 –> 00:01:52,320
که من تعدادی اعداد دریافت می کنم که می توانید
48
00:01:52,320 –> 00:01:53,840
آن ها را ببینید. به عنوان مثال
49
00:01:53,840 –> 00:01:56,799
در اطراف سلول i have zero mine، بنابراین
50
00:01:56,799 –> 00:01:59,439
می توان اینجا و همینطور آنجا را کلیک
51
00:01:59,439 –> 00:02:02,719
کرد و اکنون اجازه دهید کلیک چپ کنیم
52
00:02:02,719 –> 00:02:04,960
در آن مکان و می توانید ببینید که می
53
00:02:04,960 –> 00:02:07,680
گوید شما روی یک معدن کلیک کردید و من یک
54
00:02:07,680 –> 00:02:09,679
بازی را باختم و هدف اصلی واقعاً
55
00:02:09,679 –> 00:02:11,680
حدس زدن تمام مکان هایی است
56
00:02:11,680 –> 00:02:14,160
که در ذهن ندارید و سپس
57
00:02:14,160 –> 00:02:16,640
بازی را برنده خواهید شد تا این یک بازی باشد. خیلی
58
00:02:16,640 –> 00:02:18,319
فکر میکنیم که
59
00:02:18,319 –> 00:02:20,239
برای توسعه آن بازی باید اینجا انجام دهیم و
60
00:02:20,239 –> 00:02:22,319
مقابله با تمام
61
00:02:22,319 –> 00:02:24,959
چالشهایی که این بازی با خود به همراه دارد کار جالبی خواهد بود،
62
00:02:24,959 –> 00:02:27,120
بنابراین قبل از شروع، خوشحال میشوم
63
00:02:27,120 –> 00:02:28,640
اگر بتوانید روی دکمه لایک کلیک کنید.
64
00:02:28,640 –> 00:02:30,480
آن ویدیو به پخش
65
00:02:30,480 –> 00:02:32,800
ویدیو در کل یوتیوب کمک می کند و همچنین اگر
66
00:02:32,800 –> 00:02:34,640
افرادی را می شناسید که تازه شروع به
67
00:02:34,640 –> 00:02:36,640
یادگیری پایتون کرده اند و می خواهند یک
68
00:02:36,640 –> 00:02:39,680
پروژه جالب ایجاد کنند، از آنها استقبال کنید تا
69
00:02:39,680 –> 00:02:41,519
سریال من را نیز تماشا کنند، می تواند
70
00:02:41,519 –> 00:02:43,840
برای آن ها بسیار مفید باشد. ویدیوهایی که فقط
71
00:02:43,840 –> 00:02:45,760
در سطح بین شروع
72
00:02:45,760 –> 00:02:48,000
و کارشناس بودن هستند، پس با
73
00:02:48,000 –> 00:02:50,400
این گفته ها، بیایید اکنون شروع کنیم قبل
74
00:02:50,400 –> 00:02:52,640
از نوشتن این پروژه،
75
00:02:52,640 –> 00:02:54,720
از شما انتظار دارم که پایتون را
76
00:02:54,720 –> 00:02:57,360
روی رایانه خود نصب کنید و همچنین یک ایده
77
00:02:57,360 –> 00:02:59,680
به این معنا که آماده کار است
78
00:02:59,680 –> 00:03:01,840
و مفسر پایتون را در رایانه شما تشخیص میدهد،
79
00:03:01,840 –> 00:03:04,159
من از پایتون
80
00:03:04,159 –> 00:03:07,200
3.8 استفاده میکنم، اما تا زمانی که نسخهای
81
00:03:07,200 –> 00:03:09,519
بالاتر از آن نسخه دارید،
82
00:03:09,519 –> 00:03:11,760
باید این پروژه را بنویسید، اکنون
83
00:03:11,760 –> 00:03:13,120
ما نیز از آن استفاده نمیکنیم. تعداد زیادی
84
00:03:13,120 –> 00:03:16,159
کتابخانه خارجی یا کدهای بسیار زیاد که
85
00:03:16,159 –> 00:03:18,159
به نسخه
86
00:03:18,159 –> 00:03:20,720
پایتون وابسته است، بنابراین اگر از
87
00:03:20,720 –> 00:03:24,480
پایتون 3.10 یا پایتون 3.11 استفاده میکنید، اشکالی ندارد که
88
00:03:24,480 –> 00:03:26,799
در آینده احتمالاً مشکلی نیست،
89
00:03:26,799 –> 00:03:28,720
بنابراین بیایید همین حالا
90
00:03:28,720 –> 00:03:32,400
برای نوشتن یک بازی جسورانه شروع کنیم. بازی 2 بعدی
91
00:03:32,400 –> 00:03:34,400
ما می توانیم از بسیاری از کتابخانه های
92
00:03:34,400 –> 00:03:36,400
موجود در پایتون استفاده کنیم در این یکی
93
00:03:36,400 –> 00:03:39,680
از tk inter استفاده می کنیم که بسیار خوب است
94
00:03:39,680 –> 00:03:42,400
و یک کتابخانه عالی برای تمرین است
95
00:03:42,400 –> 00:03:45,200
زیرا با کلاس های مفید زیادی همراه است
96
00:03:45,200 –> 00:03:46,799
که می خواهیم
97
00:03:46,799 –> 00:03:50,080
نمونه سازی کنیم. برای ایجاد پنجره خود، بنابراین
98
00:03:50,080 –> 00:03:51,760
ما می خواهیم با وارد کردن این
99
00:03:51,760 –> 00:03:53,680
به روش زیر شروع کنیم، بنابراین من می گویم front
100
00:03:53,680 –> 00:03:56,640
kinter import همه چیز و این
101
00:03:56,640 –> 00:03:59,439
یک شروع عالی برای ما خواهد بود، بنابراین خط بعدی
102
00:03:59,439 –> 00:04:02,239
که می خواهم اینجا بنویسم به
103
00:04:02,239 –> 00:04:04,799
instantia است. یک نمونه از پنجره است و ما
104
00:04:04,799 –> 00:04:06,560
احتمالاً می خواهیم این کار را انجام دهیم زیرا
105
00:04:06,560 –> 00:04:08,640
پروژه ما قرار است در یک پنجره باشد و
106
00:04:08,640 –> 00:04:11,360
من می خواهم ریشه متغیرم را نام ببرم و
107
00:04:11,360 –> 00:04:13,360
این یکی برابر است با
108
00:04:13,360 –> 00:04:16,560
نمونه ای از آن کلمه کلیدی tk و
109
00:04:16,560 –> 00:04:18,639
این فقط ابتدایی ترین عنصری که
110
00:04:18,639 –> 00:04:20,959
می توانید این را ایجاد کنید فقط یک
111
00:04:20,959 –> 00:04:23,520
پنجره معمولی است حالا وقتی این را اجرا می کنیم
112
00:04:23,520 –> 00:04:25,040
هیچ اتفاقی نمی افتد زیرا
113
00:04:25,040 –> 00:04:28,000
باید به آن tk بگوییم که باید
114
00:04:28,000 –> 00:04:31,040
اجرا شود تا زمانی که آن را با دکمه x
115
00:04:31,040 –> 00:04:33,280
در بالا سمت راست ببندیم. این با
116
00:04:33,280 –> 00:04:36,479
گفتن حلقه اصلی root dot مانند آن
117
00:04:36,479 –> 00:04:38,639
درست است، بنابراین ما باید آن متد را فراخوانی کنیم و
118
00:04:38,639 –> 00:04:40,240
همه کدها بین
119
00:04:40,240 –> 00:04:42,560
آن دو خط قرار می گیرند، بنابراین اگر بخواهیم آن را اجرا
120
00:04:42,560 –> 00:04:44,240
کنیم و می توانید ببینید که ما
121
00:04:44,240 –> 00:04:47,280
ابتدایی ترین پنجره را داریم که اکنون
122
00:04:47,280 –> 00:04:49,280
فقط یک نکته جانبی سریع امکان پذیر است، دلیل اینکه من
123
00:04:49,280 –> 00:04:51,440
از متغیر root استفاده کردم فقط یک
124
00:04:51,440 –> 00:04:54,000
قرارداد در پروژه های tk بین پروژه ها است، بنابراین
125
00:04:54,000 –> 00:04:55,919
جستجوی مشکلات در سرریز پشته برای شما آسان تر خواهد بود،
126
00:04:55,919 –> 00:04:57,919
به عنوان مثال
127
00:04:57,919 –> 00:05:00,000
اگر آن قراردادها را به خوبی رعایت کنید،
128
00:05:00,000 –> 00:05:01,600
پس بیایید برویم. جلوتر و برخی از آنها را ببینید
129
00:05:01,600 –> 00:05:03,520
ویژگی هایی را که می توانیم در اینجا تغییر دهیم
130
00:05:03,520 –> 00:05:06,080
تا پنجره ما زیباتر شود، بنابراین
131
00:05:06,080 –> 00:05:08,080
اولین مورد مشخصاً برای تغییر
132
00:05:08,080 –> 00:05:10,400
اندازه پنجره است و می توانیم با
133
00:05:10,400 –> 00:05:13,039
فراخوانی تابع هندسه متد i mean
134
00:05:13,039 –> 00:05:16,479
این ریشه این کار را انجام دهیم و این رشته را می پذیرد
135
00:05:16,479 –> 00:05:18,639
که شبیه
136
00:05:18,639 –> 00:05:20,479
وزن زیر
137
00:05:20,479 –> 00:05:23,919
x قد است و در اینجا بدیهی است که می
138
00:05:23,919 –> 00:05:26,720
توانید هر عددی را که دوست دارید
139
00:05:26,720 –> 00:05:28,320
قرار دهید، توجه کنید چه اتفاقی می افتد اگر بخواهم
140
00:05:28,320 –> 00:05:31,280
آنها را با
141
00:05:31,280 –> 00:05:33,840
اعداد واقعی مانند زیر جایگزین کنم،
142
00:05:33,840 –> 00:05:36,080
بلافاصله تفاوت را خواهید دید و اگر قرار
143
00:05:36,080 –> 00:05:38,240
بود اجرا کنید سپس می توانید ببینید که چگونه
144
00:05:38,240 –> 00:05:40,400
تغییر می کند، همچنین می توانیم توجه
145
00:05:40,400 –> 00:05:43,680
کنیم که از این رشته به عنوان عنوان
146
00:05:43,680 –> 00:05:46,479
پنجره ما استفاده می کند، می توانیم با
147
00:05:46,479 –> 00:05:49,600
فراخوانی متدی که عنوان نام دارد آن را تغییر
148
00:05:49,600 –> 00:05:52,400
دهیم و هر عنوانی را که دوست داریم به آن بدهیم تا بتوانیم
149
00:05:52,400 –> 00:05:54,960
با یک بازی Minesweeper بروید
150
00:05:54,960 –> 00:05:56,960
و برنامه ما را دوباره اجرا کنید و اکنون می توانید تغییرات را مشاهده کنید
151
00:05:56,960 –> 00:05:59,280
من در مورد این صحبت نکردم
152
00:05:59,280 –> 00:06:02,240
اما به طور پیش فرض همه پنجره ها
153
00:06:02,240 –> 00:06:04,800
قابل تغییر اندازه هستند و ممکن است
154
00:06:04,800 –> 00:06:06,560
زمانی که عناصر زیادی ایجاد می کنید چیزی آزاردهنده باشد.
155
00:06:06,560 –> 00:06:09,199
در داخل این پنجره مانند دکمهها
156
00:06:09,199 –> 00:06:12,800
یا قابها، به همین دلیل است که ما احتمالاً
157
00:06:12,800 –> 00:06:15,520
از تغییر اندازه این پنجره اجتناب میکنیم، زیرا
158
00:06:15,520 –> 00:06:18,000
وقتی
159
00:06:18,000 –> 00:06:20,080
جلوتر میرویم و عناصر بیشتری را در
160
00:06:20,080 –> 00:06:22,319
آن پنجره قرار میدهیم، زندگی راحتتری به ما میدهد، بنابراین راه دستیابی به این
161
00:06:22,319 –> 00:06:26,560
امر با فراخوانی روش قابل تغییر اندازه
162
00:06:26,560 –> 00:06:29,199
مانند آن است و اساساً مشخص
163
00:06:29,199 –> 00:06:31,759
می کند که ما مجاز به تغییر اندازه
164
00:06:31,759 –> 00:06:34,560
عرض و ارتفاع این پنجره نیستیم و
165
00:06:34,560 –> 00:06:36,479
این امر با
166
00:06:36,479 –> 00:06:39,520
رد کردن در دو بار سقوط
167
00:06:39,520 –> 00:06:41,840
یکی برای وزن و دیگری
168
00:06:41,840 –> 00:06:42,880
برای ارتفاع
169
00:06:42,880 –> 00:06:45,199
در حال حاضر اگر دوباره اجرا کنم قابل دستیابی است. برنامه ما
170
00:06:45,199 –> 00:06:47,039
پس از آن می توانید اثر آن
171
00:06:47,039 –> 00:06:49,360
را ببینید می توانید ببینید که این حداکثر کردن در اینجا
172
00:06:49,360 –> 00:06:51,520
غیرفعال است و این فقط چیزی است که
173
00:06:51,520 –> 00:06:53,680
در آینده زندگی آسان تری را برای ما ایجاد می
174
00:06:53,680 –> 00:06:55,840
کند وقتی ما این بازی را اکنون
175
00:06:55,840 –> 00:06:58,400
پس از رسیدن به آن مرحله توسعه دهیم، ممکن است ما
176
00:06:58,400 –> 00:07:00,560
نیز باشیم. کنجکاو در مورد چگونگی تغییر
177
00:07:00,560 –> 00:07:03,199
رنگ پسزمینه پنجره ما هستید، اکنون
178
00:07:03,199 –> 00:07:05,039
میتوانید از مقادیر هگزادسیمال استفاده کنید،
179
00:07:05,039 –> 00:07:07,440
اگر میدانید چگونه از آنها استفاده کنید، اما
180
00:07:07,440 –> 00:07:09,520
اساسا مهربانتر از بسیاری از
181
00:07:09,520 –> 00:07:12,639
کلمات کلیدی برای specifyi پشتیبانی میکند. از رنگها
182
00:07:12,639 –> 00:07:14,639
اکنون نمیخواهیم زیاد با
183
00:07:14,639 –> 00:07:16,560
استایل کار کنیم، تقریباً میخواهیم
184
00:07:16,560 –> 00:07:18,960
روی منطق الگوریتم نحوه
185
00:07:18,960 –> 00:07:21,680
نوشتن چنین بازی تمرکز کنیم، بنابراین برای این منظور
186
00:07:21,680 –> 00:07:24,240
من آن را ساده نگه میدارم، اما همچنان
187
00:07:24,240 –> 00:07:26,720
میخواهیم واضح است که یک پنجره تجسمی زیبا
188
00:07:26,720 –> 00:07:29,039
در اینجا داشته باشیم، بنابراین من به
189
00:07:29,039 –> 00:07:31,400
خط پنجم می روم و می گویم
190
00:07:31,400 –> 00:07:33,520
root.configure و ما باید
191
00:07:33,520 –> 00:07:35,520
رنگ پس زمینه را
192
00:07:35,520 –> 00:07:36,400
برای پنجره خود پیکربندی کنیم،
193
00:07:36,400 –> 00:07:38,880
بنابراین باید برویم. ahead و
194
00:07:38,880 –> 00:07:41,599
این روش را فراخوانی کنید و ما باید bg را
195
00:07:41,599 –> 00:07:44,400
برابر با هر رنگی که دوست داریم پاس کنیم،
196
00:07:44,400 –> 00:07:46,800
اکنون در توضیحات می توانید
197
00:07:46,800 –> 00:07:49,599
لیستی از رنگ هایی را که با
198
00:07:49,599 –> 00:07:51,840
استفاده از رنگ های کلیدواژه در دسترس هستند پیدا کنید، بنابراین در
199
00:07:51,840 –> 00:07:54,000
توضیحات پیوندی با لیست بزرگی از رنگ ها وجود دارد.
200
00:07:54,000 –> 00:07:56,400
رنگهایی که در دسترس هستند، من
201
00:07:56,400 –> 00:07:59,599
فقط میخواهم از سیاه برای این پنجره استفاده کنم
202
00:07:59,599 –> 00:08:01,599
و همینطور خواهد بود، بنابراین شما میتوانید
203
00:08:01,599 –> 00:08:03,440
اثر فوری تغییر
204
00:08:03,440 –> 00:08:06,080
رنگ پسزمینه را ببینید، بنابراین اکنون که
205
00:08:06,080 –> 00:08:08,000
این را فهمیدیم، بیایید جلوتر برویم و
206
00:08:08,000 –> 00:08:09,919
ببینیم چگونه میتوانیم برخی از آنها را ایجاد کنیم. المانهای
207
00:08:09,919 –> 00:08:12,479
داخل پنجره ما اکنون
208
00:08:12,479 –> 00:08:15,120
میرویم rt با ابتدایی ترین عنصری که
209
00:08:15,120 –> 00:08:18,000
می توانید در پنجره ای ایجاد کنید که به
210
00:08:18,000 –> 00:08:21,440
آن frame now frame می گویند، درست مانند
211
00:08:21,440 –> 00:08:24,080
ظرفی است که می تواند حاوی عناصر بیشتری باشد
212
00:08:24,080 –> 00:08:25,599
که در آینده ایجاد خواهیم کرد،
213
00:08:25,599 –> 00:08:26,479
214
00:08:26,479 –> 00:08:29,120
اکنون می خواهیم از آن فریم ها استفاده
215
00:08:29,120 –> 00:08:31,680
کنیم زیرا واضح است که می خواهیم تقسیم کنیم. پنجره ما
216
00:08:31,680 –> 00:08:34,320
را به چند بخش تبدیل می کنیم، بنابراین درک آن آسان تر خواهد بود
217
00:08:34,320 –> 00:08:36,640
که در آینده می خواهیم
218
00:08:36,640 –> 00:08:39,679
هر یک از دکمه ها یا متن های خود را در کجا قرار دهیم، به
219
00:08:39,679 –> 00:08:40,399
220
00:08:40,399 –> 00:08:43,279
عنوان مثال، می توانیم آن قسمت
221
00:08:43,279 –> 00:08:46,640
از پنجره خود را به عنوان یک عنوان اختصاص
222
00:08:46,640 –> 00:08:48,800
دهیم تا عنوان را در اینجا داشته باشیم و ما
223
00:08:48,800 –> 00:08:50,560
میتوانیم تصمیم بگیریم که میخواهیم یک
224
00:08:50,560 –> 00:08:53,120
نوار کناری سمت چپ داشته باشیم، بنابراین میتوانیم
225
00:08:53,120 –> 00:08:56,320
ناحیه سمت چپ پنجره خود را به
226
00:08:56,320 –> 00:08:59,040
نوار کناری اختصاص دهیم تا امتیاز را به عنوان مثال
227
00:08:59,040 –> 00:09:00,800
چیزی شبیه به آن نشان دهیم و میتوانیم
228
00:09:00,800 –> 00:09:04,000
یک فریم دیگر را در اینجا داشته باشیم تا بتوانیم
229
00:09:04,000 –> 00:09:06,640
بازی را در اینجا نمایش دهیم. بنابراین این فقط یک
230
00:09:06,640 –> 00:09:08,959
ایده عالی است که پنجره را به چندین قاب تقسیم کنید،
231
00:09:08,959 –> 00:09:11,040
232
00:09:11,040 –> 00:09:13,680
برای تجسم عناصر مختلف بعداً مفید خواهد بود،
233
00:09:13,680 –> 00:09:16,959
بنابراین کاری که اکنون میخواهم انجام دهم این است
234
00:09:16,959 –> 00:09:19,440
که اینجا یک نظر بنویسم که میگوید
235
00:09:19,440 –> 00:09:20,800
override
236
00:09:20,800 –> 00:09:23,760
237
00:09:23,760 –> 00:09:25,040
تنظیمات پنجره
238
00:09:25,040 –> 00:09:28,320
و درست قبل از حلقه اصلی نقطه ریشه،
239
00:09:28,320 –> 00:09:31,200
من همچنین می خواهم نظر بدهم، پنجره را اجرا
240
00:09:31,200 –> 00:09:32,399
کنید
241
00:09:32,399 –> 00:09:34,480
و سپس اینجا مکان دقیقی است که
242
00:09:34,480 –> 00:09:36,800
ما شروع به ایجاد چند فریم خواهیم کرد، بنابراین
243
00:09:36,800 –> 00:09:38,640
بیایید جلو برویم و شروع کنیم، بنابراین
244
00:09:38,640 –> 00:09:40,560
گفتیم که ما دوست دارم فریمی داشته باشم
245
00:09:40,560 –> 00:09:42,880
که در بالا قرار دارد، بنابراین من
246
00:09:42,880 –> 00:09:44,240
این متغیر
247
00:09:44,240 –> 00:09:47,120
فریم بالای متغیر را نام میبرم و برابر با
248
00:09:47,120 –> 00:09:50,640
کلاسی است که فریم نام دارد و زمانی که
249
00:09:50,640 –> 00:09:53,519
از این کلاس فریم نمونهسازی کنیم،
250
00:09:53,519 –> 00:09:55,519
آنگاه مسئول
251
00:09:55,519 –> 00:09:58,399
نمونهسازی یک فریم خواهد بود. که بعداً تصمیم خواهیم
252
00:09:58,399 –> 00:10:00,560
گرفت که کجا آن را در
253
00:10:00,560 –> 00:10:03,360
پنجره خود قرار دهیم، اکنون اولین استدلالی که
254
00:10:03,360 –> 00:10:06,720
این فریم باید دریافت کند این است که
255
00:10:06,720 –> 00:10:08,800
عنصری که می خواهیم
256
00:10:08,800 –> 00:10:12,480
قاب را در آن قرار دهیم،
257
00:10:12,480 –> 00:10:15,760
بنابراین در پنجره قرار می گیرد. ما در ریشه می نویسیم و
258
00:10:15,760 –> 00:10:18,079
سپس آنها را به
259
00:10:18,079 –> 00:10:20,000
چندین خط جدا می کنم تا خواندن آن آسان تر
260
00:10:20,000 –> 00:10:22,399
باشد و همانطور که می بینید پرانتزها
261
00:10:22,399 –> 00:10:25,519
در اینجا باز هستند اینجا را ببندید حالا بیایید
262
00:10:25,519 –> 00:10:28,240
جلو برویم و ویژگی های بیشتری به آن بدهیم.
263
00:10:28,240 –> 00:10:30,480
ما می خواهیم به یک
264
00:10:30,480 –> 00:10:32,160
پسزمینه متفاوت داریم، بنابراین ما واقعاً میتوانیم
265
00:10:32,160 –> 00:10:34,399
بین قاب و پنجره تفاوت قائل
266
00:10:34,399 –> 00:10:36,720
شویم، زیرا
267
00:10:36,720 –> 00:10:39,120
اگر همان رنگ را حفظ کنیم، فهمیدن اینکه قاب در کجا قرار دارد دشوار است،
268
00:10:39,120 –> 00:10:40,959
بنابراین فقط به
269
00:10:40,959 –> 00:10:42,399
دلایل اشکالزدایی،
270
00:10:42,399 –> 00:10:45,279
این تغییر قرمز را بعداً به
271
00:10:45,279 –> 00:10:47,600
سیاه نگه میدارم. و ما نظر می دهیم که اینجا و
272
00:10:47,600 –> 00:10:50,240
سپس در اینجا من عرض
273
00:10:50,240 –> 00:10:53,120
و ارتفاع را تعیین می کنم بنابراین می گویم که
274
00:10:53,120 –> 00:10:56,240
عرض باید دقیقاً برابر
275
00:10:56,240 –> 00:10:57,200
همان
276
00:10:57,200 –> 00:10:59,440
اندازه عرضی باشد که به پنجره دادیم زیرا
277
00:10:59,440 –> 00:11:01,600
می خواهیم کل پنجره را بپوشانیم. بنابراین
278
00:11:01,600 –> 00:11:03,760
این باید کل عرض مانند
279
00:11:03,760 –> 00:11:07,360
پنجره باشد و ارتفاع آن احتمالاً باید
280
00:11:07,360 –> 00:11:08,320
281
00:11:08,320 –> 00:11:11,920
180 باشد، بنابراین فقط 720
282
00:11:11,920 –> 00:11:14,880
به 4 تقسیم می شود و این کاملاً منطقی است و
283
00:11:14,880 –> 00:11:17,120
اکنون که این را دریافت کردیم، باید
284
00:11:17,120 –> 00:11:19,200
تصمیم بگیریم که کجا می خواهیم این
285
00:11:19,200 –> 00:11:21,680
فریم را از آن شروع کنید تا این کار را انجام دهم،
286
00:11:21,680 –> 00:11:23,760
سپس میروم و میگویم
287
00:11:23,760 –> 00:11:25,680
نقطهی فریم
288
00:11:25,680 –> 00:11:29,440
زیرخط بالا، اکنون این مکان
289
00:11:29,440 –> 00:11:31,839
دو آرگومان دریافت میکند که اجباری هستند و
290
00:11:31,839 –> 00:11:34,160
قبل از اینکه جلو بروم و آنها را پاس کنم، اجازه دهید
291
00:11:34,160 –> 00:11:36,320
نحوه مکان را به شما نشان دهم روش کار می کند
292
00:11:36,320 –> 00:11:38,959
پنجره اینجاست، بنابراین وقتی از
293
00:11:38,959 –> 00:11:41,440
روش مکان استفاده می کنیم، باید
294
00:11:41,440 –> 00:11:44,959
مقدار پیکسل را دریافت کند، اکنون می دانیم که ما یک
295
00:11:44,959 –> 00:11:48,320
فریم داریم که دوست داریم دقیقاً
296
00:11:48,320 –> 00:11:50,000
از اینجا شروع کنیم
297
00:11:50,000 –> 00:11:52,880
و می دانیم که احتمالاً باید
298
00:11:52,880 –> 00:11:55,600
این ناحیه را درست بپوشاند، اما چگونه
299
00:11:55,600 –> 00:11:58,480
پیش می رویم. برای اینکه بگوییم آن را از اینجا به
300
00:11:58,480 –> 00:12:01,440
خوبی در جای خود شروع کند، باید
301
00:12:01,440 –> 00:12:06,079
محور x و محور y را مشخص کنیم، به این معنی که اگر
302
00:12:06,079 –> 00:12:08,880
بخواهیم از بالا سمت چپ شروع کنیم،
303
00:12:08,880 –> 00:12:12,240
باید مقادیر صفر نقطه صفر را به آن بدهیم
304
00:12:12,240 –> 00:12:15,440
زیرا
305
00:12:15,440 –> 00:12:18,959
همه چیز از آنجا شروع می شود. از نظر پیکسل
306
00:12:18,959 –> 00:12:22,480
اکنون کل منطقه اینجا هزار و
307
00:12:22,480 –> 00:12:24,720
چهارصد 440 است
308
00:12:24,720 –> 00:12:28,959
زیرا این محور x و محور
309
00:12:28,959 –> 00:12:29,839
y
310
00:12:29,839 –> 00:12:30,760
311
00:12:30,760 –> 00:12:35,519
720 پیکسل است، بنابراین کل ارتفاع اینجا
312
00:12:35,519 –> 00:12:37,600
720
313
00:12:37,600 –> 00:12:41,040
است اگر به عنوان مثال بخواهیم دکمه ای داشته باشیم
314
00:12:41,040 –> 00:12:43,360
فقط برای مثال i.
315
00:12:43,360 –> 00:12:45,440
قرار نیست آن زمان این کار را انجام دهم، اما بیایید بگوییم
316
00:12:45,440 –> 00:12:47,120
که میخواهیم دکمهای داشته باشیم
317
00:12:47,120 –> 00:12:48,800
که میخواستیم از
318
00:12:48,800 –> 00:12:52,000
اینجا شروع شود، بنابراین میخواستیم آن را درست در
319
00:12:52,000 –> 00:12:54,079
وسط صفحه خود قرار دهیم، بنابراین
320
00:12:54,079 –> 00:12:57,279
باید آن مقدار را بگیریم و تقسیم کنیم. آن را با دو،
321
00:12:57,279 –> 00:12:59,680
بنابراین محور
322
00:12:59,680 –> 00:13:01,920
x 720 است
323
00:13:01,920 –> 00:13:03,760
و ما می دانیم که t ما دوست داریم تا آنجا که ممکن است
324
00:13:03,760 –> 00:13:06,399
آن را در موقعیت بالایی
325
00:13:06,399 –> 00:13:08,079
326
00:13:08,079 –> 00:13:09,360
داشته باشیم
327
00:13:09,360 –> 00:13:13,040
، بنابراین باید مقدار محور y باشد که صفر خواهد شد،
328
00:13:13,040 –> 00:13:16,320
بنابراین روش مکان به این صورت است
329
00:13:16,320 –> 00:13:19,680
که باید مقدار پیکسل را برای محور
330
00:13:19,680 –> 00:13:23,360
x و محور y مشخص کنیم و اجازه دهیم من همه چیزهایی را
331
00:13:23,360 –> 00:13:26,959
که در اینجا ترسیم می کنم پاک می کنم و به pycharm برمی گردم
332
00:13:26,959 –> 00:13:30,079
و مقادیر x برابر با
333
00:13:30,079 –> 00:13:34,399
صفر و y برابر با صفر را در اینجا می دهم و اکنون بررسی
334
00:13:34,399 –> 00:13:37,040
کنید که اگر توقف کنم و دوباره اجرا کنم این فریم چگونه تجسم می شود،
335
00:13:37,040 –> 00:13:39,360
سپس می توانید ببینید که
336
00:13:39,360 –> 00:13:42,240
این همان است نتیجه مورد انتظار دقیقاً همانطور که
337
00:13:42,240 –> 00:13:46,079
میخواستیم از اینجا شروع شد و
338
00:13:46,079 –> 00:13:50,399
کل مساحت وزن را گرفت و 180
339
00:13:50,399 –> 00:13:53,760
پیکسل از قد را گرفت، بنابراین دقیقاً همان
340
00:13:53,760 –> 00:13:55,839
چیزی است که اکنون میخواهیم فقط برای
341
00:13:55,839 –> 00:13:57,920
اینکه واقعاً مطمئن شویم که این را فهمیدهاید من
342
00:13:57,920 –> 00:14:00,800
این را به x تغییر میدهم. به 20 می رسد
343
00:14:00,800 –> 00:14:03,120
و حدس می زنید چه اتفاقی می افتد، بنابراین اگر
344
00:14:03,120 –> 00:14:05,519
ما دوباره اجرا کنیم که بدیهی
345
00:14:05,519 –> 00:14:07,279
است که از موقعیت کمی سمت چپ شروع
346
00:14:07,279 –> 00:14:08,880
می شود، می توانید ببینید که کجا
347
00:14:08,880 –> 00:14:12,720
واقع شده است، دقیقاً از اینجا شروع می شود و
348
00:14:12,720 –> 00:14:17,199
اگر قرار بود y را 20 بپریم. و متوقف کنید
349
00:14:17,199 –> 00:14:18,560
و آن را دوباره اجرا کنید، سپس می توانید نتیجه را ببینید،
350
00:14:18,560 –> 00:14:21,279
بنابراین روش مکان اینگونه
351
00:14:21,279 –> 00:14:23,519
کار می کند، بدیهی است که من
352
00:14:23,519 –> 00:14:27,279
آنها را به 0 برمی گردم و از اینجا ادامه می
353
00:14:27,279 –> 00:14:29,440
دهم، بنابراین اکنون که فهمیدیم،
354
00:14:29,440 –> 00:14:31,120
بیایید جلو برویم و سعی کنیم
355
00:14:31,120 –> 00:14:33,519
یک فریم دیگر ایجاد کنیم این بار که می خواهم برای
356
00:14:33,519 –> 00:14:36,000
ساختن فریمی که از آن به عنوان نوار کناری سمت چپ استفاده می کنیم،
357
00:14:36,000 –> 00:14:38,399
جایی که ممکن است
358
00:14:38,399 –> 00:14:41,040
امتیاز یا چیز دیگری مفید باشد،
359
00:14:41,040 –> 00:14:42,959
بنابراین من ادامه می دهم و یک
360
00:14:42,959 –> 00:14:44,959
متغیر فریم سمت چپ ایجاد می
361
00:14:44,959 –> 00:14:46,959
کنم که برابر با فریم است.
362
00:14:46,959 –> 00:14:50,000
یکی دیگر از آن کلاس را نمونهسازی
363
00:14:50,000 –> 00:14:52,959
میکنیم و این فریم را در
364
00:14:52,959 –> 00:14:55,519
ریشه میخواهیم و سپس چیزی مانند
365
00:14:55,519 –> 00:14:58,399
bg برابر با رنگ دیگری خواهیم گفت، فقط
366
00:14:58,399 –> 00:15:01,040
آن خط را کپی میکنم و آن را در آن جایگذاری میکنم و
367
00:15:01,040 –> 00:15:03,040
بیایید از چیزی مانند آبی استفاده کنیم تا بتوانیم
368
00:15:03,040 –> 00:15:05,600
بین رنگهای مختلف از هم جدا شویم. فریم ها
369
00:15:05,600 –> 00:15:08,079
و عرض آن 360 خواهد بود
370
00:15:08,079 –> 00:15:09,079
371
00:15:09,079 –> 00:15:12,880
. من عمداً از مقداری استفاده می
372
00:15:12,880 –> 00:15:15,839
کنم که فقط یک چهارم آن مقدار است،
373
00:15:15,839 –> 00:15:17,360
بنابراین برای من آسان تر خواهد بود
374
00:15:17,360 –> 00:15:20,000
375
00:15:20,000 –> 00:15:22,560
که بفهمم اکنون که وزن را مشخص کردم، چند درصد از کل عرض را با فریم هایم پوشانده ام.
376
00:15:22,560 –> 00:15:24,800
من می
377
00:15:24,800 –> 00:15:27,920
روم ng تا ارتفاع را مشخص کنیم، بنابراین
378
00:15:27,920 –> 00:15:31,120
میخواهم بگویم که این باید تمام ارتفاع پنجره ما را پوشش دهد،
379
00:15:31,120 –> 00:15:34,240
حالا توجه کنید
380
00:15:34,240 –> 00:15:37,279
که ما قبلاً 180 پیکسل را
381
00:15:37,279 –> 00:15:41,040
برای قاب بالایی پوشاندهایم، بنابراین نمیتوانیم فقط بگوییم 780
382
00:15:41,040 –> 00:15:45,040
، یعنی 720 مانند آن باید برویم. جلوتر
383
00:15:45,040 –> 00:15:46,240
384
00:15:46,240 –> 00:15:48,720
و اندازه ارتفاع کل پنجره را به خاطر بسپارید
385
00:15:48,720 –> 00:15:51,920
و این عدد را با آن
386
00:15:51,920 –> 00:15:54,320
عدد به درستی تفریق کنید، بنابراین باید از
387
00:15:54,320 –> 00:15:55,720
اینجا 540 عبور کنیم.
388
00:15:55,720 –> 00:15:59,120
حالا اگر فکر می کنید که
389
00:15:59,120 –> 00:16:01,759
ما مقادیر زیادی را کدگذاری می کنیم، نگران نباشید
390
00:16:01,759 –> 00:16:03,839
، مطمئن می شوم که ما
391
00:16:03,839 –> 00:16:06,320
در آینده زمانی که این پروژه را بازسازی خواهیم کرد، واقعاً هیچ ارزش کدگذاری شده
392
00:16:06,320 –> 00:16:08,639
393
00:16:08,639 –> 00:16:10,720
ای نداریم، بنابراین اکنون روی
394
00:16:10,720 –> 00:16:13,440
درک نحوه کار tkinter تمرکز می کنیم، بنابراین اکنون
395
00:16:13,440 –> 00:16:15,360
که متوجه شدیم، بیایید
396
00:16:15,360 –> 00:16:18,480
جلو برویم و بگوییم که فریم سمت چپ
397
00:16:18,480 –> 00:16:22,560
باید در x قرار گیرد. برابر با 0 است
398
00:16:22,560 –> 00:16:25,800
اما y باید درست برابر با
399
00:16:25,800 –> 00:16:29,440
180 باشد زیرا ما می خواهیم آن را
400
00:16:29,440 –> 00:16:30,639
درست بعد از
401
00:16:30,639 –> 00:16:33,680
جایی که فریم بالایی قرار دارد شروع کنیم و اگر قرار
402
00:16:33,680 –> 00:16:34,800
بود
403
00:16:34,800 –> 00:16:36,560
برنامه خود را اجرا کنم، می توانید ببینید که
404
00:16:36,560 –> 00:16:38,800
ما نتیجه عالی را داریم فقط برای اینکه واقعاً
405
00:16:38,800 –> 00:16:40,480
دوباره آن را بفهمیم.
406
00:16:40,480 –> 00:16:45,120
اگر ما بودیم e برای گرفتن آن محور y و پرش روی
407
00:16:45,120 –> 00:16:48,079
آن تا 20، می توانید ببینید که
408
00:16:48,079 –> 00:16:50,480
درست از اینجا شروع می شود زیرا
409
00:16:50,480 –> 00:16:55,440
20 پیکسل در محور y پریده است، بنابراین می
410
00:16:55,440 –> 00:16:57,920
خواهم مطمئن شوم که
411
00:16:57,920 –> 00:17:01,360
مقدار 180 را همین الان حفظ کرده ایم. به
412
00:17:01,360 –> 00:17:04,079
آن مرحله رسیدهاید، احتمالاً میتوانید متوجه شوید که
413
00:17:04,079 –> 00:17:06,640
ما
414
00:17:06,640 –> 00:17:09,599
از نظر وزن
415
00:17:09,599 –> 00:17:12,880
، قد و پیکسلها و غیره اعداد رمزگذاری شده زیادی خواهیم داشت، بنابراین
416
00:17:12,880 –> 00:17:15,839
زمان بسیار خوبی است که یک فایل جداگانه برای
417
00:17:15,839 –> 00:17:18,880
همه ثابتهایمان داشته باشیم و در حداقل
418
00:17:18,880 –> 00:17:22,000
برخی از متغیرهایی که اکنون در جایی ذخیره شده اند،
419
00:17:22,000 –> 00:17:23,760
من قصد ندارم آن را در
420
00:17:23,760 –> 00:17:26,400
فایل main.py خود ایجاد کنم، زیرا ممکن است
421
00:17:26,400 –> 00:17:28,480
اطلاعات زیادی باشد که باید در یک فایل ذخیره شود،
422
00:17:28,480 –> 00:17:31,520
علاوه بر اینکه می خواهم در
423
00:17:31,520 –> 00:17:33,919
یک فایل پایتون جدید ذخیره کنم و من من
424
00:17:33,919 –> 00:17:37,120
این تنظیمات را فراخوانی میکنم، بنابراین در اینجا میتوانم از
425
00:17:37,120 –> 00:17:39,600
برخی ثابتها استفاده کنم که مفید خواهند بود و
426
00:17:39,600 –> 00:17:41,840
برای اینکه واقعاً آن پنجرهها را در کنار هم به شما نشان دهم،
427
00:17:41,840 –> 00:17:44,160
اجازه دهید از گزینه راست کلیک و
428
00:17:44,160 –> 00:17:47,200
تقسیم عمودی استفاده کنم تا بتوانیم به
429
00:17:47,200 –> 00:17:49,200
چند نامزد خوب برای
430
00:17:49,200 –> 00:17:51,520
متغیرها فکر کنیم. که می خواهیم ذخیره کنیم در اینجا
431
00:17:51,520 –> 00:17:54,160
برای مثال می توانیم با اندازه عرض
432
00:17:54,160 –> 00:17:57,679
پنجره خود شروع کنیم، می توانیم بگوییم که
433
00:17:57,679 –> 00:17:58,799
434
00:17:58,799 –> 00:18:02,840
وزن برابر با 1440 است،
435
00:18:03,120 –> 00:18:05,600
می توانیم بگوییم که ارتفاع آن برابر با
436
00:18:05,600 –> 00:18:07,120
720 است
437
00:18:07,120 –> 00:18:08,960
و بلافاصله می توانیم به
438
00:18:08,960 –> 00:18:12,640
فایل main.py خود برگردیم و چیزی شبیه
439
00:18:12,640 –> 00:18:14,799
تنظیمات import کنیم.
440
00:18:14,799 –> 00:18:18,160
و سپس میتوانیم به اینجا برویم و از یک
441
00:18:18,160 –> 00:18:19,760
رشته قالببندی شده استفاده
442
00:18:19,760 –> 00:18:23,440
کنیم و میتوانیم آنها را به
443
00:18:23,440 –> 00:18:25,840
آن رشته تبدیل کنیم، میتوانیم بگوییم اینجا
444
00:18:25,840 –> 00:18:27,120
تنظیمات
445
00:18:27,120 –> 00:18:29,120
نقطه صبر کنید
446
00:18:29,120 –> 00:18:30,080
و
447
00:18:30,080 –> 00:18:33,919
میتوانیم با
448
00:18:34,640 –> 00:18:37,919
ارتفاع نقطه تنظیمات مانند آن برویم و این فقط یک
449
00:18:37,919 –> 00:18:40,720
تغییر عالی در پروژه ما است اگر من این بود
450
00:18:40,720 –> 00:18:43,120
که فایل اصلی خود را اجرا کنیم، سپس میبینید
451
00:18:43,120 –> 00:18:45,120
که هیچ چیز واقعاً تغییر نکرده است و اگر به یاد داشته باشید
452
00:18:45,120 –> 00:18:47,760
اکنون در موقعیت خوبی هستیم که به انجام
453
00:18:47,760 –> 00:18:50,240
آن دستکاریها برای ذخیره
454
00:18:50,240 –> 00:18:52,880
متغیرهای بیشتر ادامه دهیم، اگر به یاد داشته باشید
455
00:18:52,880 –> 00:18:56,320
در آموزش گفتم که من عمداً از
456
00:18:56,320 –> 00:18:58,640
آن اعداد استفاده کردم تا بتوانیم
457
00:18:58,640 –> 00:19:01,760
درصد دقیق اندازه وزن
458
00:19:01,760 –> 00:19:04,400
به عنوان مثال دلیل بزرگی وجود داشت
459
00:19:04,400 –> 00:19:05,960
که من از
460
00:19:05,960 –> 00:19:10,080
مقدار 180 در ارتفاع فریم های بالایی استفاده کردم
461
00:19:10,080 –> 00:19:14,559
زیرا 180 ضربدر 4 برابر با 720 است بنابراین می توانم بگویم
462
00:19:14,559 –> 00:19:17,760
که من می خواهم 25
463
00:19:17,760 –> 00:19:20,640
از کل قد را مصرف کنم. پنجره ما و
464
00:19:20,640 –> 00:19:22,320
اینها چیزهایی هستند که مهم هستند
465
00:19:22,320 –> 00:19:24,240
زیرا ما
466
00:19:24,240 –> 00:19:27,440
مقادیر کدگذاری شده خیلی سختی نخواهیم داشت، بنابراین کاری که اکنون می توانیم انجام دهیم این است
467
00:19:27,440 –> 00:19:29,760
که یک فایل برای برخی از توابع داشته باشیم که
468
00:19:29,760 –> 00:19:32,240
می تواند برای محاسبه آن چیزها مفید باشد، به
469
00:19:32,240 –> 00:19:34,320
عنوان مثال می توانیم
470
00:19:34,320 –> 00:19:37,360
تابعی داشته باشیم که محاسبه کند.
471
00:19:37,360 –> 00:19:38,559
20
472
00:19:38,559 –> 00:19:42,240
از کل ارتفاع پنجره ما چقدر است،
473
00:19:42,240 –> 00:19:44,320
بنابراین ما می توانیم جلو برویم و از یک
474
00:19:44,320 –> 00:19:46,320
فایل پایتون دیگر برای آن استفاده کنیم که می توانیم آن را
475
00:19:46,320 –> 00:19:48,080
Utilities یا
476
00:19:48,080 –> 00:19:50,960
Utils بنامیم و می توانیم تابعی داشته باشیم که
477
00:19:50,960 –> 00:19:53,919
در ابتدا درصد
478
00:19:53,919 –> 00:19:56,799
ارتفاع ما را محاسبه می کند. ادامه دهید
479
00:19:56,799 –> 00:19:58,160
و از
480
00:19:58,160 –> 00:20:00,960
تنظیمات واردات استفاده کنید تا
481
00:20:00,960 –> 00:20:04,000
تنظیمات پروژه خود را وارد کنیم و میتوانیم ادامه دهیم
482
00:20:04,000 –> 00:20:06,159
و از یک تابع استفاده کنیم، بنابراین بیایید
483
00:20:06,159 –> 00:20:09,520
این تابع ارتفاع زیرخط prct را
484
00:20:09,520 –> 00:20:11,840
فقط یک نسخه کوتاه شده از درصد
485
00:20:11,840 –> 00:20:14,400
درست بنامیم تا بتوانیم ادامه دهیم و
486
00:20:14,400 –> 00:20:17,039
مقدار درصد را در اینجا دریافت کنیم. به عنوان یک
487
00:20:17,039 –> 00:20:20,000
پارامتر، این را کمی کوچکتر می کنیم و
488
00:20:20,000 –> 00:20:22,880
سپس می توانم ادامه دهم و در داخل آن
489
00:20:22,880 –> 00:20:25,440
می توانم مقدار را با تکیه بر
490
00:20:25,440 –> 00:20:27,760
آرگومان دریافتی در اینجا
491
00:20:27,760 –> 00:20:30,240
برگردانم تا بتوانم ادامه دهم و از retu استفاده کنم. rn
492
00:20:30,240 –> 00:20:32,559
و من می توانم بگویم تنظیمات
493
00:20:32,559 –> 00:20:36,320
ارتفاع نقطه تقسیم بر 100
494
00:20:36,320 –> 00:20:38,080
و می توانم
495
00:20:38,080 –> 00:20:40,080
این مورد را با پرانتز بپوشانم و می توانم
496
00:20:40,080 –> 00:20:41,679
آن را
497
00:20:41,679 –> 00:20:43,919
با مقدار درصد ضرب کنم، بنابراین اکنون می
498
00:20:43,919 –> 00:20:46,080
خواهم تأیید کنم که کار خوبی انجام داده ام
499
00:20:46,080 –> 00:20:48,159
که این تابع را درست نوشتم و بلافاصله انجام نمی دهم
500
00:20:48,159 –> 00:20:50,559
میخواهم توابع من را فراخوانی کنم
501
00:20:50,559 –> 00:20:52,720
و فقط سعی کنم از آنها استفاده کنم، زیرا ممکن
502
00:20:52,720 –> 00:20:55,600
است هنگام نوشتن یک تابع باگ داشته باشم و
503
00:20:55,600 –> 00:20:57,840
این نیز یک مزیت بزرگ است که
504
00:20:57,840 –> 00:20:59,679
توابع مختلف را در فایلهای مختلف
505
00:20:59,679 –> 00:21:00,960
قرار میدهم، زیرا در
506
00:21:00,960 –> 00:21:03,360
اشکالزدایی موارد شما مزیت بزرگی به شما میدهد، به
507
00:21:03,360 –> 00:21:05,919
عنوان مثال میتوانم به طور موقت فقط
508
00:21:05,919 –> 00:21:09,120
فایل utils.py را اجرا کنید و فقط عملکرد خود را آزمایش کنید، می توانم ادامه دهم
509
00:21:09,120 –> 00:21:11,200
و سعی کنم
510
00:21:11,200 –> 00:21:14,640
آن را فراخوانی کنم و سال 25 را سپری کنم و تأیید
511
00:21:14,640 –> 00:21:18,799
کنم که واقعاً 180 را دریافت خواهم کرد تا
512
00:21:18,799 –> 00:21:21,760
بتوانم ادامه دهم و از ابزارهای
513
00:21:21,760 –> 00:21:22,880
چاپ
514
00:21:22,880 –> 00:21:25,840
و اجرا استفاده کنم.
515
00:21:25,840 –> 00:21:29,039
پروژه اصلی من را اجرا نمی کنم و حالا اگر
516
00:21:29,039 –> 00:21:31,600
ادامه دهید و مقدار آن را اینجا
517
00:21:31,600 –> 00:21:34,320
ببینید، می توانید ببینید که من واقعاً 180 دریافت می کنم و این
518
00:21:34,320 –> 00:21:36,000
خوب است، به این معنی که ما
519
00:21:36,000 –> 00:21:38,400
کار بسیار خوبی برای نوشتن این تابع انجام داده ایم و اکنون
520
00:21:38,400 –> 00:21:41,120
می توانم واقعی کنم استفاده از آن را در
521
00:21:41,120 –> 00:21:43,360
پروژه اصلی خود در فایل اصلی dot
522
00:21:43,360 –> 00:21:47,200
py شروع کنید تا بتوانم
523
00:21:47,200 –> 00:21:50,240
تمام فایل utils را وارد کنم و همچنین می
524
00:21:50,240 –> 00:21:53,760
توانم بگویم import utils و می توانم ادامه دهم و
525
00:21:53,760 –> 00:21:56,480
تابع درصد ارتفاع را فراخوانی کنم من
526
00:21:56,480 –> 00:21:59,919
می توانم از utils dot height استفاده کنم. prct و پاس
527
00:21:59,919 –> 00:22:02,799
در 25 و باز هم
528
00:22:02,799 –> 00:22:05,120
این هیچ تاثیری نخواهد داشت یعنی
529
00:22:05,120 –> 00:22:08,400
ما کار خوبی انجام داده ایم فقط اکنون
530
00:22:08,400 –> 00:22:10,960
پویاتر شده ایم و مقادیر کد سختی را انجام نمی
531
00:22:10,960 –> 00:22:14,000
دهیم با وزن خیلی سریع خود را تکرار می کنیم
532
00:22:14,000 –> 00:22:17,280
و سپس
533
00:22:17,280 –> 00:22:19,760
حرکت می کنیم. به موضوع بعدی بروید، بنابراین
534
00:22:19,760 –> 00:22:22,000
من می خواهم به اینجا بروم و
535
00:22:22,000 –> 00:22:24,640
از ارتفاع تعریف شده استفاده کنم، یعنی وزن prct
536
00:22:24,640 –> 00:22:25,559
537
00:22:25,559 –> 00:22:27,200
538
00:22:27,200 –> 00:22:30,080
، دوباره درصد دریافت می کنیم و
539
00:22:30,080 –> 00:22:31,760
می گوییم
540
00:22:31,760 –> 00:22:34,400
که یک پرانتز را باز کنید تا بتوانیم
541
00:22:34,400 –> 00:22:36,880
نگاهی تمیزتر در این داشته باشیم. فرمول و می توانیم
542
00:22:36,880 –> 00:22:38,159
بگوییم
543
00:22:38,159 –> 00:22:39,600
544
00:22:39,600 –> 00:22:40,880
عرض نقطه تنظیمات
545
00:22:40,880 –> 00:22:43,600
تقسیم شده به 100
546
00:22:43,600 –> 00:22:46,000
ضرب در درصد است،
547
00:22:46,000 –> 00:22:49,200
بنابراین اکنون می توانم ادامه دهم و
548
00:22:49,200 –> 00:22:50,320
تقریباً همین کار را
549
00:22:50,320 –> 00:22:52,159
در
550
00:22:52,159 –> 00:22:54,400
مقادیر مختلف کدگذاری شده در اینجا انجام دهم، بنابراین بیایید
551
00:22:54,400 –> 00:22:56,480
نگاهی بیندازیم، بنابراین در کادر بالا از کل پنجره استفاده می کنیم.
552
00:22:56,480 –> 00:22:58,799
منطقی است که
553
00:22:58,799 –> 00:23:00,640
چا این را فقط به مقدار
554
00:23:00,640 –> 00:23:02,960
settings.width به سمت راست می پردازیم زیرا
555
00:23:02,960 –> 00:23:05,919
قبلاً 1440 است.
556
00:23:05,919 –> 00:23:08,080
بیایید به فریم سمت چپ خود برویم بنابراین در
557
00:23:08,080 –> 00:23:11,520
کادر سمت چپ می بینیم که از 25
558
00:23:11,520 –> 00:23:13,919
درصد کل عرض استفاده می کنیم تا بتوانیم جلو برویم
559
00:23:13,919 –> 00:23:15,840
و از utils
560
00:23:15,840 –> 00:23:19,280
dot height prct استفاده کنیم. ببخشید
561
00:23:19,280 –> 00:23:22,640
با prct من آن را تغییر می دهم و سپس
562
00:23:22,640 –> 00:23:26,080
در 25 پاس می کنم و
563
00:23:26,080 –> 00:23:28,880
همچنین می توانید ببینید که در ارتفاع
564
00:23:28,880 –> 00:23:33,280
از 75 درصد کل قد خود استفاده می کنیم، به
565
00:23:33,280 –> 00:23:35,919
این معنی که من فقط می توانم از اینجا از
566
00:23:35,919 –> 00:23:37,520
567
00:23:37,520 –> 00:23:41,679
روش dot height استفاده کنم و از اینجا 75 عبور کنم و
568
00:23:41,679 –> 00:23:44,480
وقتی میخواهم قاب سمت چپم را پیدا کنم میتوانم همین کار را انجام
569
00:23:44,480 –> 00:23:47,279
دهم و میتوان متوجه شد که چگونه
570
00:23:47,279 –> 00:23:51,360
مقدار محور y در اینجا دوباره 25
571
00:23:51,360 –> 00:23:54,640
کل ارتفاع است، بنابراین میتوانم بگویم utils.height
572
00:23:54,640 –> 00:23:56,080
prct
573
00:23:56,080 –> 00:23:59,039
و از اینجا 25 عبور کنم،
574
00:23:59,039 –> 00:24:01,039
حالا ببینیم آیا انجام دادهایم یا نه. یک کار عالی است،
575
00:24:01,039 –> 00:24:03,840
میتوانید ببینید که نتیجه دوباره
576
00:24:03,840 –> 00:24:06,320
عالی است، بنابراین اکنون که این را به دست آوردیم،
577
00:24:06,320 –> 00:24:08,960
اجازه دهید آنها را به مقادیر اصلی تغییر دهم
578
00:24:08,960 –> 00:24:11,840
و از اینجا
579
00:24:11,840 –> 00:24:14,320
به ایجاد آخرین فریم خود در اینجا ادامه
580
00:24:14,320 –> 00:24:16,159
دهم، بنابراین گفتیم که میخواهیم آن را نیز داشته باشیم. یک
581
00:24:16,159 –> 00:24:17,840
فریم دیگر که قرار است در
582
00:24:17,840 –> 00:24:20,799
مرکز صفحه ما باشد که ما
583
00:24:20,799 –> 00:24:23,279
یک فریم خواهیم داشت که برای بازی ما اختصاص داده خواهد شد،
584
00:24:23,279 –> 00:24:25,679
بنابراین من به سرعت جلو می روم
585
00:24:25,679 –> 00:24:28,080
و یک فریم مرکزی ایجاد می کنم که
586
00:24:28,080 –> 00:24:30,320
دوباره برابر یک فریم خواهد بود
587
00:24:30,320 –> 00:24:32,720
و این باید در داخل ریشه باشد،
588
00:24:32,720 –> 00:24:34,240
پس زمینه
589
00:24:34,240 –> 00:24:36,960
باید شاید سبز باشد تا بتوانیم
590
00:24:36,960 –> 00:24:39,039
آن را جدا کنیم.
591
00:24:39,039 –> 00:24:41,200
من باید
592
00:24:41,200 –> 00:24:43,520
در عرض چند دقیقه همه آنها را به رنگ مشکی تغییر دهم
593
00:24:43,520 –> 00:24:45,760
و سپس می گویم وزن
594
00:24:45,760 –> 00:24:49,360
برابر است با Utils Dot width prct و این
595
00:24:49,360 –> 00:24:52,480
بار می خواهم از 75 کل
596
00:24:52,480 –> 00:24:55,679
عرض خود استفاده کنم و ارتفاع در حال افزایش است. to be
597
00:24:55,679 –> 00:24:59,120
دوباره سرعت ارتفاع نقطه را به کار می گیرد و این
598
00:24:59,120 –> 00:25:00,640
نیز 75 خواهد
599
00:25:00,640 –> 00:25:04,880
بود اکنون متد مکان
600
00:25:04,880 –> 00:25:07,039
آرگومان های زیر را دریافت می کند بنابراین
601
00:25:07,039 –> 00:25:09,760
مقدار x باید
602
00:25:09,760 –> 00:25:11,840
utils dot
603
00:25:11,840 –> 00:25:14,240
width piacity 25 باشد
604
00:25:14,240 –> 00:25:17,039
زیرا می خواهیم آن را از اینجا شروع کنیم
605
00:25:17,039 –> 00:25:20,720
و ارتفاع به معنای محور y
606
00:25:20,720 –> 00:25:23,120
باید باشد. همینطور باشد، بنابراین من آن و y را
607
00:25:23,120 –> 00:25:24,480
کپی می کنم
608
00:25:24,480 –> 00:25:27,440
و این را به
609
00:25:27,440 –> 00:25:29,279
ارتفاع plct تغییر
610
00:25:29,279 –> 00:25:31,919
می دهم، زیرا می خواهیم این یکی
611
00:25:31,919 –> 00:25:34,400
از اینجا سمت راست شروع شود، بنابراین
612
00:25:34,400 –> 00:25:35,080
613
00:25:35,080 –> 00:25:39,840
از سمت چپ 360 پیکسل و از بالا 180 پیکسل می گیرد
614
00:25:39,840 –> 00:25:44,080
، بنابراین اکنون اگر بخواهیم
615
00:25:44,080 –> 00:25:45,360
کد خود را آزمایش کنیم
616
00:25:45,360 –> 00:25:47,600
سپس خواهید دید که ما
617
00:25:47,600 –> 00:25:50,080
فقط نتیجه مورد انتظار را داریم، بنابراین اکنون
618
00:25:50,080 –> 00:25:52,400
زمان بسیار خوبی برای تغییر فریم های خود به مشکی است
619
00:25:52,400 –> 00:25:54,559
زیرا ما کار بزرگی انجام داده ایم و می
620
00:25:54,559 –> 00:25:57,279
توانیم آن را به مشکی تغییر
621
00:25:57,279 –> 00:25:59,600
دهیم. فقط یک
622
00:25:59,600 –> 00:26:02,480
پنجره که شبیه یک پنجره سیاه خالص است،
623
00:26:02,480 –> 00:26:05,440
اما در پس زمینه در کد پایتون واقعی،
624
00:26:05,440 –> 00:26:08,640
ما دو فریم داریم که
625
00:26:08,640 –> 00:26:11,200
دقیقاً همانطور که میخواستیم تقسیم شدهاند، بنابراین حالا
626
00:26:11,200 –> 00:26:13,520
که کل پسزمینهها را به سیاه تغییر دادهام
627
00:26:13,520 –> 00:26:15,760
، فقط میخواهیم آن را ببینیم.
628
00:26:15,760 –> 00:26:18,080
همینطور است اما در پس زمینه در
629
00:26:18,080 –> 00:26:20,480
کد اصلی ما واقعاً دو فریم داریم
630
00:26:20,480 –> 00:26:23,600
، یعنی سه فریم خوب است، بنابراین تا این
631
00:26:23,600 –> 00:26:25,840
مرحله می
632
00:26:25,840 –> 00:26:27,279
دانیم که یک فریم
633
00:26:27,279 –> 00:26:30,400
در اینجا داریم و همچنین یک فریم داریم که اکنون اینجا است،
634
00:26:30,400 –> 00:26:33,520
گفتیم که در اینجا می خواهیم
635
00:26:33,520 –> 00:26:34,720
636
00:26:34,720 –> 00:26:36,880
اطلاعاتی در مورد بازی بنویسید
637
00:26:36,880 –> 00:26:39,760
و در اینجا
638
00:26:39,760 –> 00:26:41,440
عنوان مینروب را
639
00:26:41,440 –> 00:26:44,159
درست مانند آن خواهیم داشت، اما کاری که میخواهیم
640
00:26:44,159 –> 00:26:46,240
اینجا در مرکز انجام دهیم،
641
00:26:46,240 –> 00:26:49,919
توسعه تابلو است که هر سلولی
642
00:26:49,919 –> 00:26:52,480
که بازیکن میخواهد روی آن کلیک کند
643
00:26:52,480 –> 00:26:55,039
باید اینجا باشد و اینجا باشد. باید اکنون
644
00:26:55,039 –> 00:26:56,640
همه فروشهای خود را بیابید
645
00:26:56,640 –> 00:26:59,200
و 36 فروش یا 49 سلول با کد سخت ایجاد کنید،
646
00:26:59,200 –> 00:27:03,039
اساساً
647
00:27:03,039 –> 00:27:05,440
مقدار زیادی از فروش سخت خواهد بود،
648
00:27:05,440 –> 00:27:06,799
649
00:27:06,799 –> 00:27:09,200
بنابراین مکان دقیقی است
650
00:27:09,200 –> 00:27:11,440
که میخواهیم چیزهایمان را کمی
651
00:27:11,440 –> 00:27:14,480
پویاتر کنیم.
652
00:27:14,480 –> 00:27:17,200
ادامه دهید و یک حلقه for انجام دهید که به جلو می رود
653
00:27:17,200 –> 00:27:19,440
و آن
654
00:27:19,440 –> 00:27:20,399
نوع
655
00:27:20,399 –> 00:27:23,440
سلول ها را به صورت پویا ایجاد می کند، اکنون ما همچنین
656
00:27:23,440 –> 00:27:26,640
رفتار هر سلول را می خواهیم یک نوع
657
00:27:26,640 –> 00:27:28,240
رفتار دکمه به اصطلاح به این دلیل که
658
00:27:28,240 –> 00:27:30,399
می خواهیم روی چیزی کلیک کنیم
659
00:27:30,399 –> 00:27:32,399
و سپس چیز بعدی را چیزی می خواهیم.
660
00:27:32,399 –> 00:27:34,720
درست در بازی اتفاق می افتد، ما
661
00:27:34,720 –> 00:27:37,760
اطلاعاتی در مورد آن سلول خواهیم دید،
662
00:27:37,760 –> 00:27:41,919
بنابراین زمان دقیق ایجاد یک کلاس است
663
00:27:41,919 –> 00:27:44,399
که می توانیم نام آن را به فروش برسانیم، زیرا می دانیم
664
00:27:44,399 –> 00:27:46,880
که برای هر سلول نیز دوست داریم
665
00:27:46,880 –> 00:27:49,760
برخی ویژگی ها را بدهیم مانند اینکه سلول مال من است.
666
00:27:49,760 –> 00:27:52,480
یا نه، یا اگر این سلولی است که
667
00:27:52,480 –> 00:27:55,760
قبلاً باز شده یا بسته است، بنابراین
668
00:27:55,760 –> 00:27:58,480
دقیقاً در آن زمان است که
669
00:27:58,480 –> 00:28:00,799
فکر کردن در مورد ایجاد کلاسی است که بتوانیم
670
00:28:00,799 –> 00:28:03,279
سلولی را نامگذاری کنیم و میتوانیم
671
00:28:03,279 –> 00:28:06,640
نمونههایی از آن را بعداً در حال حاضر ایجاد کنیم. آ
672
00:28:06,640 –> 00:28:08,960
مثال سریع من قصد دارم آن را حذف کنم
673
00:28:08,960 –> 00:28:10,559
بعد از اینکه می خواهم مثال اصلی را به شما نشان دهم،
674
00:28:10,559 –> 00:28:12,799
اما در اینجا نحوه ایجاد یک
675
00:28:12,799 –> 00:28:15,200
دکمه روی یک پنجره با استفاده از کتابخانه tkinter به
676
00:28:15,200 –> 00:28:17,200
درستی آمده است، بنابراین بیایید از یک
677
00:28:17,200 –> 00:28:19,520
متغیر تصادفی مانند دکمه یک استفاده کنیم که
678
00:28:19,520 –> 00:28:21,200
برابر خواهد بود. برای
679
00:28:21,200 –> 00:28:22,880
دکمه
680
00:28:22,880 –> 00:28:24,960
مانند آن حالا این دکمه
681
00:28:24,960 –> 00:28:27,360
چندین آرگومان دریافت می کند، فرض کنید که
682
00:28:27,360 –> 00:28:29,840
ما این را در کادر مرکزی خود
683
00:28:29,840 –> 00:28:32,159
می خواهیم و می خواهیم رنگ پس زمینه
684
00:28:32,159 –> 00:28:35,039
آبی را بدهیم و بیایید یک متن به آن بدهیم با عرض
685
00:28:35,039 –> 00:28:36,960
پوزش برای از دست دادن کاما در اینجا، بیایید
686
00:28:36,960 –> 00:28:39,279
یک متن به آن بدهیم. مانند دکمه اول
687
00:28:39,279 –> 00:28:41,120
و سپس کاری که اکنون می خواهم انجام دهم این
688
00:28:41,120 –> 00:28:44,720
است که بگویم دکمه 1 نقطه
689
00:28:44,720 –> 00:28:46,720
نقطه آن را
690
00:28:46,720 –> 00:28:51,520
در اولین پیکسل در محور x و محور y
691
00:28:51,520 –> 00:28:53,279
در قاب مرکزی قرار می دهیم، بنابراین باید در
692
00:28:53,279 –> 00:28:55,200
سمت چپ بالای آن باشد. وسط
693
00:28:55,200 –> 00:28:57,760
فریم درست است، بنابراین اگر بخواهیم جلو برویم
694
00:28:57,760 –> 00:28:59,760
و این را اجرا کنیم، میبینید که
695
00:28:59,760 –> 00:29:01,600
من یک دکمه در آنجا دارم و
696
00:29:01,600 –> 00:29:04,000
قابل کلیک است، اکنون میدانیم که میخواهیم
697
00:29:04,000 –> 00:29:06,000
آن را با کلاس سفارشی خود انتزاع کنیم،
698
00:29:06,000 –> 00:29:07,919
زیرا باید به آن
699
00:29:07,919 –> 00:29:10,159
سلول بدهیم: برخی از ویژگی ها را همانطور که
700
00:29:10,159 –> 00:29:12,559
توضیح می دهم نامیده می شود زودتر بخوابید، به همین دلیل است که
701
00:29:12,559 –> 00:29:14,960
میخواهم یک کلاس سلولی ایجاد کنم و سپس
702
00:29:14,960 –> 00:29:17,120
خواهیم دید که چگونه کلاس دکمه
703
00:29:17,120 –> 00:29:20,640
در آن کلاس سلولی درگیر میشود،
704
00:29:20,640 –> 00:29:22,559
ما شروع به توسعه خواهیم کرد، اما بیایید در واقع
705
00:29:22,559 –> 00:29:24,399
ادامه دهیم و روی این درست
706
00:29:24,399 –> 00:29:25,760
کار کنیم، بنابراین من فقط میخواستم برای اینکه به شما نشان دهم چگونه
707
00:29:25,760 –> 00:29:27,760
یک دکمه ایجاد کنید قبل از اینکه ادامه دهیم و
708
00:29:27,760 –> 00:29:30,080
کد دیگری بنویسیم، بنابراین من به اینجا می روم
709
00:29:30,080 –> 00:29:32,080
و یک
710
00:29:32,080 –> 00:29:34,559
فایل پایتون سلولی درست می کنم و کمی بزرگنمایی می
711
00:29:34,559 –> 00:29:38,000
کنم تا همه بتوانند ببینند و من از
712
00:29:38,000 –> 00:29:41,600
سلول کلاس استفاده خواهم کرد. نمیخواهم
713
00:29:41,600 –> 00:29:43,919
از طبقه پایین به ارث ببرد،
714
00:29:43,919 –> 00:29:46,640
زیرا این کاملاً صحیح نیست که بگوییم
715
00:29:46,640 –> 00:29:49,279
سلول نوعی دکمه است، ما
716
00:29:49,279 –> 00:29:51,840
میدانیم که از وراثت برای توصیف انواع چیزها استفاده میکنیم،
717
00:29:51,840 –> 00:29:54,960
مانند سگ نوعی
718
00:29:54,960 –> 00:29:58,000
حیوان است، بنابراین کلاس سگ باید از آن به ارث ببرد.
719
00:29:58,000 –> 00:30:00,320
کلاسی که یک کلاس حیوانی است اما
720
00:30:00,320 –> 00:30:02,399
اینجا دقیقاً اینطور نیست، بنابراین من این
721
00:30:02,399 –> 00:30:05,360
کار را نمیکنم و حالا که این کلاس را ایجاد کردم،
722
00:30:05,360 –> 00:30:07,919
بیایید ادامه دهیم و
723
00:30:07,919 –> 00:30:10,399
سازنده کلاس خود را بنویسیم، همانطور که میدانیم
724
00:30:10,399 –> 00:30:12,880
سازنده متدی است که در حال انجام است.
725
00:30:12,880 –> 00:30:15,840
بلافاصله تماس گرفته شود هنگامی که کلاسی در
726
00:30:15,840 –> 00:30:18,240
حال نمونه سازی است، من به
727
00:30:18,240 –> 00:30:19,919
طور موقت
728
00:30:19,919 –> 00:30:22,559
یک پارامتر را در اینجا دریافت می کنم که
729
00:30:22,559 –> 00:30:25,440
مقدار پیش فرض false را نیز برای آن ارائه می کنم و
730
00:30:25,440 –> 00:30:27,679
می توانید ببینید که نام آن مال من است
731
00:30:27,679 –> 00:30:30,399
درست است و می خواهم بگویم که self dot
732
00:30:30,399 –> 00:30:33,039
underscore است. مال من برابر است با
733
00:30:33,039 –> 00:30:35,440
زیر خط من مانند زیر است،
734
00:30:35,440 –> 00:30:38,000
بنابراین اکنون که این را داریم، بیایید ببینیم که چگونه
735
00:30:38,000 –> 00:30:40,080
از آن در کد خود استفاده می کنیم، بنابراین
736
00:30:40,080 –> 00:30:42,880
به فایل main.py خود می روم
737
00:30:42,880 –> 00:30:45,200
و درست بالای این نظر
738
00:30:45,200 –> 00:30:48,000
اینجا اجرا می کنیم. پنجره و من
739
00:30:48,000 –> 00:30:51,120
باید مطمئناً کلاس را وارد کنیم، بنابراین
740
00:30:51,120 –> 00:30:54,159
بیایید ادامه دهیم و از سلولی
741
00:30:54,159 –> 00:30:57,760
که فایل است، کلاس سلول را
742
00:30:57,760 –> 00:31:00,000
به درستی وارد کنیم و من فقط
743
00:31:00,000 –> 00:31:02,480
آن را در آن خط قرار می دهم تا
744
00:31:02,480 –> 00:31:03,840
ظاهر تمیزتری داشته باشیم.
745
00:31:03,840 –> 00:31:05,840
حالا میخواهم به اینجا بروم و فقط
746
00:31:05,840 –> 00:31:09,120
میگویم c1 برابر با سلول است
747
00:31:09,120 –> 00:31:10,960
و سپس آن را همانطور
748
00:31:10,960 –> 00:31:13,360
که هست رها میکنم زیرا مقدار پیشفرض آن
749
00:31:13,360 –> 00:31:16,480
false است و حالا که این را دارم پس من
750
00:31:16,480 –> 00:31:18,399
فقط می توانید ادامه دهید و آن را اجرا کنید و می توانید
751
00:31:18,399 –> 00:31:20,399
ببینید که ابر نمونه
752
00:31:20,399 –> 00:31:23,360
احتمالاً خوب است زیرا ما
753
00:31:23,360 –> 00:31:25,840
اکنون پیکانی دریافت نکنید بدیهی است که ما هیچ
754
00:31:25,840 –> 00:31:27,600
دکمهای را در اینجا نمیبینیم زیرا فقط یک
755
00:31:27,600 –> 00:31:30,240
کلاس سفارشی ایجاد کردهایم بدون اینکه آن را به
756
00:31:30,240 –> 00:31:33,279
کلاس دکمهای که از این
757
00:31:33,279 –> 00:31:36,320
کتابخانه فاصله tk آمده است ایجاد کنیم، بنابراین اکنون این دقیقاً همان
758
00:31:36,320 –> 00:31:38,159
کاری است که میخواهیم انجام دهیم.
759
00:31:38,159 –> 00:31:41,200
ما به فایل سلولی خود می رویم و ما
760
00:31:41,200 –> 00:31:43,919
یک نمونه دکمه ایجاد می
761
00:31:43,919 –> 00:31:46,880
کنیم که به هر شی سلول تعلق دارد،
762
00:31:46,880 –> 00:31:50,559
بنابراین به این معنی است که این
763
00:31:50,559 –> 00:31:52,559
خود یک ویژگی دیگر را دریافت می کند
764
00:31:52,559 –> 00:31:55,279
که می توانیم آن را شیء دکمه سلولی نام گذاری کنیم.
765
00:31:55,279 –> 00:31:57,919
چیزی شبیه به آن و
766
00:31:57,919 –> 00:32:00,640
سپس ما به آن یک شیء دکمه ای اختصاص می دهیم
767
00:32:00,640 –> 00:32:03,519
و اینگونه است که رابطه
768
00:32:03,519 –> 00:32:06,880
بین اشیاء سلول و
769
00:32:06,880 –> 00:32:09,600
شی دکمه انجام می شود، بنابراین
770
00:32:09,600 –> 00:32:12,399
ابتدا ابتدا
771
00:32:12,399 –> 00:32:14,960
بازی را به طور موقت می بندم و می روم
772
00:32:14,960 –> 00:32:16,640
برای رفتن به اینجا و گفتن
773
00:32:16,640 –> 00:32:20,000
از tk inter import
774
00:32:20,000 –> 00:32:21,440
می دانید چه چیزی را وارد کنیم فقط
775
00:32:21,440 –> 00:32:24,000
کلاس دکمه
776
00:32:24,000 –> 00:32:27,440
را وارد کنیم بیایید اینجا از import کارت وحشی استفاده نکنیم و اکنون می خواهم ادامه دهم
777
00:32:27,440 –> 00:32:30,799
و بگویم که ابتدا باید
778
00:32:30,799 –> 00:32:32,320
برابر
779
00:32:32,320 –> 00:32:34,559
با هیچ باشد و سپس با چیزی که ما داریم می روم ng
780
00:32:34,559 –> 00:32:37,120
to do now یک متد نمونه
781
00:32:37,120 –> 00:32:39,600
ایجاد می کند که این دکمه را برای ما ایجاد می
782
00:32:39,600 –> 00:32:42,880
کند و من آن را به شیء دکمه سلول نقطه خود اختصاص می دهم.
783
00:32:42,880 –> 00:32:45,679
784
00:32:45,679 –> 00:32:47,440
785
00:32:47,440 –> 00:32:49,200
786
00:32:49,200 –> 00:32:51,039
787
00:32:51,039 –> 00:32:55,120
و فعلاً فقط self را دریافت خواهیم کرد
788
00:32:55,120 –> 00:32:58,080
و میخواهیم بگوییم که دکمه اینجا
789
00:32:58,080 –> 00:32:59,200
برابر است با
790
00:32:59,200 –> 00:33:01,440
یک دکمه مانند آن و ما فقط
791
00:33:01,440 –> 00:33:03,600
نمونهای از کلاس دکمه را نمونهسازی
792
00:33:03,600 –> 00:33:06,159
میکنیم در حال حاضر
793
00:33:06,159 –> 00:33:08,159
هیچ پارامتر اضافی غیر از
794
00:33:08,159 –> 00:33:10,399
self که اجباری است دریافت نمیکنیم. در روشهای نمونه،
795
00:33:10,399 –> 00:33:13,120
بنابراین ما باید
796
00:33:13,120 –> 00:33:14,880
حداقل یک پارامتر را دریافت کنیم که بسیار
797
00:33:14,880 –> 00:33:17,600
مهم است که میتوانیم آن را مکان
798
00:33:17,600 –> 00:33:20,240
نامگذاری کنیم، زیرا میدانیم که برای هر عنصری
799
00:33:20,240 –> 00:33:22,399
که میخواهیم در پنجره خود ایجاد
800
00:33:22,399 –> 00:33:24,240
کنیم، باید
801
00:33:24,240 –> 00:33:26,640
اطلاعاتی را ارسال کنیم که tk را وارد می
802
00:33:26,640 –> 00:33:28,799
کند تا بفهمد کجا باید آن
803
00:33:28,799 –> 00:33:31,519
عنصر را پیدا کند، بنابراین اگر پارامتری را دریافت کنیم
804
00:33:31,519 –> 00:33:33,279
که به آن location گفته می شود، می توانم
805
00:33:33,279 –> 00:33:35,760
مستقیماً در مکان عبور دهم و سپس
806
00:33:35,760 –> 00:33:38,399
هر زمان که این متد را فراخوانی کردم
807
00:33:38,399 –> 00:33:40,640
به عمل مراجعه می کنم. قاب مرکزی ual که
808
00:33:40,640 –> 00:33:43,279
از نقطه اصلی py خواهد بود، به همین دلیل است که من
809
00:33:43,279 –> 00:33:45,279
در اینجا پارامتر مکان را به
810
00:33:45,279 –> 00:33:47,360
درستی دریافت می کنم و فقط برای یک مثال موقت،
811
00:33:47,360 –> 00:33:50,159
اجازه دهید یک متن تصادفی مانند
812
00:33:50,159 –> 00:33:51,279
متنی
813
00:33:51,279 –> 00:33:54,159
مانند آن را به عنوان مبتدی به آن بدهم و
814
00:33:54,159 –> 00:33:57,360
سپس می خواهم
815
00:33:57,360 –> 00:34:01,279
می گوییم که شی btn سلول self dot برابر
816
00:34:01,279 –> 00:34:03,519
با شی دکمه ای است که من به
817
00:34:03,519 –> 00:34:05,919
تازگی ایجاد کرده ام و این
818
00:34:05,919 –> 00:34:08,639
مفید خواهد بود زیرا به من کمک می کند تا
819
00:34:08,639 –> 00:34:12,399
بعد از
820
00:34:12,399 –> 00:34:14,560
اختصاص دادن این ویژگی به یک شی دکمه، این دکمه را سفارشی کنم.
821
00:34:14,560 –> 00:34:16,079
و شما فقط در یک دقیقه خواهید دید
822
00:34:16,079 –> 00:34:18,960
که چگونه بسیار
823
00:34:18,960 –> 00:34:20,480
مفید خواهد بود، بنابراین
824
00:34:20,480 –> 00:34:23,918
بیایید به جلو برویم و اکنون به صورت عمودی تقسیم
825
00:34:23,918 –> 00:34:25,918
کنیم تا بتوانیم بفهمیم که در اینجا چه کرده ایم،
826
00:34:25,918 –> 00:34:28,399
بنابراین در سمت چپ ما فایل
827
00:34:28,399 –> 00:34:29,359
سلولی داریم
828
00:34:29,359 –> 00:34:31,119
و در سمت چپ من
829
00:34:31,119 –> 00:34:34,239
قصد دارم روی فایل main.py خود کار کنم، بنابراین کاری که میخواهم انجام دهم،
830
00:34:34,239 –> 00:34:37,119
831
00:34:37,119 –> 00:34:40,719
ادامه میدهم و میگویم c1 dot create button
832
00:34:40,719 –> 00:34:42,560
object زیرا میتوانم به خودم اجازه دهم
833
00:34:42,560 –> 00:34:44,639
آن دکمه را فراخوانی کنم و سپس این
834
00:34:44,639 –> 00:34:46,639
توانایی را دارم که در محل عبور کنید زیرا
835
00:34:46,639 –> 00:34:48,879
قاب مرکزی یک va است riable که
836
00:34:48,879 –> 00:34:51,119
از فایل اصلی dot py به
837
00:34:51,119 –> 00:34:53,359
سمت راست قابل دسترسی است، بنابراین می توانم مستقیماً
838
00:34:53,359 –> 00:34:56,560
به عنوان پارامتر بگویم کادر مرکزی و سپس می
839
00:34:56,560 –> 00:34:59,359
توانم به لطف انتساب ویژگی که در اینجا انجام داده ام، به کار با شی دکمه خود ادامه دهم تا بتوانم پایین بیایم
840
00:34:59,359 –> 00:35:01,359
841
00:35:01,359 –> 00:35:02,640
842
00:35:02,640 –> 00:35:05,280
و می توانم
843
00:35:05,280 –> 00:35:06,880
می گوییم c1
844
00:35:06,880 –> 00:35:11,440
dot cell btn شی نقطه نقطه
845
00:35:11,440 –> 00:35:14,000
مانند آن و می توانم بگویم که می
846
00:35:14,000 –> 00:35:18,000
خواهم آن را در x برابر با صفر و
847
00:35:18,000 –> 00:35:21,280
y برابر با صفر قرار دهم، درست همانطور که
848
00:35:21,280 –> 00:35:23,680
در ابتدای این قسمت
849
00:35:23,680 –> 00:35:25,839
انجام دادیم و اکنون که این کار را انجام دادم. زمان بسیار خوبی
850
00:35:25,839 –> 00:35:28,160
برای آزمایش کد ما است، بنابراین من می خواهم
851
00:35:28,160 –> 00:35:29,520
این برنامه را اجرا کنم و شما خواهید
852
00:35:29,520 –> 00:35:31,760
دید که ما آن دکمه را داریم،
853
00:35:31,760 –> 00:35:34,160
بنابراین شروع بسیار خوبی برای توسعه این
854
00:35:34,160 –> 00:35:36,640
برنامه و پخش کد در
855
00:35:36,640 –> 00:35:38,320
فایل های مختلف است، بنابراین بیشتر خواهد شد.
856
00:35:38,320 –> 00:35:40,960
قابل نگهداری و خواندن بیشتر است،
857
00:35:40,960 –> 00:35:43,280
بنابراین اکنون که این کار را انجام دادیم،
858
00:35:43,280 –> 00:35:44,880
باید بدانیم که
859
00:35:44,880 –> 00:35:47,119
اگر
860
00:35:47,119 –> 00:35:49,359
به استفاده از روش
861
00:35:49,359 –> 00:35:51,839
مکان برای قرار دادن عناصر خود در حال حاضر ادامه دهیم
862
00:35:51,839 –> 00:35:53,520
تا به شما نشان دهیم در آینده با مشکلاتی روبرو خواهیم شد. مسئله که من در مورد آن صحبت
863
00:35:53,520 –> 00:35:55,440
می کنم، می خواهم در اینجا یک
864
00:35:55,440 –> 00:35:57,920
نمونه دیگر از کلاس سلولی ایجاد کنم که به آن رسیدیم،
865
00:35:57,920 –> 00:36:00,560
بنابراین می خواهم بگویم که c2
866
00:36:00,560 –> 00:36:02,560
برابر است با سلول
867
00:36:02,560 –> 00:36:04,880
مانند زیر و سپس می خواهم
868
00:36:04,880 –> 00:36:07,280
بگویم c2
869
00:36:07,280 –> 00:36:09,200
شیء دکمه .38 و
870
00:36:09,200 –> 00:36:10,720
دوباره قاب مرکزی خواهد شد
871
00:36:10,720 –> 00:36:14,240
و سپس من این سلول را دقیقاً نزدیک
872
00:36:14,240 –> 00:36:16,480
اولین سلول درست می
873
00:36:16,480 –> 00:36:19,440
خواهم، بنابراین باید چیزی شبیه به c2 را بگویم
874
00:36:19,440 –> 00:36:21,839
دکمه سلول نقطه نقطه شی نقطه
875
00:36:21,839 –> 00:36:24,880
و سپس باید به صورت پویا
876
00:36:24,880 –> 00:36:27,680
بدانیم چقدر پیکسل باید بپریم.
877
00:36:27,680 –> 00:36:29,599
درست است تا دقیقاً آن را
878
00:36:29,599 –> 00:36:31,839
در مکانی قرار دهیم که می خواهیم، اما این سر
879
00:36:31,839 –> 00:36:33,599
رد و در
880
00:36:33,599 –> 00:36:36,560
سر زیادی خواهد داشت که همیشه مک
881
00:36:36,560 –> 00:36:39,359
ن دقیقی را که می خواهیم عبور کنیم، به همراه دارد، زیرا بر
882
00:36:39,359 –> 00:36:41,040
ی مثال فرض کنید که من در
883
00:36:41,040 –> 00:36:44,160
برابر است با 20 و y برابر با صفر است
884
00:36:44,160 –> 00:36:45,040
و
885
00:36:45,040 –> 00:36:47,359
بازی ما را اجرا کنید اکنون می توانید ببینید که
886
00:36:47,359 –> 00:36:49,119
دکمه سمت راست مانند قبل
887
00:36:49,119 –> 00:36:51,520
از دکمه سمت چپ است زیرا ما
888
00:36:51,520 –> 00:36:53,520
تقریباً نمی توانیم متن روی دکمه سمت چپ را
889
00:36:53,520 –> 00:36:55,760
در اینجا مشاهده کنیم بنابراین می توانیم سعی کنیم
890
00:36:55,760 –> 00:36:58,800
این مقدار x را افزایش دهیم. به 40 چیزی شبیه به
891
00:36:58,800 –> 00:37:01,040
آن و دوباره اجرای g ما ame و می
892
00:37:01,040 –> 00:37:03,280
بینید که اکنون خیلی بهتر است، اما زمانی
893
00:37:03,280 –> 00:37:05,920
که می خواهیم به ایجاد چندین
894
00:37:05,920 –> 00:37:08,160
عنصر به صورت پویا بپردازیم، ممکن است استفاده
895
00:37:08,160 –> 00:37:10,000
از حالت مکان بهترین گزینه
896
00:37:10,000 –> 00:37:12,400
در اینجا نباشد، بنابراین باید
897
00:37:12,400 –> 00:37:15,359
زمانی که از tk inter استفاده می کنیم، روش قرار دادن خود را تغییر دهیم.
898
00:37:15,359 –> 00:37:17,520
به دهها عنصر میرسد که
899
00:37:17,520 –> 00:37:19,760
میخواهیم به صورت پویا ایجاد کنیم و میتوانیم
900
00:37:19,760 –> 00:37:21,839
این کار را با تغییر روش خود از
901
00:37:21,839 –> 00:37:25,280
جایی به شبکه دیگر انجام دهیم، حالا چه شبکهای
902
00:37:25,280 –> 00:37:28,560
عنصر والد را میگیرد که
903
00:37:28,560 –> 00:37:32,000
دقیقاً همانجا است و اکنون
904
00:37:32,000 –> 00:37:34,800
عنصر والد را به ستونها و ردیفها تبدیل میکند.
905
00:37:34,800 –> 00:37:37,280
زیبایی این است که از صفر
906
00:37:37,280 –> 00:37:40,400
ستونها و ردیفها را میشمارد، بهعنوان مثال، اگر
907
00:37:40,400 –> 00:37:42,880
بخواهیم دکمهای را درست در آنجا قرار
908
00:37:42,880 –> 00:37:45,520
دهیم، میتوانیم بگوییم که میخواهیم آن را شبکهبندی کنیم
909
00:37:45,520 –> 00:37:47,839
و سپس مقداری به آن بدهیم که
910
00:37:47,839 –> 00:37:50,400
به عنوان شماره ستون در نظر گرفته میشود و
911
00:37:50,400 –> 00:37:53,119
بیایید این شماره ردیف را درست ببینیم،
912
00:37:53,119 –> 00:37:54,320
بنابراین ممکن
913
00:37:54,320 –> 00:37:56,960
است درک آن در تئوری کمی گیج کننده باشد،
914
00:37:56,960 –> 00:37:58,640
اما اکنون که به جلو می رویم و
915
00:37:58,640 –> 00:38:01,040
این را کد می کنیم، درک آن آسان تر خواهد بود، بنابراین
916
00:38:01,040 –> 00:38:03,440
من می خواهم همه چیز را از او حذف کنم. دوباره
917
00:38:03,440 –> 00:38:06,079
و به pycharm برگردید و در واقع
918
00:38:06,079 –> 00:38:08,720
ادامه دهید و روش قرارگیری را
919
00:38:08,720 –> 00:38:11,599
از grid روی هر دو دکمه در اینجا تغییر دهید،
920
00:38:11,599 –> 00:38:13,680
بنابراین من میروم به c1 خود و
921
00:38:13,680 –> 00:38:15,440
میگویم
922
00:38:15,440 –> 00:38:18,400
grid و سپس میروم. در اینجا
923
00:38:18,400 –> 00:38:19,599
ستون
924
00:38:19,599 –> 00:38:20,960
برابر با
925
00:38:20,960 –> 00:38:21,920
صفر
926
00:38:21,920 –> 00:38:26,079
و سطر برابر با صفر است، به این ترتیب اکنون من
927
00:38:26,079 –> 00:38:29,119
آن آرگومان ها را می گیرم و
928
00:38:29,119 –> 00:38:30,800
به همان
929
00:38:30,800 –> 00:38:33,599
ترتیب این روش را به شبکه نیز منتقل می کنم و
930
00:38:33,599 –> 00:38:34,960
سپس تفاوت را می بینید
931
00:38:34,960 –> 00:38:37,520
وقتی می گویم اینجا ردیف برابر است. به
932
00:38:37,520 –> 00:38:40,000
یک و حالا اگر بخواهیم جلو برویم و
933
00:38:40,000 –> 00:38:42,240
برنامه خود را اجرا کنیم، می بینید که
934
00:38:42,240 –> 00:38:45,359
تفاوت داریم این متن در
935
00:38:45,359 –> 00:38:48,240
اینجا در ستون صفر ردیف صفر
936
00:38:48,240 –> 00:38:51,359
قرار می گیرد اما این یکی در ستون صفر ردیف یک قرار می گیرد
937
00:38:51,359 –> 00:38:53,680
و این دلیل اینکه
938
00:38:53,680 –> 00:38:56,000
دکمه دوم را زیر دکمه اول می بینید و
939
00:38:56,000 –> 00:38:57,359
اگر قرار
940
00:38:57,359 –> 00:39:01,359
باشد این را به صفر تغییر دهم و آن یک
941
00:39:01,359 –> 00:39:03,520
ستون به معنی برابر با یک شود،
942
00:39:03,520 –> 00:39:05,359
آن دکمه ها را یکی نزدیک به هم خواهید دید
943
00:39:05,359 –> 00:39:07,280
که عالی است و زمانی مفید خواهد بود
944
00:39:07,280 –> 00:39:10,240
که ما می خواهیم تعداد زیادی
945
00:39:10,240 –> 00:39:12,880
دکمه ایجاد کنیم تا آماده سازی برای
946
00:39:12,880 –> 00:39:15,119
t را شروع کنیم او بازی Minesweeper بسیار خوب است، بنابراین اکنون که
947
00:39:15,119 –> 00:39:17,839
فهمیدیم روش شبکه چگونه کار می کند،
948
00:39:17,839 –> 00:39:19,920
می خواهیم شروع به ایجاد
949
00:39:19,920 –> 00:39:22,079
آن سلول هایی کنیم که در بازی مین روب خود می خواهیم،
950
00:39:22,079 –> 00:39:24,240
ون این چیزی است که
951
00:39:24,240 –> 00:39:27,040
ی توانیم با یک حلقه for تو در تو به آن
952
00:39:27,040 –> 00:39:29,119
ست پیدا کنیم، بنابراین اجازه دهید به شما نشان دهم که چگونه کار می کن
953
00:39:29,119 –> 00:39:31,200
. به نظر می رسد که در آینده حفظ آن آسان تر خواهد بود
954
00:39:31,200 –> 00:39:32,960
955
00:39:32,960 –> 00:39:35,359
و اجازه دهید ابتدا این را حذف کنیم بنابراین
956
00:39:35,359 –> 00:39:37,599
اولین حلقه for خود را شروع می کنم و
957
00:39:37,599 –> 00:39:39,680
برای x در
958
00:39:39,680 –> 00:39:44,079
محدوده 5 می گویم به عنوان مثال اکنون محدوده فقط
959
00:39:44,079 –> 00:39:45,839
یک تابع است که مسئول
960
00:39:45,839 –> 00:39:48,240
تولید تمام اعداد صحیح در
961
00:39:48,240 –> 00:39:50,560
محدوده داده شده از اعداد است، اگر من فقط
962
00:39:50,560 –> 00:39:54,640
در اینجا 5 ارسال کنم، 0 1 2 3
963
00:39:54,640 –> 00:39:58,000
و 4 را درست می کند، بنابراین من می خواهم به اینجا وارد شوم
964
00:39:58,000 –> 00:40:01,040
و سپس من میخواهم
965
00:40:01,040 –> 00:40:02,640
برای y
966
00:40:02,640 –> 00:40:06,240
در محدوده 5 بگویم، بنابراین من اساساً
967
00:40:06,240 –> 00:40:08,720
در اینجا به رفتار ایجاد 25 دکمه میرسم،
968
00:40:08,720 –> 00:40:11,200
زیرا حلقهای دارم که پنج
969
00:40:11,200 –> 00:40:13,599
بار در داخل حلقه دیگری تکرار میشود
970
00:40:13,599 –> 00:40:16,000
که همچنین پنج بار تکرار میشود، بنابراین
971
00:40:16,000 –> 00:40:18,480
اکنون میتوانم به داخل آن بروم و من می
972
00:40:18,480 –> 00:40:21,920
توان گفت که c برابر با سلول است،
973
00:40:21,920 –> 00:40:24,560
بنابراین من an را نمونه می کنم شیء از آن و
974
00:40:24,560 –> 00:40:27,359
سپس می توانم جلو بروم و بگویم ایجاد
975
00:40:27,359 –> 00:40:29,920
شی btn و به عنوان مکان،
976
00:40:29,920 –> 00:40:32,880
مطمئناً در کادر مرکزی رد می شوم، بنابراین اکنون که
977
00:40:32,880 –> 00:40:34,880
شیء دکمه را ایجاد کرده ایم،
978
00:40:34,880 –> 00:40:37,520
می توانم با خاصیتی
979
00:40:37,520 –> 00:40:39,920
که قبلا ایجاد کرده ایم به آن دسترسی داشته باشم.
980
00:40:39,920 –> 00:40:42,880
سلول btn شی و من می توانم از گزینه grid استفاده کنم
981
00:40:42,880 –> 00:40:46,240
و سپس می توانم در ستونی
982
00:40:46,240 –> 00:40:48,000
برابر با
983
00:40:48,000 –> 00:40:51,920
y پاس بدهم و می توانم بگویم ردیف برابر با هفته
984
00:40:51,920 –> 00:40:54,960
هایی مانند آن است و حالا بیایید نتیجه آن را ببینیم
985
00:40:54,960 –> 00:40:56,880
بنابراین من آن را اجرا می کنم و شما
986
00:40:56,880 –> 00:40:58,800
می توانید ببینید چقدر زیبا به نظر می رسد،
987
00:40:58,800 –> 00:41:01,440
بنابراین ما در حال حاضر شروع به دیدن
988
00:41:01,440 –> 00:41:03,839
چیزی شبیه به یک بازی مین روب کرده ایم
989
00:41:03,839 –> 00:41:06,240
و اکنون کاری که می توانیم
990
00:41:06,240 –> 00:41:09,599
به جای کدنویسی سخت در پنج
991
00:41:09,599 –> 00:41:12,000
حلقه برای انجام دهیم عالی است که در واقع می توانیم به
992
00:41:12,000 –> 00:41:14,560
خودمان اجازه دهیم به فایل تنظیمات برویم. و
993
00:41:14,560 –> 00:41:16,880
درست در اینجا یک تنظیم جدید که می تواند
994
00:41:16,880 –> 00:41:19,680
مانند اندازه شبکه به نظر برسد، سپس می توانیم تصمیم بگیریم که
995
00:41:19,680 –> 00:41:21,839
با هر عددی که دوست داریم برابر است،
996
00:41:21,839 –> 00:41:24,079
می گویم 6 فقط به این دلیل که این
997
00:41:24,079 –> 00:41:26,240
عددی بود که در ابتدای
998
00:41:26,240 –> 00:41:28,720
این مجموعه به عنوان یک بازی نمونه نشان دادم.
999
00:41:28,720 –> 00:41:31,119
و سپس من می روم برای رفتن به اینجا و گفتن
1000
00:41:31,119 –> 00:41:32,319
تنظیمات
1001
00:41:32,319 –> 00:41:35,520
اندازه شبکه نقطه ای اکنون اگر به یاد دارید من
1002
00:41:35,520 –> 00:41:37,680
کل فایل تنظیمات را
1003
00:41:37,680 –> 00:41:39,839
همانجا وارد می کنم تا بتوانم به متغیر اندازه شبکه دسترسی داشته باشم
1004
00:41:39,839 –> 00:41:42,319
و همچنین می توانم همین را اینجا بگویم
1005
00:41:42,319 –> 00:41:44,480
1006
00:41:44,480 –> 00:41:46,640
و سپس می توانم دوباره برنامه خود را اجرا کنم
1007
00:41:46,640 –> 00:41:48,800
و شما می توانم ببینم چگونه به نظر می رسد،
1008
00:41:48,800 –> 00:41:51,200
بنابراین ما یک شش
1009
00:41:51,200 –> 00:41:53,839
ستون و ردیف مانند آن داریم و این
1010
00:41:53,839 –> 00:41:56,640
فقط یک شروع عالی است در حال حاضر قبل از اینکه ادامه دهیم
1011
00:41:56,640 –> 00:41:59,359
و بابت سردرگمی در اینجا متاسفم،
1012
00:41:59,359 –> 00:42:01,359
فکر می کنم بهتر است بگوییم
1013
00:42:01,359 –> 00:42:05,200
ستون برابر با x و ردیف برابر است. به y
1014
00:42:05,200 –> 00:42:07,520
زیرا اگر بخواهیم به عنوان مثال
1015
00:42:07,520 –> 00:42:09,920
این را به سه تغییر دهیم و نه اندازه شبکه نقطه تنظیمات،
1016
00:42:09,920 –> 00:42:11,119
1017
00:42:11,119 –> 00:42:12,880
آنگاه دقیق تر خواهد بود
1018
00:42:12,880 –> 00:42:15,920
که بگوییم سه ردیف درست یک
1019
00:42:15,920 –> 00:42:18,880
دو و سه داریم، بنابراین به همین دلیل می خواهم آن ها را
1020
00:42:18,880 –> 00:42:20,079
بچسبانم.
1021
00:42:20,079 –> 00:42:22,079
ستون برابر است با ترفندها و ردیف
1022
00:42:22,079 –> 00:42:23,359
برابر با y
1023
00:42:23,359 –> 00:42:25,359
مانند زیر و سپس اکنون
1024
00:42:25,359 –> 00:42:27,160
می توانم این را به
1025
00:42:27,160 –> 00:42:30,400
settings.gridsize برگردانم و از اینجا به
1026
00:42:30,400 –> 00:42:32,000
خوبی ادامه دهم، بنابراین اکنون که کاملاً
1027
00:42:32,000 –> 00:42:34,400
این را فهمیدیم، احتمالاً می خواهیم
1028
00:42:34,400 –> 00:42:36,800
بدانیم که چگونه می توانیم رویدادها را به آن اختصاص دهیم.
1029
00:42:36,800 –> 00:42:40,000
دکمههای ما اکنون یک رویداد
1030
00:42:40,000 –> 00:42:42,880
اساساً فهرستی از اقداماتی است که
1031
00:42:42,880 –> 00:42:45,440
میخواهید پس از کلیک بر روی دکمهای انجام دهید، اکنون
1032
00:42:45,440 –> 00:42:47,119
در ابتدای این مجموعه
1033
00:42:47,119 –> 00:42:48,640
گفتیم که میخواهیم
1034
00:42:48,640 –> 00:42:50,960
بین اقدامی که انجام
1035
00:42:50,960 –> 00:42:53,119
میدهیم زمانی که روی آن کلیک چپ کردیم، تفاوت قائل شویم. یک دکمه یا زمانی که
1036
00:42:53,119 –> 00:42:55,359
ما روی یک دکمه راست کلیک می کنیم زیرا
1037
00:42:55,359 –> 00:42:57,440
این دو عمل مختلف در یک
1038
00:42:57,440 –> 00:42:59,839
بازی مین روب هستند، بنابراین
1039
00:42:59,839 –> 00:43:02,640
طراحی این چیز در بازی مین روب بسیار جالب خواهد بود
1040
00:43:02,640 –> 00:43:05,359
1041
00:43:05,359 –> 00:43:07,920
که رویدادهای دکمه های ما را ارائه دهیم در
1042
00:43:07,920 –> 00:43:10,800
واقع بخشی بسیار سرگرم کننده از بازی ما است. پس
1043
00:43:10,800 –> 00:43:12,480
بیایید ببینیم چگونه میتوانیم این کار را انجام دهیم، بنابراین من
1044
00:43:12,480 –> 00:43:15,119
میروم به فایل cell.py خود و
1045
00:43:15,119 –> 00:43:17,599
اینجا مکان دقیقی است که میتوانیم
1046
00:43:17,599 –> 00:43:20,319
شروع کنیم به اختصاص دادن برخی رویدادها به
1047
00:43:20,319 –> 00:43:22,880
دکمههایی که ایجاد میکنیم، زیرا
1048
00:43:22,880 –> 00:43:24,720
دقیقاً همان مکانی است که شی دکمه خود را ایجاد میکنیم.
1049
00:43:24,720 –> 00:43:26,720
ما همچنین میتوانیم پیش برویم و
1050
00:43:26,720 –> 00:43:29,359
به آن یک رویداد اختصاص دهیم، حالا بیایید ادامه دهیم
1051
00:43:29,359 –> 00:43:32,160
و این را بنویسیم، بنابراین وقتی میخواهیم
1052
00:43:32,160 –> 00:43:35,359
رویدادی را به یک دکمه اختصاص دهیم، میخواهیم
1053
00:43:35,359 –> 00:43:37,440
با یک متد خاص کار کنیم که به
1054
00:43:37,440 –> 00:43:40,480
آن bind میگویند، بنابراین با bind میتوانیم در واقع
1055
00:43:40,480 –> 00:43:42,560
برویم. جلوتر و بگوییم که دوست
1056
00:43:42,560 –> 00:43:44,480
داریم وقتی روی یک دکمه کلیک می کنیم چیزی را چاپ کنیم
1057
00:43:44,480 –> 00:43:46,160
و بیایید ببینیم چگونه این کار را انجام
1058
00:43:46,160 –> 00:43:48,000
می دهیم، بنابراین باید در
1059
00:43:48,000 –> 00:43:50,400
دو آرگومان ارسال کنیم که اولین
1060
00:43:50,400 –> 00:43:54,319
آرگومان کلیدی است که روی دکمه کلیک می شود.
1061
00:43:54,319 –> 00:43:57,200
و همچنین عملکردی که
1062
00:43:57,200 –> 00:43:59,920
میخواهید با
1063
00:43:59,920 –> 00:44:02,880
کلیک بر روی هر دکمهای که در ابتدا کلیک میکنید اجرا شود، بنابراین
1064
00:44:02,880 –> 00:44:05,200
ابتدا میخواهیم بگوییم که
1065
00:44:05,200 –> 00:44:07,119
میخواهیم وقتی
1066
00:44:07,119 –> 00:44:09,200
روی یک دکمه و قرارداد
1067
00:44:09,200 –> 00:44:12,000
با tk کلیک کردیم، کاری انجام دهیم. inter برای عبور در
1068
00:44:12,000 –> 00:44:14,800
کلیک چپ چیزی
1069
00:44:14,800 –> 00:44:16,800
شبیه به زیر خواهد بود، بنابراین من
1070
00:44:16,800 –> 00:44:19,760
از علامت کمتر از علامت استفاده می کنم و می خواهم بگویم که
1071
00:44:19,760 –> 00:44:21,839
1072
00:44:21,839 –> 00:44:23,280
1073
00:44:23,280 –> 00:44:25,760
علامت خط تیره یک دکمه بزرگتر از علامت است، بنابراین
1074
00:44:25,760 –> 00:44:28,400
خط تیره یک فقط یک قرارداد
1075
00:44:28,400 –> 00:44:30,880
گفتن است دکمه سمت چپ خط خط سه
1076
00:44:30,880 –> 00:44:32,640
کلیک راست خواهد شد و ما
1077
00:44:32,640 –> 00:44:35,440
این را فقط در یک ثانیه می بینیم و سپس
1078
00:44:35,440 –> 00:44:38,240
می خواهیم بگوییم که می خواهیم
1079
00:44:38,240 –> 00:44:40,480
تابعی را به سمت راست اجرا
1080
00:44:40,480 –> 00:44:42,480
کنیم که آرگومان دوم متد bind خواهد بود.
1081
00:44:42,480 –> 00:44:45,440
بنابراین بیایید با حداقل ترین شروع
1082
00:44:45,440 –> 00:44:47,680
کنیم تابع alistic که میتوانیم به آن برسیم،
1083
00:44:47,680 –> 00:44:49,839
بنابراین من میخواهم متدی را
1084
00:44:49,839 –> 00:44:52,560
در داخل کلاس سلولی خود ایجاد کنم که اقدامات
1085
00:44:52,560 –> 00:44:54,960
کلیک چپ
1086
00:44:54,960 –> 00:44:57,119
مانند آن را فراخوانی میکنم و خود را
1087
00:44:57,119 –> 00:44:59,440
نیز دریافت میکند، مطمئناً یک
1088
00:44:59,440 –> 00:45:01,680
متد نمونه است و سپس فقط
1089
00:45:01,680 –> 00:45:03,200
به
1090
00:45:03,200 –> 00:45:06,720
عنوان یک مثال ابتدایی میگویم کلیک چپ شدهام، من آن را همینطور که هست میگذارم
1091
00:45:06,720 –> 00:45:08,880
1092
00:45:08,880 –> 00:45:11,040
و حالا که این کار را انجام دادیم،
1093
00:45:11,040 –> 00:45:14,400
میتوانم به راحتی مرجع
1094
00:45:14,400 –> 00:45:16,880
آن روش را پاس کنم، بنابراین مانند
1095
00:45:16,880 –> 00:45:19,280
کلیک چپ نخواهد بود. اقدامات و من قصد دارم
1096
00:45:19,280 –> 00:45:21,839
این متد را آنطور صدا کنم، علاوه بر این، من
1097
00:45:21,839 –> 00:45:24,800
فقط به آن مرجعی
1098
00:45:24,800 –> 00:45:26,720
مانند زیر می دهم، بنابراین توجه داشته باشید که
1099
00:45:26,720 –> 00:45:29,040
شما این متد را فراخوانی نمی کنید، شما فقط
1100
00:45:29,040 –> 00:45:32,240
مرجع آن متد را پاس می کنید، بنابراین
1101
00:45:32,240 –> 00:45:34,720
اکنون که ما دریافت کردیم این پس بیایید آن را بررسی
1102
00:45:34,720 –> 00:45:37,040
کنیم و ببینیم که آیا این برای ما کار می
1103
00:45:37,040 –> 00:45:40,160
کند، بنابراین من به اینجا می روم و این
1104
00:45:40,160 –> 00:45:42,240
را کمی بزرگتر می کنم و سعی می کنم
1105
00:45:42,240 –> 00:45:44,560
روی یکی از آن سلول های اینجا کلیک کنم و
1106
00:45:44,560 –> 00:45:46,640
شما می توانید ببینید که ما یک خطا داریم اکنون
1107
00:45:46,640 –> 00:45:49,520
می توانید ببینید که اینجا می گوید
1108
00:45:49,520 –> 00:45:52,800
اقدامات کلیک چپ یک آرگومان موقعیتی می گیرد
1109
00:45:52,800 –> 00:45:56,160
اما اکنون دو آرگومان داده شده است که
1110
00:45:56,160 –> 00:45:58,800
ممکن است یک خطای آشنا باشد که
1111
00:45:58,800 –> 00:46:00,480
شاید در
1112
00:46:00,480 –> 00:46:03,440
سری oop من دیده باشید، اما اساساً این بدان معنی است
1113
00:46:03,440 –> 00:46:04,400
که
1114
00:46:04,400 –> 00:46:07,839
این اقدامات خود کلیکی سعی می
1115
00:46:07,839 –> 00:46:10,640
کند در دو آرگومان عبور کند زمانی که سعی می کند
1116
00:46:10,640 –> 00:46:13,680
اکنون متد اقدامات کلیک چپ را فراخوانی کند.
1117
00:46:13,680 –> 00:46:16,560
این بدان معناست که این روش باید
1118
00:46:16,560 –> 00:46:18,960
یک پارامتر اضافی دیگر را دریافت
1119
00:46:18,960 –> 00:46:21,200
کند تا این
1120
00:46:21,200 –> 00:46:23,760
تخصیص رویداد را با موفقیت انجام دهد و
1121
00:46:23,760 –> 00:46:26,000
این به عنوان یک قرارداد
1122
00:46:26,000 –> 00:46:28,640
مهربانتر از آن ناشی میشود که
1123
00:46:28,640 –> 00:46:30,800
وقتی چیزی را به
1124
00:46:30,800 –> 00:46:31,839
یک رویداد
1125
00:46:31,839 –> 00:46:33,520
اختصاص میدهید باید یک پارامتر دیگر دریافت کند. کمی گیج کننده است، اما
1126
00:46:33,520 –> 00:46:35,599
این روشی است که رویدادها
1127
00:46:35,599 –> 00:46:38,319
در tk بین کار می کنند، بنابراین طبق قرارداد من
1128
00:46:38,319 –> 00:46:40,560
فقط یک پارامتر اولیه را دریافت
1129
00:46:40,560 –> 00:46:43,280
می کنم که اکنون آن را رویداد
1130
00:46:43,280 –> 00:46:45,280
می نامم، این کافی است زیرا tinter سعی می
1131
00:46:45,280 –> 00:46:47,520
کند در دو آرگومان عبور کند. بنابراین انتقال
1132
00:46:47,520 –> 00:46:50,400
یک پارامتر دیگر در اینجا باید عالی باشد،
1133
00:46:50,400 –> 00:46:52,800
بنابراین من برنامه را دوباره اجرا می
1134
00:46:52,800 –> 00:46:55,200
کنم و سپس سعی می کنم
1135
00:46:55,200 –> 00:46:57,280
روی چند دکمه کلیک کنم و می بینید
1136
00:46:57,280 –> 00:47:00,240
که ما یک r عالی داریم. در اینجا برای
1137
00:47:00,240 –> 00:47:02,400
هر دکمه ای که روی آن کلیک می کنم،
1138
00:47:02,400 –> 00:47:05,119
این متن را دریافت می کنم که چپ کلیک شده است
1139
00:47:05,119 –> 00:47:07,200
و اکنون عالی است
1140
00:47:07,200 –> 00:47:09,440
، همچنین می خواهم یک خط دیگر را در اینجا اضافه
1141
00:47:09,440 –> 00:47:11,680
کنم که مسئول
1142
00:47:11,680 –> 00:47:13,119
چاپ در
1143
00:47:13,119 –> 00:47:16,000
اطلاعات موجود است. آن پارامتر رویداد
1144
00:47:16,000 –> 00:47:18,480
و خواهید دید که در واقع
1145
00:47:18,480 –> 00:47:20,400
با اطلاعاتی پر شده است که
1146
00:47:20,400 –> 00:47:22,880
tkinter
1147
00:47:22,880 –> 00:47:25,920
در پسزمینه ارسال میکند، بنابراین حالا بیایید دوباره
1148
00:47:25,920 –> 00:47:28,319
بازی خود را اجرا کنیم و اگر قرار بود روی چیزی کلیک
1149
00:47:28,319 –> 00:47:30,079
کنم، میتوانید ببینید که
1150
00:47:30,079 –> 00:47:33,520
اطلاعاتی درباره آن دریافت کردم. چه
1151
00:47:33,520 –> 00:47:36,160
رویدادی رخ داده است، بنابراین میتوانید ببینید
1152
00:47:36,160 –> 00:47:39,440
که وضعیت رویداد من یک دکمه را فشار
1153
00:47:39,440 –> 00:47:42,800
میدهم که برابر با mod 1 است، فقط در اصل مقداری
1154
00:47:42,800 –> 00:47:45,359
ابرداده در مورد رویدادی که
1155
00:47:45,359 –> 00:47:48,160
در آن لحظه رخ داده است و همچنین میتوانید
1156
00:47:48,160 –> 00:47:51,359
ببینید که من مقادیر محور x را دریافت میکنم.
1157
00:47:51,359 –> 00:47:53,040
و محور y
1158
00:47:53,040 –> 00:47:55,040
برای مکان دقیقی که
1159
00:47:55,040 –> 00:47:57,280
روی آن کلیک شده است، بنابراین فقط یک
1160
00:47:57,280 –> 00:47:59,440
اطلاعات پس زمینه عالی است که اگر دوست دارید می توانید
1161
00:47:59,440 –> 00:48:01,280
ادامه دهید و کاری با آن انجام دهید،
1162
00:48:01,280 –> 00:48:04,400
اکنون می توانید به وضوح ببینید که چرا این
1163
00:48:04,400 –> 00:48:06,880
روش bind از ما نیاز به دریافت
1164
00:48:06,880 –> 00:48:09,200
یک پارامتر دیگر دارد. ساعت en ما یک
1165
00:48:09,200 –> 00:48:12,319
تابع را به عنوان یک رویداد اختصاص می دهیم که
1166
00:48:12,319 –> 00:48:14,559
اکنون باید فراخوانی شود، ممکن است ایده خوبی باشد
1167
00:48:14,559 –> 00:48:17,040
که روش bind را برای کلیک های راست خود نیز آماده کنیم،
1168
00:48:17,040 –> 00:48:19,760
بنابراین من این کنسول را به حداقل می
1169
00:48:19,760 –> 00:48:22,000
رسانم و فقط
1170
00:48:22,000 –> 00:48:24,480
این خط را کپی می کنم و میخواهم بگویم
1171
00:48:24,480 –> 00:48:27,119
که باید
1172
00:48:27,119 –> 00:48:30,319
داشبورد 3 را نیز متصل کنیم، بنابراین این علامت برای
1173
00:48:30,319 –> 00:48:31,440
کلیک راست
1174
00:48:31,440 –> 00:48:35,119
خواهد بود و این نشاندهنده کلیک چپ خواهد بود،
1175
00:48:35,119 –> 00:48:37,599
1176
00:48:37,599 –> 00:48:40,319
اگر دکمه خط تیره 3 برای شما کار نمیکند، ممکن است بخواهید دکمه 2 را نیز امتحان کنید.
1177
00:48:40,319 –> 00:48:43,040
فقط برای ایمنی اگر 3
1178
00:48:43,040 –> 00:48:44,960
کار نمی کند وقتی راست کلیک می کنید سعی
1179
00:48:44,960 –> 00:48:46,960
کنید دکمه خط تیره 2 را نیز امتحان کنید اگر مشکل دیگری دارید،
1180
00:48:46,960 –> 00:48:49,200
این را
1181
00:48:49,200 –> 00:48:51,200
در بخش نظرات به من اطلاع دهید خیلی خوب است، بنابراین من می
1182
00:48:51,200 –> 00:48:53,760
خواهم در اینجا بگویم که اقدامات کلیک راست کنید
1183
00:48:53,760 –> 00:48:56,160
و بدیهی است که من من به اینجا می روم و
1184
00:48:56,160 –> 00:48:57,119
می گویم
1185
00:48:57,119 –> 00:49:00,559
اقدامات کلیک راست ناشنوایان و دوباره می
1186
00:49:00,559 –> 00:49:02,559
خواهم این رویداد را دریافت
1187
00:49:02,559 –> 00:49:04,480
کنم و همین کار را درست انجام می دهم،
1188
00:49:04,480 –> 00:49:07,040
بنابراین در ابتدا رویداد را چاپ می
1189
00:49:07,040 –> 00:49:09,200
کنم و می گویم
1190
00:49:09,200 –> 00:49:10,480
من
1191
00:49:10,480 –> 00:49:13,280
راست کلیک می کنم تا بتوانیم
1192
00:49:13,280 –> 00:49:15,440
بین این دو تفاوت قائل شویم و من دوباره
1193
00:49:15,440 –> 00:49:17,119
بازی خود را اجرا می کنم
1194
00:49:17,119 –> 00:49:19,200
و i میدانید که نمیتوانید این را ببینید، اما من
1195
00:49:19,200 –> 00:49:20,160
1196
00:49:20,160 –> 00:49:22,880
روی آن کلیک راست میکنم و میبینید که
1197
00:49:22,880 –> 00:49:25,599
اکنون
1198
00:49:25,599 –> 00:49:29,040
متنی را در کنسول داریم که دقیقاً
1199
00:49:29,040 –> 00:49:31,599
مشابه عمل کلیک راست است، بنابراین
1200
00:49:31,599 –> 00:49:34,000
عالی است و ما در واقع توانستیم
1201
00:49:34,000 –> 00:49:36,880
برخی از رویدادها را به
1202
00:49:36,880 –> 00:49:39,599
صورت پویا به همه دکمههای خود اختصاص دهید، بنابراین در آن قسمت
1203
00:49:39,599 –> 00:49:42,079
ما میخواهیم روی کلاس سلولی خود تمرکز زیادی داشته باشیم،
1204
00:49:42,079 –> 00:49:44,559
زیرا باید
1205
00:49:44,559 –> 00:49:46,880
منطقی بنویسیم تا
1206
00:49:46,880 –> 00:49:48,880
بازی جارو ذهن را آماده کنیم که نوشتن آن بسیار سرگرم کننده است.
1207
00:49:48,880 –> 00:49:51,119
تمام آن ویژگیهای جدیدی
1208
00:49:51,119 –> 00:49:54,079
که میخواهیم در این کلاس سلولی دریافت کنیم
1209
00:49:54,079 –> 00:49:55,920
و همچنین نوشتن تمام روشهایی
1210
00:49:55,920 –> 00:49:57,760
که مسئولیت نوشتن
1211
00:49:57,760 –> 00:50:00,000
منطق بازی رفتگر ذهن ما را بر عهده دارند، بنابراین
1212
00:50:00,000 –> 00:50:01,119
1213
00:50:01,119 –> 00:50:02,800
چیزهای شی گرا زیادی وجود خواهد داشت که ما
1214
00:50:02,800 –> 00:50:04,960
در آن قسمت می نویسیم و
1215
00:50:04,960 –> 00:50:07,599
انجام همه این کارها بسیار جالب خواهد بود،
1216
00:50:07,599 –> 00:50:09,920
بنابراین ابتدا ممکن است
1217
00:50:09,920 –> 00:50:12,160
بخواهیم ابتدا با افزایش اندازه
1218
00:50:12,160 –> 00:50:14,800
دکمه هایمان شروع کنیم تا آنها را خواناتر کنیم
1219
00:50:14,800 –> 00:50:17,599
و این کار با ادامه دادن قابل دستیابی است.
1220
00:50:17,599 –> 00:50:20,400
به نمونه ما ب کلاس utton
1221
00:50:20,400 –> 00:50:22,640
در داخل این شیء ایجاد دکمه و
1222
00:50:22,640 –> 00:50:24,559
ارسال برخی از آرگومان های اضافی
1223
00:50:24,559 –> 00:50:26,319
که مسئول
1224
00:50:26,319 –> 00:50:28,640
افزایش اندازه دکمه های ما هستند، اکنون
1225
00:50:28,640 –> 00:50:31,359
قبل از آماده سازی پروژه، متوجه
1226
00:50:31,359 –> 00:50:35,839
شدم که عبور وزن برابر با
1227
00:50:35,839 –> 00:50:39,839
12 و قد برابر با 4 مقادیر بسیار خوبی
1228
00:50:39,839 –> 00:50:42,640
هستند وقتی که شما بازی Minesweeper را در جایی
1229
00:50:42,640 –> 00:50:46,640
که 36 سلول دارد، اکنون می توانید ادامه دهید
1230
00:50:46,640 –> 00:50:49,680
و فرمولی را وارد کنید
1231
00:50:49,680 –> 00:50:51,920
که مسئول کوچکتر کردن دکمه ها در
1232
00:50:51,920 –> 00:50:55,440
صورت بزرگتر شدن اندازه شبکه است،
1233
00:50:55,440 –> 00:50:57,839
اما برای ساده کردن آن، من
1234
00:50:57,839 –> 00:50:59,760
فقط آن را رها می کنم. همانطور که هست و
1235
00:50:59,760 –> 00:51:02,000
من در طول آموزش فرض می کنم
1236
00:51:02,000 –> 00:51:03,599
که ما فقط
1237
00:51:03,599 –> 00:51:06,640
بازی مین روب را با 36 دکمه بازی می کنیم به
1238
00:51:06,640 –> 00:51:09,680
این معنی که اندازه شبکه 6
1239
00:51:09,680 –> 00:51:11,839
است که همان مقداری است که من در مورد آن صحبت می کنم،
1240
00:51:11,839 –> 00:51:14,240
بنابراین اکنون می خواهم من را اجرا کنم.
1241
00:51:14,240 –> 00:51:17,200
فایل اصلی و در حال حاضر اینگونه به نظر میرسد
1242
00:51:17,200 –> 00:51:19,359
و بازی با آن بزرگتر و
1243
00:51:19,359 –> 00:51:21,280
خواناتر و راحتتر است،
1244
00:51:21,280 –> 00:51:23,920
بنابراین اکنون که
1245
00:51:23,920 –> 00:51:26,480
به این موضوع رسیدیم، باید قدمهای بعدی خود را
1246
00:51:26,480 –> 00:51:28,559
برداریم یا در
1247
00:51:28,559 –> 00:51:31,359
حال حاضر برای داشتن اطلاعات بیشتر در مورد هر یک از سلول های خود، به
1248
00:51:31,359 –> 00:51:34,079
عنوان مثال، تا به حال حتی یک
1249
00:51:34,079 –> 00:51:37,119
نشانگر در مورد اینکه کدام سلول چیست،
1250
00:51:37,119 –> 00:51:39,200
نداریم زیرا تنها چیزی که
1251
00:51:39,200 –> 00:51:41,680
در مورد هر یک از سلول های خود می دانیم این واقعیت است
1252
00:51:41,680 –> 00:51:44,800
که فقط در حال نوشتن است. یک متن در تمام
1253
00:51:44,800 –> 00:51:47,280
آن 36 دکمه، اما
1254
00:51:47,280 –> 00:51:50,240
اگر می توانستیم برخی از نشانگرها را
1255
00:51:50,240 –> 00:51:52,880
در مورد هر یک از سلول های خود در اینجا داشته باشیم، می توانست عالی باشد، به
1256
00:51:52,880 –> 00:51:55,359
عنوان مثال تا این مرحله می دانیم که
1257
00:51:55,359 –> 00:51:57,280
ما 36 دکمه
1258
00:51:57,280 –> 00:52:00,240
داریم، بنابراین ما آن ها
1259
00:52:00,240 –> 00:52:03,200
را داریم و حق را داریم.
1260
00:52:03,200 –> 00:52:05,920
ما حتی یک نشانگر واحد در مورد
1261
00:52:05,920 –> 00:52:06,800
هر
1262
00:52:06,800 –> 00:52:08,800
سلول نداریم، بنابراین
1263
00:52:08,800 –> 00:52:11,280
برای مثال میتوانست خوب باشد اگر این سلول میتوانست
1264
00:52:11,280 –> 00:52:14,160
ویژگیای مانند x
1265
00:52:14,160 –> 00:52:18,720
برابر با صفر و y برابر با صفر داشته باشد،
1266
00:52:18,720 –> 00:52:21,280
زیرا این فقط چیزی است که به
1267
00:52:21,280 –> 00:52:24,480
طور خاص آن سلول را نشان میدهد.
1268
00:52:24,480 –> 00:52:26,400
به این معنی است که ما میتوانیم
1269
00:52:26,400 –> 00:52:28,400
صفات بیشتری را در آن سلول دریافت کنیم و
1270
00:52:28,400 –> 00:52:30,720
به عنوان مثال برای آن سلول در اینجا
1271
00:52:30,720 –> 00:52:32,640
هم همینطور است، اگر
1272
00:52:32,640 –> 00:52:34,960
میتوانستیم بگوییم که این
1273
00:52:34,960 –> 00:52:37,760
سلول یک ویژگی مانند x برابر با 5
1274
00:52:37,760 –> 00:52:39,040
و y
1275
00:52:39,040 –> 00:52:42,319
برابر با 5 دارد، میتوانست عالی باشد. دلیل اینکه من
1276
00:52:42,319 –> 00:52:45,119
از این 5 و 5 در اینجا استفاده می کنم این است که ما
1277
00:52:45,119 –> 00:52:48,800
شروع به شمارش از صفر می کنیم پس صفر یک دو
1278
00:52:48,800 –> 00:52:52,000
سه چهار پنج در همان
1279
00:52:52,000 –> 00:52:54,000
روش شمارش از
1280
00:52:54,000 –> 00:52:56,240
بالا به پایین مانند آن است، بنابراین بیایید
1281
00:52:56,240 –> 00:52:58,160
جلو برویم و برخی از ویژگی های دیگر را
1282
00:52:58,160 –> 00:53:00,880
در این کلاس دریافت کنیم. من به
1283
00:53:00,880 –> 00:53:03,520
روش init خود می روم و می خواهم بگویم x و y
1284
00:53:03,520 –> 00:53:05,440
مانند آن و مطمئن شوید که آن کاماها را اضافه کرده اید
1285
00:53:05,440 –> 00:53:08,400
و سپس از
1286
00:53:08,400 –> 00:53:11,599
تخصیص self.x برابر با x
1287
00:53:11,599 –> 00:53:16,000
و سپس i’ استفاده می کنم. m که همین کار را برای self.y
1288
00:53:16,000 –> 00:53:19,680
self.y برابر است با y مانند آن و حالا
1289
00:53:19,680 –> 00:53:22,160
که این را دارم، در واقع می
1290
00:53:22,160 –> 00:53:25,680
توانم ادامه دهم و به فایل main.py خود بروم و
1291
00:53:25,680 –> 00:53:28,160
آن اعداد را پاس کنم زیرا روی آن اعداد تکرار می کنم
1292
00:53:28,160 –> 00:53:30,960
وقتی آن سلولها را ایجاد
1293
00:53:30,960 –> 00:53:32,960
میکنم، بنابراین میتوانید ببینید که ما در
1294
00:53:32,960 –> 00:53:35,359
نمونهسازی سلول با مشکلاتی روبرو
1295
00:53:35,359 –> 00:53:37,040
هستیم، زیرا باید برخی از آرگومانهای اجباری را
1296
00:53:37,040 –> 00:53:39,760
بگذرانیم و وقتی این کار را انجام
1297
00:53:39,760 –> 00:53:42,720
دادیم، کاملاً خوب هستیم و اکنون که
1298
00:53:42,720 –> 00:53:45,680
در هر یک از سلولهایمان ویژگیهایی داریم،
1299
00:53:45,680 –> 00:53:48,400
در واقع میتوانیم از آنها برای
1300
00:53:48,400 –> 00:53:51,280
نمایش موقت متنهای مختلف در سلولهایمان استفاده
1301
00:53:51,280 –> 00:53:53,520
کنیم تا بتوانیم چان کنیم به عنوان مثال این را در یک رشته قالب بندی شده قرار دهید
1302
00:53:53,520 –> 00:53:56,319
و می توانیم از
1303
00:53:56,319 –> 00:53:58,960
مرجع self.x
1304
00:53:58,960 –> 00:54:00,000
کاما
1305
00:54:00,000 –> 00:54:01,680
self
1306
00:54:01,680 –> 00:54:04,800
dot y در داخل براکت های فرفری استفاده کنیم و اکنون
1307
00:54:04,800 –> 00:54:07,599
می توانم بازی خود را اجرا کنم و می بینید
1308
00:54:07,599 –> 00:54:10,400
که اکنون ما برخی از ویژگی ها داریم که در آن
1309
00:54:10,400 –> 00:54:13,359
هر ویژگی نشان دهنده یک سلول منحصر به فرد است.
1310
00:54:13,359 –> 00:54:16,160
درست است بنابراین می دانیم که x برابر با 5 است y
1311
00:54:16,160 –> 00:54:18,960
برابر با 5 همان سلول اینجاست و ما
1312
00:54:18,960 –> 00:54:22,400
می دانیم که 2.2 همان سلول آنجاست،
1313
00:54:22,400 –> 00:54:25,280
بنابراین شروعی عالی برای آماده سازی
1314
00:54:25,280 –> 00:54:27,760
الگوریتمی است که می خواهیم بنویسیم
1315
00:54:27,760 –> 00:54:30,079
تا بازی مین روب
1316
00:54:30,079 –> 00:54:32,559
خوب باشد، بنابراین اکنون که ما این کار را انجام دادیم،
1317
00:54:32,559 –> 00:54:35,119
سپس میخواهیم طراحی
1318
00:54:35,119 –> 00:54:38,559
ایجاد چند مین بین تمام آن
1319
00:54:38,559 –> 00:54:41,440
سلولها را آماده کنیم، اکنون میدانیم که در یک بازی مینروب،
1320
00:54:41,440 –> 00:54:44,400
وقتی هر بازی را شروع میکنیم، بازی
1321
00:54:44,400 –> 00:54:46,960
تعدادی سلول تصادفی را
1322
00:54:46,960 –> 00:54:49,280
برمیدارد و آنها را به سلولهایی تبدیل میکند که
1323
00:54:49,280 –> 00:54:53,040
کلیک کردن روی معنی ممنوع است. ذهن ها، بنابراین
1324
00:54:53,040 –> 00:54:55,680
باید به نوعی الگوریتمی بنویسیم
1325
00:54:55,680 –> 00:54:58,160
که مسئول برداشتن چند
1326
00:54:58,160 –> 00:55:01,839
سلول و تبدیل آنها به ذهن باشد، اکنون می
1327
00:55:01,839 –> 00:55:04,079
دانیم که ما قبلاً یک ویژگی داریم
1328
00:55:04,079 –> 00:55:07,200
که به نام من است و به طور پیش فرض
1329
00:55:07,200 –> 00:55:11,040
همه آن ها e false هستند، بنابراین اکنون
1330
00:55:11,040 –> 00:55:13,839
باید روشی بنویسیم که
1331
00:55:13,839 –> 00:55:18,000
برخی از سلولهای اشیاء را انتخاب میکند و آن
1332
00:55:18,000 –> 00:55:21,440
ویژگیها را از بودن is mine برابر به
1333
00:55:21,440 –> 00:55:22,400
false
1334
00:55:22,400 –> 00:55:24,880
به is mine برابر با
1335
00:55:24,880 –> 00:55:28,000
true تبدیل میکند تا
1336
00:55:28,000 –> 00:55:31,200
شروع خوبی برای بازی Minesweeper داشته باشیم.
1337
00:55:31,200 –> 00:55:33,520
در حال حاضر ما می دانیم که به طور موقت
1338
00:55:33,520 –> 00:55:36,000
همه سلول ها مین نیستند زیرا ما
1339
00:55:36,000 –> 00:55:38,000
همیشه نادرست را تعیین می کنیم، اما این چیزی است
1340
00:55:38,000 –> 00:55:39,920
که می خواهیم همین الان آن را تغییر دهیم،
1341
00:55:39,920 –> 00:55:43,359
بنابراین برای شروع طراحی
1342
00:55:43,359 –> 00:55:45,920
این یک ایده عالی است که یک روش ثابت داشته
1343
00:55:45,920 –> 00:55:48,480
باشیم که می توانیم
1344
00:55:48,480 –> 00:55:51,680
بلافاصله پس از نمونه سازی اشیاء سلول، از فایل اصلی نقطه py فراخوانی کنید،
1345
00:55:51,680 –> 00:55:54,240
بنابراین ایده خوبی است که
1346
00:55:54,240 –> 00:55:57,359
فقط متدی داشته باشیم که به هر نمونه تعلق نداشته باشد،
1347
00:55:57,359 –> 00:56:00,160
علاوه بر اینکه به صورت
1348
00:56:00,160 –> 00:56:03,040
سراسری به کلاس تعلق دارد و این
1349
00:56:03,040 –> 00:56:05,599
تعریف یک متد استاتیک است، بنابراین من. می
1350
00:56:05,599 –> 00:56:07,760
خواهم از آن تزئین کننده
1351
00:56:07,760 –> 00:56:11,680
روش استاتیک استفاده کنم و می خواهم بگویم
1352
00:56:11,680 –> 00:56:14,400
1353
00:56:14,559 –> 00:56:17,599
که مین ها را به صورت تصادفی تعریف کنید، بنابراین به این معنی است
1354
00:56:17,599 –> 00:56:19,680
که چند سلول را می گیرد و آنها را به معدن تبدیل می کند
1355
00:56:19,680 –> 00:56:21,280
1356
00:56:21,280 –> 00:56:22,079
تا
1357
00:56:22,079 –> 00:56:24,400
دقیقاً همان جایی است که ما می خواهیم
1358
00:56:24,400 –> 00:56:27,839
s بنویسیم. منطقی است که برخی از سلول ها را به مین تبدیل می کند،
1359
00:56:27,839 –> 00:56:28,799
1360
00:56:28,799 –> 00:56:31,040
بنابراین من در
1361
00:56:31,040 –> 00:56:33,280
گذشته می گذرم تا هیچ خطایی نداشته باشیم و
1362
00:56:33,280 –> 00:56:35,280
حالا بیایید ببینیم چگونه می خواهیم این کار را درست انجام دهیم،
1363
00:56:35,280 –> 00:56:37,520
بنابراین ابتدا
1364
00:56:37,520 –> 00:56:39,760
باید بفهمیم که چگونه میتواند همه
1365
00:56:39,760 –> 00:56:42,079
نمونههای ما را در فهرست ذخیره کند و
1366
00:56:42,079 –> 00:56:43,760
دلیل زیادی وجود دارد که ما میخواهیم
1367
00:56:43,760 –> 00:56:45,920
این کار را در آن مرحله انجام دهیم، زیرا ما
1368
00:56:45,920 –> 00:56:49,119
36 نمونه را نمونهسازی میکنیم، اما
1369
00:56:49,119 –> 00:56:52,559
هیچ کنترلی نداریم که چگونه میتوانیم اقدامات بعدی
1370
00:56:52,559 –> 00:56:56,000
را با آن 36 نمونه که از آنها نمونهسازی میکنیم انجام دهیم.
1371
00:56:56,000 –> 00:56:59,520
این کلاس سلولی که
1372
00:56:59,520 –> 00:57:01,599
در اینجا داریم، بنابراین برای اینکه
1373
00:57:01,599 –> 00:57:03,839
مجموعه ای از تمام نمونه های خود را در
1374
00:57:03,839 –> 00:57:06,319
یک مکان داشته باشیم، ایده خوبی است
1375
00:57:06,319 –> 00:57:08,799
که یک ویژگی کلاس در داخل کلاس سلولی خود
1376
00:57:08,799 –> 00:57:11,280
ایجاد کنیم که می توانیم چیزی شبیه به همه نامگذاری کنیم
1377
00:57:11,280 –> 00:57:13,680
و این یک ویژگی خواهد بود.
1378
00:57:13,680 –> 00:57:16,400
لیست خالی به طور موقت اکنون ما می
1379
00:57:16,400 –> 00:57:19,599
خواهیم اشیاء این کلاس سلولی را
1380
00:57:19,599 –> 00:57:22,000
به آن متغیر همه اضافه
1381
00:57:22,000 –> 00:57:24,000
کنیم و این چیزی است که
1382
00:57:24,000 –> 00:57:26,480
می توانیم به صورت پویا در متد init خود انجام دهیم
1383
00:57:26,480 –> 00:57:28,640
زیرا این متد متدی
1384
00:57:28,640 –> 00:57:30,480
است که هر بار که ایجاد می کنید فراخوانی می شود.
1385
00:57:30,480 –> 00:57:32,720
یک نمونه بنابراین کاملا
1386
00:57:32,720 –> 00:57:35,200
منطقی است که ادامه دهیم و در اینجا کاری انجام
1387
00:57:35,200 –> 00:57:38,319
دهیم که مسئول
1388
00:57:38,319 –> 00:57:42,720
الحاق شی به لیست cell.all باشد تا
1389
00:57:42,720 –> 00:57:46,000
بتوانیم تمام نمونه های این کلاس سلولی را
1390
00:57:46,000 –> 00:57:49,119
در یک مکان داشته باشیم و این بدان معنی است که
1391
00:57:49,119 –> 00:57:52,319
ما می خواهیم اکنون باید بگوییم
1392
00:57:52,319 –> 00:57:53,119
1393
00:57:53,119 –> 00:57:55,680
که تمام نقاط سلول به این صورت است که شما می توانید
1394
00:57:55,680 –> 00:57:58,079
به ویژگی های کلاس در داخل کلاس خود دسترسی داشته باشید،
1395
00:57:58,079 –> 00:58:00,799
ممکن است فکر کرده باشید که
1396
00:58:00,799 –> 00:58:03,520
فقط از همه آنها استفاده کنید، اما زمانی که ما با کلاس ها کار
1397
00:58:03,520 –> 00:58:06,240
می کنیم، همیشه باید نام کلاس
1398
00:58:06,240 –> 00:58:08,559
را به عنوان پیشوند هنگام دسترسی به کلاس خود مشخص کنید.
1399
00:58:08,559 –> 00:58:10,799
ویژگیها بنابراین
1400
00:58:10,799 –> 00:58:14,480
میتوانیم بگوییم نقطه سلول همه نقطه اضافه میشوند و
1401
00:58:14,480 –> 00:58:16,960
سپس میتوانیم خود شی را اضافه کنیم
1402
00:58:16,960 –> 00:58:20,000
که خودش است، بنابراین اکنون که این کار را
1403
00:58:20,000 –> 00:58:22,559
انجام دادیم، احتمالاً دوست داریم آزمایش کنیم
1404
00:58:22,559 –> 00:58:24,480
که آیا این چیزی است که کار میکند
1405
00:58:24,480 –> 00:58:27,760
تا بتوانیم به قسمت اصلی خود برویم. فایل py و
1406
00:58:27,760 –> 00:58:30,319
درست بعد از اینکه همه آن
1407
00:58:30,319 –> 00:58:34,640
اشیاء را در آن خطوط نمونهسازی کردیم، میتوانیم بگوییم تمام نقطه سلول را چاپ کنید،
1408
00:58:34,640 –> 00:58:35,680
1409
00:58:35,680 –> 00:58:39,200
بنابراین باید فهرستی با 36
1410
00:58:39,200 –> 00:58:41,680
عنصر در داخل این
1411
00:58:41,680 –> 00:58:44,079
کنسول را در اینجا ببینیم، بنابراین میتوانید ببینید که این
1412
00:58:44,079 –> 00:58:47,119
دقیقاً نتیجهای است که خواهید دید.
1413
00:58:47,119 –> 00:58:48,079
حرفه ای داشته باشید
1414
00:58:48,079 –> 00:58:50,880
احتمالاً 36 عنصر در اینجا وجود دارد که قبلاً
1415
00:58:50,880 –> 00:58:52,160
می توانیم
1416
00:58:52,160 –> 00:58:54,240
با استفاده از تابع داخلی لنز
1417
00:58:54,240 –> 00:58:57,599
آزمایش کنیم که می توانید ببینید که ما 36 عنصر داریم
1418
00:58:57,599 –> 00:58:59,359
اکنون احتمالاً متوجه شده اید که
1419
00:58:59,359 –> 00:59:01,920
اشیاء به شکلی که اشیاء
1420
00:59:01,920 –> 00:59:04,160
در کنسول نشان داده شده اند
1421
00:59:04,160 –> 00:59:06,160
خیلی دوستانه نیستند.
1422
00:59:06,160 –> 00:59:08,720
اگر میتوانستیم این تنظیمات را نادیده
1423
00:59:08,720 –> 00:59:11,440
بگیریم که میتوانیم اشیاء را زیباتر و دوستانهتر ببینیم، میتوانست عالی باشد
1424
00:59:11,440 –> 00:59:13,520
و این کاری است که
1425
00:59:13,520 –> 00:59:15,599
میتوانیم با نادیده گرفتن برخی
1426
00:59:15,599 –> 00:59:18,480
روشهای جادویی انجام دهیم تا بتوانیم به آن
1427
00:59:18,480 –> 00:59:21,599
کلاس روح برویم و بتوانیم برخی از روشهای جادویی را لغو
1428
00:59:21,599 –> 00:59:23,680
کنیم. مسئول
1429
00:59:23,680 –> 00:59:25,760
تغییر نحوه نمایش شیء
1430
00:59:25,760 –> 00:59:27,920
است و من در مورد یک
1431
00:59:27,920 –> 00:59:30,720
روش جادویی صحبت می کنم که به
1432
00:59:30,720 –> 00:59:33,040
آن epr ما می گویند.
1433
00:59:33,040 –> 00:59:34,880
1434
00:59:34,880 –> 00:59:37,599
1435
00:59:37,599 –> 00:59:39,760
1436
00:59:39,760 –> 00:59:43,520
ما در اینجا self.x و self dot y را ارسال میکنیم،
1437
00:59:43,520 –> 00:59:44,559
1438
00:59:44,559 –> 00:59:46,400
1439
00:59:46,400 –> 00:59:47,280
1440
00:59:47,280 –> 00:59:50,160
بنابراین رشتهای دوستانهتر است
1441
00:59:50,160 –> 00:59:52,799
که هر شی را دوستانهتر نشان میدهد،
1442
00:59:52,799 –> 00:59:56,720
بنابراین علاوه بر دیدن شناسههای تصادفی،
1443
00:59:56,720 –> 00:59:59,599
میتوانیم نامهای دوستانه واقعی را برای هر کدام ببینیم. از اشیاء ما
1444
00:59:59,599 –> 01:00:00,480
1445
01:00:00,480 –> 01:00:02,160
و اگر بخواهیم آزمایش کنیم که این
1446
01:00:02,160 –> 01:00:04,400
کار می کند، می توانم دوباره به خودم اجازه دهم
1447
01:00:04,400 –> 01:00:07,839
که این فایل main.py را اجرا کنم و
1448
01:00:07,839 –> 01:00:10,079
آن را تأیید کنم و می توانید ببینید که اکنون من
1449
01:00:10,079 –> 01:00:10,960
1450
01:00:10,960 –> 01:00:13,599
در اینجا اشیاء دوستانه بیشتری دارم،
1451
01:00:13,599 –> 01:00:16,880
می توانید ببینید که ما داریم نتیجه عالی
1452
01:00:16,880 –> 01:00:19,280
خیلی خوب است، بنابراین اکنون که این را فهمیدیم
1453
01:00:19,280 –> 01:00:22,480
، میخواهم کنار هم کار کنم، سمت چپ
1454
01:00:22,480 –> 01:00:24,880
فایل main.py و
1455
01:00:24,880 –> 01:00:28,240
سمت راست فایل cell.py خواهد بود،
1456
01:00:28,240 –> 01:00:31,040
اکنون میخواهم هر بار که هستم بررسی کنم.
1457
01:00:31,040 –> 01:00:33,599
انجام یک کار عالی در نوشتن مقداری منطق
1458
01:00:33,599 –> 01:00:35,599
در داخل این معادن تصادفی شده، بنابراین
1459
01:00:35,599 –> 01:00:37,280
میروم و بلافاصله بعد از اینکه
1460
01:00:37,280 –> 01:00:40,240
آنها را نمونهسازی کردم، این
1461
01:00:40,240 –> 01:00:42,720
مینهای تصادفی را روش استاتیک مینامم، بنابراین
1462
01:00:42,720 –> 01:00:44,480
میخواهم بگویم که
1463
01:00:44,480 –> 01:00:47,839
نقطه سلولی معادن را تصادفی میکند. و من
1464
01:00:47,839 –> 01:00:49,520
آن را به همان شکلی که هست می گذارم و هر
1465
01:00:49,520 –> 01:00:51,599
بار که یک کد داخل
1466
01:00:51,599 –> 01:00:53,280
این متد اضافه می کنم، می خواهم
1467
01:00:53,280 –> 01:00:55,280
کل بازی را اجرا کنم تا ببینم
1468
01:00:55,280 –> 01:00:57,680
هیچ چیزی را درست انجام ندادم، بنابراین اول همه چیز
1469
01:00:57,680 –> 01:00:59,680
را چیزها
1470
01:00:59,680 –> 01:01:02,720
را تصادفی کنید تا چیزهای تصادفی را از
1471
01:01:02,720 –> 01:01:05,359
یک مجموعه انتخاب کنید ما باید با
1472
01:01:05,359 –> 01:01:07,599
کتابخانه ای که تصادفی نامیده می شود کار کنیم بنابراین من می
1473
01:01:07,599 –> 01:01:10,240
خواهم به خط اول بروم در اینجا من
1474
01:01:10,240 –> 01:01:12,160
وارد خط دوم هستم و می خواهم
1475
01:01:12,160 –> 01:01:16,079
بگویم اینجا import renault now random یک
1476
01:01:16,079 –> 01:01:19,119
روش بسیار خاص دارد که مسئول است
1477
01:01:19,119 –> 01:01:22,160
برای انتخاب تصادفی برخی از عناصر از
1478
01:01:22,160 –> 01:01:24,960
مجموعه داده شده اکنون
1479
01:01:24,960 –> 01:01:28,400
در ابتدا مثال ساده تری را نشان می دهم، بنابراین به
1480
01:01:28,400 –> 01:01:32,880
اینجا می روم و می گویم که من یک لیست دارم
1481
01:01:33,280 –> 01:01:34,880
و دوباره این فقط یک
1482
01:01:34,880 –> 01:01:36,960
مثال ساده خواهد بود تا به شما نشان دهم که چگونه
1483
01:01:36,960 –> 01:01:39,280
روشی که من در مورد آن صحبت میکنم کار میکند، بنابراین من
1484
01:01:39,280 –> 01:01:40,559
1485
01:01:40,559 –> 01:01:41,760
میخواهم فهرستی
1486
01:01:41,760 –> 01:01:43,200
با
1487
01:01:43,200 –> 01:01:46,079
سه نام
1488
01:01:46,079 –> 01:01:48,640
داشته باشم، g مایکل و پل را داشته
1489
01:01:48,640 –> 01:01:50,400
باشم و سپس فرض کنیم که میخواهم
1490
01:01:50,400 –> 01:01:53,520
هر بار بهطور تصادفی دو نام را انتخاب کنم، بنابراین میروم.
1491
01:01:53,520 –> 01:01:56,559
ادامه دادن و گفتن random.simple
1492
01:01:56,559 –> 01:02:00,079
نمونه روشی است که در ابتدا
1493
01:02:00,079 –> 01:02:02,400
مجموعه ای را که می خواهید به
1494
01:02:02,400 –> 01:02:04,480
طور تصادفی عناصر را انتخاب کنید می پذیرد بنابراین
1495
01:02:04,480 –> 01:02:07,520
لیست من خواهد بود و سپس آرگومان دوم
1496
01:02:07,520 –> 01:02:09,920
مقدار عناصری است که می
1497
01:02:09,920 –> 01:02:12,720
خواهید هر بار انتخاب کنید. از آنجایی که میخواهم
1498
01:02:12,720 –> 01:02:15,359
هر بار دو نام انتخاب کنم، میخواهم
1499
01:02:15,359 –> 01:02:18,240
از اینجا عبور کنم وای پس
1500
01:02:18,240 –> 01:02:20,640
بیایید کل این عبارت را نیز
1501
01:02:20,640 –> 01:02:23,200
به یک متغیر اختصاص دهیم، بنابراین من می خواهم این
1502
01:02:23,200 –> 01:02:25,119
نام های انتخاب شده را
1503
01:02:25,119 –> 01:02:27,680
درست صدا کنم و سپس فقط
1504
01:02:27,680 –> 01:02:28,559
آن را چاپ کنم،
1505
01:02:28,559 –> 01:02:30,480
بنابراین
1506
01:02:30,480 –> 01:02:32,880
نام های انتخاب شده را چاپ کنید، اکنون توجه کنید که
1507
01:02:32,880 –> 01:02:35,839
من این متد را صدا می زنم، بنابراین باید
1508
01:02:35,839 –> 01:02:39,359
ببینیم وقتی این بازی را اجرا میکنم نتیجه میدهم، بنابراین
1509
01:02:39,359 –> 01:02:42,079
وقتی جلو میروم و برنامهمان را
1510
01:02:42,079 –> 01:02:44,079
اجرا میکنم، میتوانی ببینی که جیم و
1511
01:02:44,079 –> 01:02:46,880
مایکل را دریافت میکنم و برای اجرای بعدی ما میتوانیم
1512
01:02:46,880 –> 01:02:48,960
نامهای مختلفی را دریافت کنیم، میتوان
1513
01:02:48,960 –> 01:02:51,119
دید که این بار جیم و پل را دریافت کردم،
1514
01:02:51,119 –> 01:02:53,599
بنابراین دقیقاً همینطور است. کاری که میخواهیم
1515
01:02:53,599 –> 01:02:56,799
با ذهنمان انجام دهیم، میخواهیم بهطور تصادفی
1516
01:02:56,799 –> 01:02:57,839
1517
01:02:57,839 –> 01:03:00,960
سلولهایی را انتخاب کنیم و سپس
1518
01:03:00,960 –> 01:03:04,640
فقط ویژگی is mine را به true تغییر دهیم،
1519
01:03:04,640 –> 01:03:07,520
زیرا همه آنها نادرست هستند، بنابراین
1520
01:03:07,520 –> 01:03:09,440
حالا که این را فهمیدیم، بیایید ادامه دهیم
1521
01:03:09,440 –> 01:03:12,319
و منطق مورد نیاز را درون آن بنویسیم.
1522
01:03:12,319 –> 01:03:15,440
ذهنهای تصادفیشده، بنابراین فهرست من
1523
01:03:15,440 –> 01:03:17,920
cell.all خواهد بود، زیرا این
1524
01:03:17,920 –> 01:03:19,920
مجموعهای است که میخواهم برخی از
1525
01:03:19,920 –> 01:03:22,480
اشیاء را بهطور تصادفی از آن انتخاب کنم، بنابراین
1526
01:03:22,480 –> 01:03:24,559
بلافاصله پس از اینکه
1527
01:03:24,559 –> 01:03:26,880
متوجه شدیم نمونه چگونه کار میکند، این خط را حذف
1528
01:03:26,880 –> 01:03:29,760
میکنم. تی o این متغیر را به
1529
01:03:29,760 –> 01:03:32,799
سلول های انتخاب شده تغییر دهید
1530
01:03:32,799 –> 01:03:34,720
زیرا این فقط یک
1531
01:03:34,720 –> 01:03:37,440
نام متغیر واقعی تر است و سپس من
1532
01:03:37,440 –> 01:03:39,839
این خط را موقتاً حذف می کنم،
1533
01:03:39,839 –> 01:03:41,920
یک خط را در اینجا پرش می کنم بنابراین
1534
01:03:41,920 –> 01:03:44,640
دیدن آرگومان های ارسال شده
1535
01:03:44,640 –> 01:03:46,480
و مجموعه ای که
1536
01:03:46,480 –> 01:03:49,520
در اینجا ارسال خواهم کرد، تمام نقاط سلول خواهد بود، زیرا
1537
01:03:49,520 –> 01:03:52,720
نقطه سلول همه شامل همه موارد
1538
01:03:52,720 –> 01:03:56,000
است و سپس ما باید برای یک
1539
01:03:56,000 –> 01:03:58,640
عدد صحیح تصمیم بگیریم که مسئول
1540
01:03:58,640 –> 01:04:01,680
تعداد عناصر است که اکنون باید انتخاب شود
1541
01:04:01,680 –> 01:04:05,359
اگر حدود 36 داشته باشیم. سلولها پس
1542
01:04:05,359 –> 01:04:07,760
شاید ایده خوبی باشد که حداقل
1543
01:04:07,760 –> 01:04:10,079
به عنوان یک چهارم مقدار آن را انتخاب کنیم، بنابراین شاید
1544
01:04:10,079 –> 01:04:13,200
نه سلول برای تبدیل آنها به معدن
1545
01:04:13,200 –> 01:04:14,880
، این بازی را خیلی
1546
01:04:14,880 –> 01:04:17,760
سخت نکند که اساساً آن را ببریم، بنابراین
1547
01:04:17,760 –> 01:04:20,240
من میخواهم آن را پاس کنم. در اینجا نه به
1548
01:04:20,240 –> 01:04:22,000
طور موقت فقط برای اینکه ببینم چگونه
1549
01:04:22,000 –> 01:04:23,119
کار می کند،
1550
01:04:23,119 –> 01:04:26,240
سپس می خواهم بگویم سلول های انتخاب شده را چاپ
1551
01:04:26,240 –> 01:04:27,680
1552
01:04:27,680 –> 01:04:30,319
کنید و برنامه ما را اجرا کنید و سپس می توانید ببینید
1553
01:04:30,319 –> 01:04:34,000
که ما به طور تصادفی 9 شی سلول
1554
01:04:34,000 –> 01:04:36,319
داریم که در اینجا انتخاب شده اند،
1555
01:04:36,319 –> 01:04:38,960
بنابراین بسیار مفید است. روش tha میتوانیم ادامه دهیم
1556
01:04:38,960 –> 01:04:41,520
و از آن برای برداشتن
1557
01:04:41,520 –> 01:04:44,000
سلولها و تبدیل آنها به معدن استفاده کنیم،
1558
01:04:44,000 –> 01:04:46,160
بنابراین اکنون که یک مجموعه فروش انتخاب شده
1559
01:04:46,160 –> 01:04:48,720
به معنای فهرست فروش انتخاب
1560
01:04:48,720 –> 01:04:50,640
شده داریم، در واقع میتوانیم روی اشیاء سلولهای پیک شده تکرار کنیم
1561
01:04:50,640 –> 01:04:53,760
و فقط
1562
01:04:53,760 –> 01:04:56,640
ویژگی من است را تغییر دهیم. از false به
1563
01:04:56,640 –> 01:04:57,440
true
1564
01:04:57,440 –> 01:05:00,160
پس بیایید ادامه دهیم و علاوه بر چاپ
1565
01:05:00,160 –> 01:05:02,880
پیکسل ها از یک حلقه for استفاده کنیم که
1566
01:05:02,880 –> 01:05:04,720
شبیه شکل زیر است، بنابراین می توانم برای
1567
01:05:04,720 –> 01:05:06,000
پیکسل
1568
01:05:06,000 –> 01:05:06,799
در
1569
01:05:06,799 –> 01:05:08,640
سلول های انتخاب شده بگویم
1570
01:05:08,640 –> 01:05:11,200
و سپس اکنون روی هر شیء تکرار می کنم
1571
01:05:11,200 –> 01:05:13,760
تا بتوانم بگویم
1572
01:05:13,760 –> 01:05:17,119
نقطه پیکسل زیرخط من است.
1573
01:05:17,119 –> 01:05:18,480
برابر با
1574
01:05:18,480 –> 01:05:20,000
true است اکنون
1575
01:05:20,000 –> 01:05:22,319
ذهن است از اینجا می آید زیرا
1576
01:05:22,319 –> 01:05:24,160
ما قبلاً می دانیم که چنین
1577
01:05:24,160 –> 01:05:26,319
ویژگی را داریم و فقط می خواهیم
1578
01:05:26,319 –> 01:05:27,359
آن را به
1579
01:05:27,359 –> 01:05:29,760
true تغییر دهیم و اکنون که این را داریم،
1580
01:05:29,760 –> 01:05:32,480
بیایید ادامه دهیم و برنامه خود را اجرا کنیم و
1581
01:05:32,480 –> 01:05:34,319
نباید ببینیم
1582
01:05:34,319 –> 01:05:36,400
1583
01:05:36,400 –> 01:05:39,440
1584
01:05:39,440 –> 01:05:41,280
اگر واقعاً میخواهید آزمایش کنید که
1585
01:05:41,280 –> 01:05:42,960
میتوانید پیش بروید و
1586
01:05:42,960 –> 01:05:45,359
پس از فراخوانی مینهای تصادفی در
1587
01:05:45,359 –> 01:05:48,000
سمت چپ، میتوانید جلو بروید و از مقدار
1588
01:05:48,000 –> 01:05:49,680
true استفاده کنید، این ویژگی کاملاً در پسزمینه حذف شده است. برای
1589
01:05:49,680 –> 01:05:50,880
c در
1590
01:05:50,880 –> 01:05:52,640
نقطه سلول همه چیز را مانند
1591
01:05:52,640 –> 01:05:56,400
آن چاپ کنید، سپس نقطه c مال من است، بنابراین ما
1592
01:05:56,400 –> 01:05:58,960
باید مقداری درست و برخی نادرست را ببینیم
1593
01:05:58,960 –> 01:06:02,640
و این آخرین آزمایش است
1594
01:06:02,640 –> 01:06:04,799
که واقعاً به ما نشان می دهد که ما
1595
01:06:04,799 –> 01:06:06,319
قادر به تغییر برخی ویژگی ها بوده ایم و می
1596
01:06:06,319 –> 01:06:08,559
توانید ببینید که این دقیقاً نتیجه است،
1597
01:06:08,559 –> 01:06:11,200
بنابراین ما کار بسیار خوبی را انجام دادهایم که
1598
01:06:11,200 –> 01:06:14,079
برخی از اشیاء تصادفی را انتخاب کرده و آنها را
1599
01:06:14,079 –> 01:06:16,559
به مین تبدیل کردهایم و این تنها راهی است
1600
01:06:16,559 –> 01:06:18,960
که میتوانید آن را به خوبی انجام دهید، بنابراین اکنون که
1601
01:06:18,960 –> 01:06:20,720
این کار را انجام دادیم،
1602
01:06:20,720 –> 01:06:23,359
حذف آنها کاملاً منطقی است.
1603
01:06:23,359 –> 01:06:24,240
1604
01:06:24,240 –> 01:06:26,079
اکنون باید بفهمیم که چگونه
1605
01:06:26,079 –> 01:06:28,240
میخواهیم پویا باشیم و
1606
01:06:28,240 –> 01:06:32,000
مقدار این مقدار استخراج شده را درست تعیین کنیم تا بتوانیم ادامه دهیم
1607
01:06:32,000 –> 01:06:34,720
و از فایل settings.py
1608
01:06:34,720 –> 01:06:38,079
استفاده کنیم تا در واقع از فرمولی برای
1609
01:06:38,079 –> 01:06:41,039
محاسبه تعداد ذهنهای مورد نظر خود استفاده کنیم. در
1610
01:06:41,039 –> 01:06:43,440
بازی ما می توانیم ادامه دهیم و در اینجا از یک
1611
01:06:43,440 –> 01:06:45,920
تنظیم دیگر استفاده کنیم که می توانیم تعداد مین ها را نام ببریم
1612
01:06:45,920 –> 01:06:48,240
و ممکن است برابر با
1613
01:06:48,240 –> 01:06:49,760
چیزی شبیه زیر باشد، بنابراین من
1614
01:06:49,760 –> 01:06:51,599
پرانتز را باز می کنم و
1615
01:06:51,599 –> 01:06:53,039
بین آن توان
1616
01:06:53,039 –> 01:06:54,400
اندازه شبکه
1617
01:06:54,400 –> 01:06:57,280
دو و سپس می گویم من می توانم د آن را بر
1618
01:06:57,280 –> 01:06:58,880
چهار تقسیم کنید زیرا
1619
01:06:58,880 –> 01:07:01,520
در آن بازی در حال حاضر ما 36 سلول
1620
01:07:01,520 –> 01:07:04,640
داریم، زیرا ما بیش از مقدار شش را
1621
01:07:04,640 –> 01:07:07,599
دو بار تکرار می کنیم، بنابراین منطقی است که
1622
01:07:07,599 –> 01:07:09,839
چنین فرمولی را درست بنویسیم، بنابراین شش
1623
01:07:09,839 –> 01:07:12,559
توان دو تقسیم بر چهار 9 است و
1624
01:07:12,559 –> 01:07:14,960
این تقریباً برابر است ارزشی که به نظر می
1625
01:07:14,960 –> 01:07:17,760
رسد وقتی می خواهیم حداقل یک
1626
01:07:17,760 –> 01:07:19,920
بازی مین روب منصفانه داشته باشیم، نمی خواهیم
1627
01:07:19,920 –> 01:07:20,880
1628
01:07:20,880 –> 01:07:23,440
نصف ارزشی را که نمی خواهیم
1629
01:07:23,440 –> 01:07:25,839
مانند 27 مین داشته باشیم داشته باشیم، زیرا
1630
01:07:25,839 –> 01:07:28,880
پیروزی در آن بسیار دشوار است. بازی بنابراین
1631
01:07:28,880 –> 01:07:31,440
تقریباً یک چهارم این مقدار
1632
01:07:31,440 –> 01:07:34,160
خوب است اکنون ممکن است از خود بپرسید
1633
01:07:34,160 –> 01:07:35,839
که چه اتفاقی می افتد اگر روزی
1634
01:07:35,839 –> 01:07:38,480
اندازه شبکه را به 7 تغییر دهم
1635
01:07:38,480 –> 01:07:42,000
بنابراین توان 7 2 برابر با 49 و تقسیم بر 4
1636
01:07:42,000 –> 01:07:45,599
برابر با 12.25 است و این فقط خوب نیست
1637
01:07:45,599 –> 01:07:47,280
زیرا تعداد من باید یک
1638
01:07:47,280 –> 01:07:49,359
عدد صحیح باشد، بنابراین من فقط یک اسلش اول دیگر را به اینجا اضافه می کنم
1639
01:07:49,359 –> 01:07:51,440
و وقتی از
1640
01:07:51,440 –> 01:07:54,240
اسلش دو برابر استفاده می کنید، مجبور می
1641
01:07:54,240 –> 01:07:56,799
شود در یک عدد صحیح باشد، بقیه را کاملا نادیده می گیرد،
1642
01:07:56,799 –> 01:07:59,520
بنابراین ما می توانیم یک اسلش را به اینجا اضافه کنیم.
1643
01:07:59,520 –> 01:08:02,559
اسلش اول بیشتر است و
1644
01:08:02,559 –> 01:08:05,599
حالا می توانم به c خود برگردم فایل ell dot py
1645
01:08:05,599 –> 01:08:06,799
و من میتوانم
1646
01:08:06,799 –> 01:08:09,599
به آن تنظیمات مقدار مراجعه
1647
01:08:09,599 –> 01:08:10,559
1648
01:08:10,559 –> 01:08:13,200
کنم و میبینم که ما هیچ
1649
01:08:13,200 –> 01:08:15,200
خط وارداتی در مورد تنظیمات نداریم، بنابراین
1650
01:08:15,200 –> 01:08:16,960
میتوانید ادامه دهید و از
1651
01:08:16,960 –> 01:08:20,719
تنظیمات import در بالا استفاده کنید و ما باید خوب باشیم.
1652
01:08:20,719 –> 01:08:22,399
در آن قسمت میخواهیم
1653
01:08:22,399 –> 01:08:24,238
وقتی روی یک سلول کلیک میکنیم چه کاری باید انجام
1654
01:08:24,238 –> 01:08:27,120
دهیم، بنابراین
1655
01:08:27,120 –> 01:08:29,520
ابتدا باید متنی را
1656
01:08:29,520 –> 01:08:31,439
که برای هر کدام از سلولهای
1657
01:08:31,439 –> 01:08:35,040
اینجا نوشتهایم حذف کنیم که نشاندهنده مقادیر محور x و y است،
1658
01:08:35,040 –> 01:08:37,359
پس بیایید برویم. ابتدا این را حذف کنید،
1659
01:08:37,359 –> 01:08:39,359
بنابراین من
1660
01:08:39,359 –> 01:08:41,600
میخواهم آن خط را حذف کنم، زیرا
1661
01:08:41,600 –> 01:08:43,759
قبلاً متن سلول بود، بنابراین من فقط
1662
01:08:43,759 –> 01:08:46,000
آن را برابر با
1663
01:08:46,000 –> 01:08:49,040
هیچ میکنم و سپس باید تصمیم بگیریم که چه چیزی را
1664
01:08:49,040 –> 01:08:50,960
انجام دهیم. وقتی
1665
01:08:50,960 –> 01:08:53,439
روی یک سلول کلیک کردیم اینجا نمایش داده شود، بنابراین اجازه دهید بازی را
1666
01:08:53,439 –> 01:08:55,839
دوباره مانند آن اجرا کنم و اکنون
1667
01:08:55,839 –> 01:08:58,238
می بینیم که چیزی نداریم، بنابراین
1668
01:08:58,238 –> 01:09:00,799
عمل مورد انتظار در اینجا این است که هر وقت
1669
01:09:00,799 –> 01:09:01,679
1670
01:09:01,679 –> 01:09:04,560
روی sl کلیک چپ می کنیم عذر خواهی کنید،
1671
01:09:04,560 –> 01:09:06,479
باید این کار را انجام دهیم. نمایش عددی
1672
01:09:06,479 –> 01:09:09,198
که آن عدد نشان دهنده
1673
01:09:09,198 –> 01:09:12,319
تعداد مین های موجود است دوباره آن
1674
01:09:12,319 –> 01:09:14,640
سلول را احاطه کرده است، بنابراین
1675
01:09:14,640 –> 01:09:18,000
معنی آن چیست که اگر آن یک معدن است و
1676
01:09:18,000 –> 01:09:20,880
آن یک معدن است و همینطور این یکی،
1677
01:09:20,880 –> 01:09:23,198
پس باید سه مین را در اینجا نشان دهیم
1678
01:09:23,198 –> 01:09:26,158
زیرا این سلول باید
1679
01:09:26,158 –> 01:09:28,080
بفهمد چند مین در اطراف آن سلول وجود دارد،
1680
01:09:28,080 –> 01:09:30,238
بیایید یک مین دیگر برداریم. به عنوان مثال
1681
01:09:30,238 –> 01:09:32,158
در اینجا، بنابراین بیایید فرض کنیم که ما اینجا را کلیک کردیم،
1682
01:09:32,158 –> 01:09:33,279
1683
01:09:33,279 –> 01:09:36,319
سپس این سلول باید شروع به
1684
01:09:36,319 –> 01:09:38,158
فکر کردن کند که چند ذهن سلول ها را
1685
01:09:38,158 –> 01:09:40,880
احاطه کرده است، بنابراین این بدان معناست که ما
1686
01:09:40,880 –> 01:09:43,759
در مورد همه آن سلول ها صحبت می کنیم، فرض کنید
1687
01:09:43,759 –> 01:09:46,719
ما یک معدن در اینجا داریم، ما
1688
01:09:46,719 –> 01:09:49,120
یک ذهن در آنجا داریم و همه آنها اینها ماین نیستند،
1689
01:09:49,120 –> 01:09:52,399
بنابراین ما باید یکی را در اینجا به درستی نمایش دهیم تا
1690
01:09:52,399 –> 01:09:53,198
1691
01:09:53,198 –> 01:09:55,840
1692
01:09:55,840 –> 01:09:58,080
هدف اصلی در آن قسمت باشد و
1693
01:09:58,080 –> 01:10:00,000
الگوریتم های زیادی لازم است که باید
1694
01:10:00,000 –> 01:10:02,560
درون متدهای داخل کلاس سلولی بنویسیم،
1695
01:10:02,560 –> 01:10:05,360
بنابراین بسیار
1696
01:10:05,360 –> 01:10:08,000
چالش برانگیز خواهد بود. و همچنین انجام آن سرگرم کننده است و
1697
01:10:08,000 –> 01:10:09,679
بیایید ادامه دهیم و خوب شروع کنیم،
1698
01:10:09,679 –> 01:10:11,920
بنابراین من می خواهم با اسکرول کردن
1699
01:10:11,920 –> 01:10:14,400
به پایین به سمت اقدامات کلیک چپ شروع کنم و سپس
1700
01:10:14,400 –> 01:10:16,640
همه چیز را در اینجا حذف کنم و
1701
01:10:16,640 –> 01:10:18,719
نوشتن را شروع کنم در اینجا برخی از اقداماتی که اکنون
1702
01:10:18,719 –> 01:10:21,040
باید انجام دهیم یکی از اولین کارهایی
1703
01:10:21,040 –> 01:10:23,120
که میخواهیم اینجا بنویسیم یک
1704
01:10:23,120 –> 01:10:25,600
شرط شرطی if است که بررسی میکند آیا آن
1705
01:10:25,600 –> 01:10:28,320
سلول واقعاً یک معدن است و من میتوانم این کار را با نوشتن انجام دهم
1706
01:10:28,320 –> 01:10:31,280
اگر خود نقطه مال من
1707
01:10:31,280 –> 01:10:33,760
است. اینکه من می توانم این کار را انجام دهم به این دلیل است
1708
01:10:33,760 –> 01:10:36,080
که می دانم در ابتدای بازی من
1709
01:10:36,080 –> 01:10:37,760
قبلاً به این روش می گویند که به آن ”
1710
01:10:37,760 –> 01:10:40,480
ذهن تصادفی” گفته می شود که چند
1711
01:10:40,480 –> 01:10:43,360
شی سلولی را می گیرد و سپس آن را
1712
01:10:43,360 –> 01:10:46,159
برابر با true قرار می دهد بنابراین می توانم کاملاً
1713
01:10:46,159 –> 01:10:48,719
این کار را انجام دهم و سپس اگر سلول کلیک شده
1714
01:10:48,719 –> 01:10:50,800
یک معدن باشد، میخواهم چندین عمل را شروع کنم،
1715
01:10:50,800 –> 01:10:53,600
بنابراین آن چندین
1716
01:10:53,600 –> 01:10:55,679
عمل نیز تحت روشی قرار میگیرند
1717
01:10:55,679 –> 01:10:58,480
که میتوانیم همین الان بنویسیم، بنابراین اگر
1718
01:10:58,480 –> 01:11:00,800
self dot مال من است، میتوانم ادامه دهم و
1719
01:11:00,800 –> 01:11:03,760
بگویم self dot show بر ذهن
1720
01:11:03,760 –> 01:11:06,080
چیزی شبیه به آن تأکید کنید و این فقط یک
1721
01:11:06,080 –> 01:11:08,880
نظریه است. من می دانم که نشان دادن روش من روشی نیست
1722
01:11:08,880 –> 01:11:11,840
که در حال حاضر وجود داشته باشد، اما این
1723
01:11:11,840 –> 01:11:13,600
کاری است که ما همین الان انجام خواهیم داد،
1724
01:11:13,600 –> 01:11:15,600
من از آن روش خارج می شوم و
1725
01:11:15,600 –> 01:11:17,440
سپس من. میخواهم بگویم def
1726
01:11:17,440 –> 01:11:18,800
show min
1727
01:11:18,800 –> 01:11:21,280
و من sel را دریافت خواهم کرد f به عنوان
1728
01:11:21,280 –> 01:11:24,080
محیط مطمئناً همه چیز درست است، بنابراین در آن روش
1729
01:11:24,080 –> 01:11:26,320
من اساساً اقداماتی
1730
01:11:26,320 –> 01:11:29,120
را می نویسم که مسئول نمایش
1731
01:11:29,120 –> 01:11:32,159
این سلول به عنوان مین هستند، اکنون می دانیم که
1732
01:11:32,159 –> 01:11:34,800
در اینجا باید یک منطق بنویسیم
1733
01:11:34,800 –> 01:11:35,840
تا
1734
01:11:35,840 –> 01:11:38,960
بازی قطع شود
1735
01:11:38,960 –> 01:11:42,480
و یک پیام نمایش داده شود.
1736
01:11:42,480 –> 01:11:44,159
پیامی
1737
01:11:44,159 –> 01:11:45,600
که
1738
01:11:45,600 –> 01:11:48,239
بازیکن دقیقاً چیزی شبیه به آن را از دست داده است، اما من
1739
01:11:48,239 –> 01:11:49,840
به طور موقت این کار را انجام نمی دهم زیرا
1740
01:11:49,840 –> 01:11:52,000
1741
01:11:52,000 –> 01:11:53,679
متوقف کردن و خاتمه بازی هر بار
1742
01:11:53,679 –> 01:11:56,239
که روی یک معدن کلیک می کنم در حالی
1743
01:11:56,239 –> 01:11:58,880
که آن بازی را توسعه می دهیم بسیار آزاردهنده خواهد بود.
1744
01:11:58,880 –> 01:12:01,520
پسزمینه آن سلول به رنگ پسزمینه قرمز
1745
01:12:01,520 –> 01:12:04,080
باید از نظر زمانی کافی باشد، بنابراین من
1746
01:12:04,080 –> 01:12:05,760
فقط میخواهم در اینجا چیزی شبیه به شیء دکمه
1747
01:12:05,760 –> 01:12:06,719
زیر خط
1748
01:12:06,719 –> 01:12:08,800
سلول خود نقطه زیر بگویم
1749
01:12:08,800 –> 01:12:11,199
و سپس
1750
01:12:11,199 –> 01:12:13,440
رنگ پسزمینه آن را پیکربندی
1751
01:12:13,440 –> 01:12:16,320
میکنم تا اگر به یاد داشته باشید چه زمانی ما از
1752
01:12:16,320 –> 01:12:19,040
اشیاء tkinter استفاده می کنیم، می توانیم از این
1753
01:12:19,040 –> 01:12:20,560
روش پیکربندی استفاده کنیم که
1754
01:12:20,560 –> 01:12:23,440
مسئول پیکربندی عناصر ما خواهد بود، بنابراین
1755
01:12:23,440 –> 01:12:25,679
به عنوان مثال می توانم ادامه دهم و بگویم
1756
01:12:25,679 –> 01:12:28,960
که اکنون bg برابر با قرمز است که
1757
01:12:28,960 –> 01:12:31,199
معادل کاری است که با t انجام داده ایم. او
1758
01:12:31,199 –> 01:12:33,520
قاب اجازه می دهد به شما نشان دهم که با تقسیم
1759
01:12:33,520 –> 01:12:36,880
عمودی می توانید ببینید که ما
1760
01:12:36,880 –> 01:12:40,480
پنجره خود را در اینجا گرفتیم و از پیکربندی نقطه bg
1761
01:12:40,480 –> 01:12:43,920
برابر با سیاه استفاده کردیم، بنابراین هر کاری که اینجا انجام می دهیم،
1762
01:12:43,920 –> 01:12:46,000
در اینجا یک عمل انجام می دهیم که
1763
01:12:46,000 –> 01:12:49,120
هر زمان که روی سلولی کلیک می کنیم کاملاً معادل است. اگر
1764
01:12:49,120 –> 01:12:51,199
این یک معدن است و اگر چنین است، ما
1765
01:12:51,199 –> 01:12:53,120
آن روش را راه اندازی می کنیم که
1766
01:12:53,120 –> 01:12:55,360
مسئول پیکربندی رنگ پس زمینه
1767
01:12:55,360 –> 01:12:58,080
آن به رنگ قرمز است و این فقط یک
1768
01:12:58,080 –> 01:13:01,120
شروع عالی است، بنابراین اگر
1769
01:13:01,120 –> 01:13:02,719
بازی خود را اجرا
1770
01:13:02,719 –> 01:13:05,679
کنیم و روی چند سلول کلیک کنیم.
1771
01:13:05,679 –> 01:13:07,520
سپس می توانید ببینید که این یک معدن است، به
1772
01:13:07,520 –> 01:13:10,239
همین دلیل به رنگ قرمز رنگ شده است،
1773
01:13:10,239 –> 01:13:12,320
بنابراین شروع خوبی است و من متوجه شدم که
1774
01:13:12,320 –> 01:13:14,320
در اینجا اشتباه تایپی داشتم، بنابراین این
1775
01:13:14,320 –> 01:13:17,280
باید منطقی برای قطع بازی
1776
01:13:17,280 –> 01:13:19,280
و نمایش پیامی باشد که بازیکن از دست داده است.
1777
01:13:19,280 –> 01:13:21,840
بسیار خوب، پس اکنون که این کار را
1778
01:13:21,840 –> 01:13:24,080
انجام دادیم، باید طراحی
1779
01:13:24,080 –> 01:13:26,400
کنیم که اگر
1780
01:13:26,400 –> 01:13:29,520
سلول معدن نیست، چه کاری باید انجام دهیم، بنابراین اینجا مکان دقیقی است
1781
01:13:29,520 –> 01:13:32,480
که باید بگوییم دیگری و
1782
01:13:32,480 –> 01:13:34,400
سپس باید روشی را راه اندازی کنم که
1783
01:13:34,400 –> 01:13:37,280
بگوید self. سلول زیرخط را در
1784
01:13:37,280 –> 01:13:40,480
سمت راست و اینجا نشان دهید i
1785
01:13:40,480 –> 01:13:42,480
چیز پیچیده ای خواهد بود زیرا باید عددی را نمایش دهیم
1786
01:13:42,480 –> 01:13:45,120
که نشان دهنده
1787
01:13:45,120 –> 01:13:47,520
تعداد مین هایی باشد که سلول کلیک شده را احاطه کرده اند،
1788
01:13:47,520 –> 01:13:49,520
بنابراین من به اینجا می
1789
01:13:49,520 –> 01:13:51,679
روم و از این اقدامات کلیک چپ خارج می شوم
1790
01:13:51,679 –>