در این مطلب، ویدئو پخش کننده سودوکو خود را در پایتون بسازید | Pygame با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:37:31
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:01,120 –> 00:00:07,440
[موسیقی]
2
00:00:07,440 –> 00:00:08,240
در این ویدیو
3
00:00:08,240 –> 00:00:10,559
ما یک بازی اساسی سودوکو می سازیم،
4
00:00:10,559 –> 00:00:12,320
برنامه ای می سازیم که در آن می توانید
5
00:00:12,320 –> 00:00:14,080
پازل را از یک api واکشی کنید
6
00:00:14,080 –> 00:00:16,000
و یک برنامه gui داشته باشید که می توانید
7
00:00:16,000 –> 00:00:18,000
آن را حل کنید تا یک حل کننده خودکار در آن وجود نداشته باشد
8
00:00:18,000 –> 00:00:19,119
. این نسخه
9
00:00:19,119 –> 00:00:21,039
که احتمالاً در یک ویدیوی آینده وجود خواهد داشت،
10
00:00:21,039 –> 00:00:23,279
شاید ویدیوی بعدی باشد،
11
00:00:23,279 –> 00:00:24,640
اما در حال حاضر ما در حال ساخت یک
12
00:00:24,640 –> 00:00:26,720
نسخه بسیار ابتدایی هستیم که می توانید
13
00:00:26,720 –> 00:00:27,599
خودتان آن را حل کنید
14
00:00:27,599 –> 00:00:30,400
، به عنوان مثال تصویری که در
15
00:00:30,400 –> 00:00:32,880
اینجا می بینید خروجی نهایی یک کد است.
16
00:00:32,880 –> 00:00:36,000
نسخه شما می توانید
17
00:00:36,000 –> 00:00:37,920
ارقام را در مکانی که می
18
00:00:37,920 –> 00:00:39,920
خواهید وارد کنید و
19
00:00:39,920 –> 00:00:41,600
بله، بنابراین این عملکرد اساسی
20
00:00:41,600 –> 00:00:43,120
است که ما در این ویدیو هدف آن هستیم،
21
00:00:43,120 –> 00:00:43,680
22
00:00:43,680 –> 00:00:45,280
فقط طرح اولیه و
23
00:00:45,280 –> 00:00:46,879
عملکرد اضافه کردن ارقام به
24
00:00:46,879 –> 00:00:47,440
25
00:00:47,440 –> 00:00:50,160
طرح بندی خوب است، بنابراین بیایید به مراحلی
26
00:00:50,160 –> 00:00:51,680
که ما این کار را دنبال می کنیم،
27
00:00:51,680 –> 00:00:53,440
بنابراین ابتدا پنجره pyking را
28
00:00:53,440 –> 00:00:55,120
کل این پنجره
29
00:00:55,120 –> 00:00:57,280
می سازیم، سپس طرح بندی سودوکو را
30
00:00:57,280 –> 00:00:58,160
شبکه ها می
31
00:00:58,160 –> 00:01:00,239
سازیم و سپس sudoku van
32
00:01:00,239 –> 00:01:02,800
api را پر می کنیم تا از یک api برای بدست آوردن این
33
00:01:02,800 –> 00:01:04,159
مقادیر اولیه استفاده
34
00:01:04,159 –> 00:01:07,040
کنیم. 7438 که او را می بینید مجدداً و در
35
00:01:07,040 –> 00:01:09,360
آخر ما عملکرد کاربر را
36
00:01:09,360 –> 00:01:11,680
که برای وارد کردن این ارقام به
37
00:01:11,680 –> 00:01:12,799
145
38
00:01:12,799 –> 00:01:15,520
در صفحه سودوکو استفاده میشود اضافه میکنیم، پس بیایید
39
00:01:15,520 –> 00:01:17,920
شروع کنیم،
40
00:01:18,720 –> 00:01:20,799
بنابراین از آنجایی که مرحله اول تنظیم
41
00:01:20,799 –> 00:01:22,479
بازی pi است، مانند دو ویدیوی قبلی است،
42
00:01:22,479 –> 00:01:23,360
43
00:01:23,360 –> 00:01:26,000
بنابراین اساساً ما فقط باید بازی pi را وارد
44
00:01:26,000 –> 00:01:26,640
کنید که
45
00:01:26,640 –> 00:01:28,720
در یک نقطه بازی پای در آن برای مقداردهی اولیه
46
00:01:28,720 –> 00:01:29,920
بازی pi
47
00:01:29,920 –> 00:01:32,200
خواهیم داشت، پنجره را با استفاده از
48
00:01:32,200 –> 00:01:33,600
49
00:01:33,600 –> 00:01:36,079
پنجره حالت pygame.display.set با استفاده از این عرض ایجاد می کنیم و
50
00:01:36,079 –> 00:01:37,840
عنوان را در اینجا تنظیم می کنیم
51
00:01:37,840 –> 00:01:39,840
و این عملکرد است. که اگر
52
00:01:39,840 –> 00:01:41,840
دکمه خروج را در پنجره pygm فشار دهیم، پنجره به خوبی خاموش میشود
53
00:01:41,840 –> 00:01:44,799
، بنابراین بیایید
54
00:01:44,799 –> 00:01:47,280
این را اجرا
55
00:01:48,159 –> 00:01:51,040
کنیم بله، همانطور که میتوانید ببینید، بنابراین همانطور که میبینید
56
00:01:51,040 –> 00:01:51,920
ما یک
57
00:01:51,920 –> 00:01:55,360
پنجره در اینجا داریم و بله، بنابراین همانطور که
58
00:01:55,360 –> 00:01:56,320
انتظار میرفتیم،
59
00:01:56,320 –> 00:01:59,920
پس بیایید uh را اضافه کنیم اکنون شبکه را وارد کنید، بنابراین
60
00:01:59,920 –> 00:02:00,960
برای اضافه کردن شبکه،
61
00:02:00,960 –> 00:02:03,600
کاری که باید انجام دهیم این است که یک
62
00:02:03,600 –> 00:02:04,079
حلقه
63
00:02:04,079 –> 00:02:05,680
خوب خواهیم داشت، بنابراین یک حلقه خواهیم داشت که
64
00:02:05,680 –> 00:02:07,360
10 بار اجرا
65
00:02:07,360 –> 00:02:10,000
می شود و هر یک از آن سطرها و
66
00:02:10,000 –> 00:02:11,200
ستون های
67
00:02:11,200 –> 00:02:14,160
شبکه را به این شکل می کند. ما این رنگ پس زمینه را
68
00:02:14,160 –> 00:02:14,560
69
00:02:14,560 –> 00:02:18,239
داریم و پنجره را با این رنگ پر می کنیم تا کی
70
00:02:18,239 –> 00:02:22,959
رنگ پسزمینه نقطه پر
71
00:02:22,959 –> 00:02:25,599
خوب است، بنابراین ما این
72
00:02:25,599 –> 00:02:28,080
رنگ پسزمینه پشتی را روی پنجره قرار میدهیم
73
00:02:28,080 –> 00:02:31,440
و حالا بیایید شبکهها
74
00:02:31,440 –> 00:02:37,519
را برای i در محدوده 0 تا 10 قرار دهیم،
75
00:02:37,519 –> 00:02:39,519
بنابراین همانطور که در شکل قبل دیدید،
76
00:02:39,519 –> 00:02:41,760
سودوکو اساساً یک شبکه 9 متقابل 9 است.
77
00:02:41,760 –> 00:02:43,920
به 10 خط در عمودی
78
00:02:43,920 –> 00:02:45,760
و 10 خط افقی نیاز دارید،
79
00:02:45,760 –> 00:02:47,599
پس بیایید این خطوط عمودی و
80
00:02:47,599 –> 00:02:49,280
افقی را
81
00:02:49,280 –> 00:02:53,280
توسط pygame.draw.line ترسیم کنیم و
82
00:02:53,280 –> 00:02:55,760
پارامترهای اینجا زمانی خواهد بود که
83
00:02:55,760 –> 00:02:58,800
این خط باشد
84
00:02:58,800 –> 00:03:02,000
و رنگ سیاه باشد
85
00:03:02,000 –> 00:03:03,680
و بنابراین این خواهد شد. مختصات شروع
86
00:03:03,680 –> 00:03:05,280
و این مختصات پایانی خواهد بود
87
00:03:05,280 –> 00:03:06,560
88
00:03:06,560 –> 00:03:08,959
و فرض کنید عرض ما 2 باشد خوب است،
89
00:03:08,959 –> 00:03:09,840
بنابراین این
90
00:03:09,840 –> 00:03:12,640
اساساً خط عمودی خواهد بود و اجازه دهید
91
00:03:12,640 –> 00:03:15,519
آن را کپی کنم
92
00:03:16,720 –> 00:03:18,319
و این خط افقی خواهد بود، بنابراین
93
00:03:18,319 –> 00:03:19,920
باید شروع و پایان را مشخص کنیم.
94
00:03:19,920 –> 00:03:22,319
مختصات این خطوط
95
00:03:22,319 –> 00:03:24,239
پس فرض کنید من می خواهم مختصات x
96
00:03:24,239 –> 00:03:25,440
را 50 داشته باشم
97
00:03:25,440 –> 00:03:27,040
خوب پس مختصات x خط اول
98
00:03:27,040 –> 00:03:29,280
50 است و فرض کنید
99
00:03:29,280 –> 00:03:31,760
می خواهم یک تکرار
100
00:03:31,760 –> 00:03:33,920
50 در هر تکرار
101
00:03:33,920 –> 00:03:37,040
داشته باشم بنابراین um 50 را اضافه می کنم. بارها گناه می کنم ce
102
00:03:37,040 –> 00:03:37,840
اولین
103
00:03:37,840 –> 00:03:40,879
تکرار i است i برابر با 0 بعدی
104
00:03:40,879 –> 00:03:42,239
خواهد بود i برابر با 1 2
105
00:03:42,239 –> 00:03:45,280
3 و به همین ترتیب در هر تکرار
106
00:03:45,280 –> 00:03:47,120
این مقدار 50 را به مختصات x من اضافه می کند
107
00:03:47,120 –> 00:03:49,920
همانطور که مختصات y
108
00:03:49,920 –> 00:03:52,080
برای خطوط عمودی مختصات y در خطوط عمودی است
109
00:03:52,080 –> 00:03:53,599
. نقطه شروع
110
00:03:53,599 –> 00:03:56,560
برای هر یک از خطوط ثابت خواهد بود زیرا
111
00:03:56,560 –> 00:03:58,159
مختصات y این فاصله از مختصات x
112
00:03:58,159 –> 00:03:58,799
113
00:03:58,799 –> 00:04:01,280
خوب است بنابراین وقتی این کار انجام شد
114
00:04:01,280 –> 00:04:02,959
یک بار دیگر با کمک شکل توضیح خواهم داد،
115
00:04:02,959 –> 00:04:04,959
بنابراین فرض کنید مختصات y
116
00:04:04,959 –> 00:04:08,080
50 است. بنابراین این مختصات شروع ما است
117
00:04:08,080 –> 00:04:10,799
و برای مختصات پایانی اگر می توانید
118
00:04:10,799 –> 00:04:12,239
حدس بزنید که مختصات y دوباره
119
00:04:12,239 –> 00:04:13,840
ثابت می ماند اما مقدار متفاوتی خواهد بود به
120
00:04:13,840 –> 00:04:15,360
121
00:04:15,360 –> 00:04:18,560
طوری که مقدار فرض کنید 500 باشد
122
00:04:18,560 –> 00:04:19,839
و مختصات x با
123
00:04:19,839 –> 00:04:21,600
124
00:04:21,600 –> 00:04:24,320
همین معادله نشان داده شود. قبلا نوشتم زیرا اگر
125
00:04:24,320 –> 00:04:25,440
خط را تصور کنید
126
00:04:25,440 –> 00:04:27,520
مختصات x نقطه شروع
127
00:04:27,520 –> 00:04:29,680
و پایان یکسان باقی می ماند،
128
00:04:29,680 –> 00:04:32,720
بنابراین وقتی کد را اجرا کردم در شکل نشان خواهم داد
129
00:04:32,720 –> 00:04:35,120
،
130
00:04:35,120 –> 00:04:38,160
بنابراین بیایید این را نظر بدهیم و من یک نقطه نمایش نقطه بازی دایره ای خواهم داشت.
131
00:04:38,160 –> 00:04:43,840
132
00:04:44,000 –> 00:04:46,880
133
00:04:47,199 –> 00:04:50,000
به روز رسانی
134
00:04:53,520 –> 00:04:55,280
بنابراین می توانید ببینید که ما این 10
135
00:04:55,280 –> 00:04:56,960
خط عمودی را در اینجا
136
00:04:56,960 –> 00:04:59,440
به دست آوردیم، بنابراین آنچه که من مختصات y را توضیح می دادم
137
00:04:59,440 –> 00:05:01,919
این فاصله
138
00:05:01,919 –> 00:05:04,479
از اساساً از محور x خوب است، بنابراین این
139
00:05:04,479 –> 00:05:05,360
فاصله مختصات y
140
00:05:05,360 –> 00:05:07,199
و برای خطوط عمودی
141
00:05:07,199 –> 00:05:08,720
برای نقطه شروع
142
00:05:08,720 –> 00:05:11,520
، y است. مختصات ثابت می ماند و
143
00:05:11,520 –> 00:05:12,800
مختصات x
144
00:05:12,800 –> 00:05:14,320
معادله مختصات x
145
00:05:14,320 –> 00:05:16,000
146
00:05:16,000 –> 00:05:18,880
برای یک خط خاص ثابت می ماند، بنابراین این یا
147
00:05:18,880 –> 00:05:19,680
این خط
148
00:05:19,680 –> 00:05:21,520
برای نقطه شروع و
149
00:05:21,520 –> 00:05:23,520
نقطه پایان، مختصات x یکسان است
150
00:05:23,520 –> 00:05:25,199
و مختصات y برای این نقطه
151
00:05:25,199 –> 00:05:27,199
15 است و مختصات y برای این
152
00:05:27,199 –> 00:05:28,160
نقطه 500 است،
153
00:05:28,160 –> 00:05:31,440
بنابراین امیدوارم که واضح باشد، پس
154
00:05:31,440 –> 00:05:35,440
امم، پس بیایید خطوط باقیمانده
155
00:05:35,440 –> 00:05:38,160
را رسم کنیم تا اکنون خطوط افقی را ترسیم کنیم،
156
00:05:38,160 –> 00:05:39,840
بنابراین همانطور که ممکن است حدس زده باشید برای
157
00:05:39,840 –> 00:05:42,320
خطوط افقی، یک
158
00:05:42,320 –> 00:05:44,479
um خواهد بود. برعکس
159
00:05:44,479 –> 00:05:47,280
خطوط عمودی،
160
00:05:47,520 –> 00:05:49,840
بنابراین مختصات x را خواهیم داشت که
161
00:05:49,840 –> 00:05:52,639
برای نقطه شروع ثابت است
162
00:05:52,639 –> 00:05:55,199
و مختصات y را خواهیم داشت که
163
00:05:55,199 –> 00:05:55,759
50
164
00:05:55,759 –> 00:06:00,000
به علاوه 50 برابر
165
00:06:00,000 –> 00:06:04,080
خوب است و برای نقطه پایانی
166
00:06:04,080 –> 00:06:06,800
500 کاما 50 plu خواهد بود. s
167
00:06:06,800 –> 00:06:10,400
50 بار
168
00:06:11,600 –> 00:06:13,520
بله، بنابراین ما شبکه را از اینجا بیرون آوردیم، بنابراین می
169
00:06:13,520 –> 00:06:15,520
توانید ببینید که یک شبکه بسیار زیبا است
170
00:06:15,520 –> 00:06:18,560
و اینها همه
171
00:06:18,560 –> 00:06:21,360
9 جعبه متقاطع 9 هستند، بنابراین همانطور که ممکن است متوجه شده باشید
172
00:06:21,360 –> 00:06:22,479
سودوکو حاوی
173
00:06:22,479 –> 00:06:25,520
برخی از خطوط پررنگ است، بنابراین خطوطی که
174
00:06:25,520 –> 00:06:27,520
هر کدام را از هم جدا می کنند.
175
00:06:27,520 –> 00:06:30,639
کادرها پررنگ هستند به طوری که هر خط سوم است، بنابراین
176
00:06:30,639 –> 00:06:31,680
کاری که میتوانیم انجام دهیم این است
177
00:06:31,680 –> 00:06:34,960
که اگر مدول i 3 برابر با 0 باشد، میتوانیم یک عملکرد را در اینجا اضافه کنیم،
178
00:06:34,960 –> 00:06:38,080
بنابراین برای هر خط سوم
179
00:06:38,080 –> 00:06:38,400
180
00:06:38,400 –> 00:06:40,960
یک خط پررنگ رسم میکنیم، بنابراین
181
00:06:40,960 –> 00:06:45,280
دقیقاً همان خطوط را باید با خط پررنگ بکشید
182
00:06:47,520 –> 00:06:50,240
بسیار خوب
183
00:06:54,240 –> 00:06:58,319
پس برای این بیت آن را به چهار تغییر میدهم،
184
00:06:58,319 –> 00:07:01,840
بیایید آن را بررسی کنیم.
185
00:07:01,840 –> 00:07:05,199
186
00:07:08,000 –> 00:07:10,800
187
00:07:10,800 –> 00:07:11,440
188
00:07:11,440 –> 00:07:14,479
189
00:07:14,479 –> 00:07:16,560
هفت
190
00:07:16,560 –> 00:07:17,599
هشت
191
00:07:17,599 –> 00:07:19,840
و نه و این یک شبکه نه متقاطع است و
192
00:07:19,840 –> 00:07:21,919
ما میتوانیم
193
00:07:21,919 –> 00:07:26,240
اکنون این شبکهها را پر کنیم، بنابراین این مرحله سوم ما است
194
00:07:26,240 –> 00:07:29,280
و اکنون در حال حرکت به سمت آن
195
00:07:29,280 –> 00:07:32,400
هستیم، بنابراین باید یک
196
00:07:32,400 –> 00:07:35,520
api را فراخوانی کنیم و مقادیری را که پر میشوند واکشی کنیم.
197
00:07:35,520 –> 00:07:38,000
در سودوکو ما اکنون دلیل
198
00:07:38,000 –> 00:07:38,560
انجام آن این
199
00:07:38,560 –> 00:07:40,880
است که ما فقط می توانیم um inp را انجام دهیم با استفاده از هر
200
00:07:40,880 –> 00:07:42,639
اعداد تصادفی در یک سودوکو،
201
00:07:42,639 –> 00:07:45,280
ما باید مجموعه ای مناسب از مقادیر را داشته باشیم
202
00:07:45,280 –> 00:07:47,280
که بتوان آنها را حل کرد،
203
00:07:47,280 –> 00:07:49,280
بنابراین من این سایت شگفت انگیز به نام
204
00:07:49,280 –> 00:07:50,720
205
00:07:50,720 –> 00:07:52,879
206
00:07:52,879 –> 00:07:54,800
207
00:07:54,800 –> 00:07:58,319
sugoku را پیدا کردم. درخواستهای وارد کردن،
208
00:07:58,319 –> 00:08:00,560
بنابراین درخواست، کتابخانهای است که در پایتون
209
00:08:00,560 –> 00:08:01,840
برای
210
00:08:01,840 –> 00:08:05,520
برقراری تماسهای دریافتی و ارسال تماسها استفاده میشود،
211
00:08:05,520 –> 00:08:07,759
خوب، باید چند
212
00:08:07,759 –> 00:08:09,599
پارامتر را در اینجا اضافه
213
00:08:09,599 –> 00:08:11,360
کنم، بنابراین تماس Api را درست در
214
00:08:11,360 –> 00:08:13,360
ابتدای کد انجام میدهم. میتوان
215
00:08:13,360 –> 00:08:15,520
بعداً شبکه ما را با آن عناصر پر کرد،
216
00:08:15,520 –> 00:08:20,720
بنابراین فرض کنید پاسخ برابر است با
217
00:08:20,720 –> 00:08:24,160
درخواستها، نقطه دریافت، بنابراین ما در حال
218
00:08:24,160 –> 00:08:25,840
ارائه یک درخواست دریافت هستیم، حتی اگر
219
00:08:25,840 –> 00:08:27,919
چیزی در مورد
220
00:08:27,919 –> 00:08:30,879
apis نمیدانید، نگران نباشید، این فقط
221
00:08:30,879 –> 00:08:32,559
دو خط کد است.
222
00:08:32,559 –> 00:08:35,200
و اوه و شما فقط می توانید تصور کنید که
223
00:08:35,200 –> 00:08:37,120
ارزش های خود را از این
224
00:08:37,120 –> 00:08:41,519
سایت خاص دریافت کرده اید، بسیار خب،
225
00:08:41,519 –> 00:08:44,959
پس این لینک است و من
226
00:08:44,959 –> 00:08:48,000
فعلاً مشکل را به راحتی تنظیم می کنم
227
00:08:48,000 –> 00:08:50,480
و اکنون باید تابلو را
228
00:08:50,480 –> 00:08:51,519
از این پاسخی
229
00:08:51,519 –> 00:08:54,480
که داریم استخراج کنیم. بنابراین ما آن را در یک ذخیره می کنیم
230
00:08:54,480 –> 00:08:55,279
متغیری به نام
231
00:08:55,279 –> 00:08:58,560
grid و grid برابر است با پاسخ
232
00:08:58,560 –> 00:09:01,839
dot json و پارامتری که ما در
233
00:09:01,839 –> 00:09:02,640
234
00:09:02,640 –> 00:09:07,920
داخل این پاسخ json جستجو میکنیم تخته
235
00:09:07,920 –> 00:09:08,560
تخته
236
00:09:08,560 –> 00:09:12,000
خوب است، بنابراین این شبکه را به شبکه متغیر ما منتقل میکند،
237
00:09:12,000 –> 00:09:14,720
بنابراین بله،
238
00:09:14,720 –> 00:09:15,120
239
00:09:15,120 –> 00:09:17,600
این قسمت api است بله همین است. بنابراین،
240
00:09:17,600 –> 00:09:18,240
241
00:09:18,240 –> 00:09:21,600
ما تخته را در شبکه خود داریم،
242
00:09:21,600 –> 00:09:23,279
بنابراین از آنجایی که این
243
00:09:23,279 –> 00:09:24,800
شبکه خاص را دستکاری
244
00:09:24,800 –> 00:09:27,120
می کنیم، بنابراین کاری که می توانیم انجام دهیم این است که می توانیم یک
245
00:09:27,120 –> 00:09:28,480
متغیر دیگر
246
00:09:28,480 –> 00:09:30,240
حاوی همان شبکه داشته باشیم که ما آن را
247
00:09:30,240 –> 00:09:32,240
دستکاری نمی کنیم، بنابراین در
248
00:09:32,240 –> 00:09:34,000
مقایسه با
249
00:09:34,000 –> 00:09:36,000
بنابراین تنها هدف از ساخت این
250
00:09:36,000 –> 00:09:38,000
متغیر مقایسه است
251
00:09:38,000 –> 00:09:40,320
و دلیل اینکه من این کار را به روشی پیچیده انجام می دهم به
252
00:09:40,320 –> 00:09:42,640
غیر از
253
00:09:42,640 –> 00:09:45,200
اختصاص دادن یک متغیر به دیگری این است
254
00:09:45,200 –> 00:09:47,120
که در پایتون اگر این کار را
255
00:09:47,120 –> 00:09:49,279
برای لیست ها انجام دهم، فقط یک مرجع ایجاد می کند.
256
00:09:49,279 –> 00:09:50,480
و
257
00:09:50,480 –> 00:09:53,440
اگر من هر یک از دو
258
00:09:53,440 –> 00:09:54,959
متغیر را دستکاری کنم، همان مقدار خاص
259
00:09:54,959 –> 00:09:56,080
دستکاری می شود،
260
00:09:56,080 –> 00:09:58,640
بنابراین من دو نسخه دقیق
261
00:09:58,640 –> 00:10:00,399
نخواهم داشت، بلکه دو متغیر
262
00:10:00,399 –> 00:10:02,320
به یک مقدار اشاره خواهم کرد، بنابراین
263
00:10:02,320 –> 00:10:04,000
نمی توانم دستکاری کنم. یک مقدار را
264
00:10:04,000 –> 00:10:06,160
بدون تأثیر بر دیگری خوب
265
00:10:06,160 –> 00:10:08,800
است، به همین دلیل است که من باید آن را به این ترتیب ایجاد کنم،
266
00:10:08,800 –> 00:10:11,200
بنابراین ما اکنون یک شبکه داریم و اکنون
267
00:10:11,200 –> 00:10:13,279
باید آن مقادیر را در رابط کاربری خود اضافه کنیم،
268
00:10:13,279 –> 00:10:14,560
269
00:10:14,560 –> 00:10:17,440
خوب بله، می توانید آن را gui یا gui بنامید.
270
00:10:17,440 –> 00:10:19,760
271
00:10:19,760 –> 00:10:24,399
برای انجام این کار، یک فونت اضافه می کنیم
272
00:10:24,399 –> 00:10:27,680
و به منظور پر کردن سودوکو
273
00:10:27,680 –> 00:10:28,959
، یک
274
00:10:28,959 –> 00:10:32,079
حلقه for در داخل یک حلقه for خواهم داشت، بنابراین برای i در
275
00:10:32,079 –> 00:10:35,519
محدوده 0
276
00:10:35,519 –> 00:10:39,040
تا طول شبکه طول شبکه هر um
277
00:10:39,040 –> 00:10:41,760
هر آرایه خاصی می توانید این را بردارید.
278
00:10:41,760 –> 00:10:42,240
279
00:10:42,240 –> 00:10:45,680
آرایه 2 بعدی، بنابراین من شبکه 0 را برای
280
00:10:45,680 –> 00:10:49,040
j در
281
00:10:50,959 –> 00:10:53,760
شبکه محدوده 0
282
00:10:56,480 –> 00:10:59,360
می گیرم، بنابراین این حلقه های ما هستند و ما
283
00:10:59,360 –> 00:11:00,000
بررسی می کنیم که آیا
284
00:11:00,000 –> 00:11:03,519
مقدار شبکه یک عدد معتبر است، بنابراین
285
00:11:03,519 –> 00:11:06,560
اگر بین uh یک و 9 باشد،
286
00:11:06,560 –> 00:11:09,040
فقط ما خروجی می دهیم آن را روی صفحه سمت راست،
287
00:11:09,040 –> 00:11:11,360
بنابراین اگر بین ام صفر و ده
288
00:11:11,360 –> 00:11:14,240
باشد شامل دریایی است، بنابراین
289
00:11:14,240 –> 00:11:16,560
اگر اینطور باشد کاری که ما انجام
290
00:11:16,560 –> 00:11:18,399
می دهیم این است که متغیری به نام مقدار
291
00:11:18,399 –> 00:11:21,600
خواهیم داشت و نقطه فونت من
292
00:11:21,760 –> 00:11:24,720
رندر می شود
293
00:11:25,040 –> 00:11:28,480
و بنابراین باید برای رندر کردن متنی که
294
00:11:28,480 –> 00:11:29,360
میخواهید اضافه کنید
295
00:11:29,360 –> 00:11:31,040
و سپس آن را روی صفحه ترکیب میکنیم،
296
00:11:31,040 –> 00:11:33,440
بنابراین
297
00:11:33,440 –> 00:11:37,040
str زیرا ما آن را در رشته
298
00:11:37,040 –> 00:11:42,320
و شبکه ij میخواهیم
299
00:11:42,320 –> 00:11:44,240
بسیار خوب، پس این نسخه رشته ای
300
00:11:44,240 –> 00:11:45,680
شبکه ما است
301
00:11:45,680 –> 00:11:48,399
و برای پارامترهای دیگر ما
302
00:11:48,399 –> 00:11:51,440
true را مشخص می
303
00:11:52,320 –> 00:11:56,560
کنیم و باید یک رنگ برای
304
00:11:56,560 –> 00:11:59,120
ah برای این برای این عناصر داشته باشیم، بنابراین
305
00:11:59,120 –> 00:12:00,320
ما یک متغیر
306
00:12:00,320 –> 00:12:03,440
uh را در اینجا می سازیم و تماس می گیریم
307
00:12:03,440 –> 00:12:06,800
این یک عنصر شبکه اصلی
308
00:12:06,800 –> 00:12:10,560
یا چیزی شبیه به آن است، بنابراین بیایید بگوییم
309
00:12:10,560 –> 00:12:15,680
310
00:12:16,560 –> 00:12:19,600
رنگ عنصر شبکه اصلی بله، من نام بسیار خلاقانه ای می دانم
311
00:12:19,600 –> 00:12:25,519
و ما مشخص می کنیم که مثلاً 52 کاما
312
00:12:25,519 –> 00:12:28,639
31 کاما 151 بنابراین این رنگ
313
00:12:28,639 –> 00:12:31,839
عناصر شبکه ما خواهد بود پس من من فقط
314
00:12:31,839 –> 00:12:33,360
این کار را انجام می دهم
315
00:12:33,360 –> 00:12:34,880
تا عناصری را که
316
00:12:34,880 –> 00:12:37,120
از ابتدا وجود دارند از عناصری که اضافه می کنیم، جدا
317
00:12:37,120 –> 00:12:38,000
کنم،
318
00:12:38,000 –> 00:12:40,240
بنابراین فقط به عنوان تمایز، این را اضافه می کنم
319
00:12:40,240 –> 00:12:41,040
شما فقط می
320
00:12:41,040 –> 00:12:44,560
توانید آن را سیاه نگه دارید، هیچ مشکلی در آن وجود ندارد
321
00:12:44,560 –> 00:12:48,399
و بسیار خوب است. آن را در اینجا کپی می کنم
322
00:12:48,399 –> 00:12:51,440
و بله، بنابراین این ارزش من است و اگر به خاطر دارید، باید
323
00:12:51,440 –> 00:12:53,839
آن را روی صفحه نمایش
324
00:12:53,839 –> 00:12:56,800
دهم، اگر به یاد دارید، هر زمان که
325
00:12:56,800 –> 00:12:57,839
متنی را به صفحه ای
326
00:12:57,839 –> 00:13:00,320
در بازی pi اضافه می کنیم، بنابراین کاری که می کنیم این است که ابتدا
327
00:13:00,320 –> 00:13:00,959
آن
328
00:13:00,959 –> 00:13:04,079
متن خاص را ارائه کنیم و سپس ما آن را
329
00:13:04,079 –> 00:13:04,720
330
00:13:04,720 –> 00:13:06,880
به صفحه نمایش اضافه می کنیم و با عملکرد blit pyga به صفحه اضافه می کنیم
331
00:13:06,880 –> 00:13:08,800
332
00:13:08,800 –> 00:13:12,560
خوب است، بنابراین وقتی که dot
333
00:13:12,560 –> 00:13:15,680
blit و مقداری که ما در حال ضربه زدن هستیم و
334
00:13:15,680 –> 00:13:17,120
پارامتر دوم جایی است که ما آن را
335
00:13:17,120 –> 00:13:18,639
خونریزی می کنیم، خوب است،
336
00:13:18,639 –> 00:13:21,600
بنابراین این کمی مشکل است، بنابراین باید
337
00:13:21,600 –> 00:13:23,519
مختصات را درست مشخص کنیم
338
00:13:23,519 –> 00:13:26,880
و i و j چیزی جز شاخص ها
339
00:13:26,880 –> 00:13:28,480
نیستند و حتی یک عدد نیستند. این شاخص ها شماره جعبه شبکه هستند،
340
00:13:28,480 –> 00:13:30,959
بنابراین ما باید
341
00:13:30,959 –> 00:13:32,079
شماره جعبه شبکه را در
342
00:13:32,079 –> 00:13:34,399
برخی از پارامترها ضرب کنیم و اگر به یاد بیاورید
343
00:13:34,399 –> 00:13:36,959
عرض هر بلوک خاص 50 است
344
00:13:36,959 –> 00:13:37,839
درست است،
345
00:13:37,839 –> 00:13:40,880
بنابراین می توانم i را در 50
346
00:13:40,880 –> 00:13:44,160
و j را در 50 ضرب کنم تا آن مقادیر uh را بدست آوریم.
347
00:13:44,160 –> 00:13:46,639
جایی که باید این مقادیر را با هم ترکیب کنم
348
00:13:46,639 –> 00:13:48,320
خوب است
349
00:13:48,320 –> 00:13:50,320
و از آنجایی که این مقادیر صفر
350
00:13:50,320 –> 00:13:52,320
هستند، از صفر شروع میشوند، باید
351
00:13:52,320 –> 00:13:55,199
یک بعلاوه یک را در آنجا اضافه کنم، بسیار خوب، بنابراین
352
00:13:55,199 –> 00:13:55,519
353
00:13:55,519 –> 00:13:59,199
j به اضافه یک خواهم داشت، بنابراین به y i خواهم رسید. m
354
00:13:59,199 –> 00:14:01,279
به جای i اینجا j
355
00:14:01,279 –> 00:14:03,839
را اضافه میکنم، پس در عرض یک ثانیه به آن میرسم، بنابراین
356
00:14:03,839 –> 00:14:05,120
بیایید یک
357
00:14:05,120 –> 00:14:08,480
بافر 15 داشته باشیم، بنابراین این مقادیری هستند
358
00:14:08,480 –> 00:14:08,880
359
00:14:08,880 –> 00:14:11,600
که با آزمون و خطا پیدا کردم، من
360
00:14:11,600 –> 00:14:17,279
همان مقدار را برای i دارم،
361
00:14:17,279 –> 00:14:21,040
بله، پس اکنون بگذارید فقط
362
00:14:21,040 –> 00:14:23,839
آنها را کپسوله کنم، بنابراین اکنون سؤال این است
363
00:14:23,839 –> 00:14:25,680
که چرا اینجا یک j داریم و چرا
364
00:14:25,680 –> 00:14:27,040
یک i اینجا داریم
365
00:14:27,040 –> 00:14:29,279
ok ay بنابراین برای انجام این کار باید به
366
00:14:29,279 –> 00:14:30,079
شبکهها نگاه کنید
367
00:14:30,079 –> 00:14:34,480
خوب است، بنابراین این شبکه را خوب در نظر بگیرید،
368
00:14:34,480 –> 00:14:36,399
بنابراین در اینجا میتوانید ببینید که اینها ردیفهای جداگانه هستند،
369
00:14:36,399 –> 00:14:38,320
بنابراین این
370
00:14:38,320 –> 00:14:40,079
شاخص صفر i
371
00:14:40,079 –> 00:14:42,959
و این شاخص چهارم یا
372
00:14:42,959 –> 00:14:44,160
سوم خواهد بود. ایندکس j
373
00:14:44,160 –> 00:14:46,079
okay بنابراین به این صورت است که شما به این مقدار خاص دسترسی پیدا خواهید کرد،
374
00:14:46,079 –> 00:14:47,600
375
00:14:47,600 –> 00:14:50,720
بنابراین اکنون مشکل اینجاست که
376
00:14:50,720 –> 00:14:53,600
اگر این مقدار را ببینید، این مقدار دومی
377
00:14:53,600 –> 00:14:55,040
است که گفتیم،
378
00:14:55,040 –> 00:14:58,720
این مقدار افست از um
379
00:14:58,720 –> 00:15:01,519
x از محور y به سمت راست است. بنابراین این
380
00:15:01,519 –> 00:15:02,399
0
381
00:15:02,399 –> 00:15:05,760
خاص در فاصله 3 از
382
00:15:05,760 –> 00:15:08,560
محور y است، بنابراین این 0 خاص
383
00:15:08,560 –> 00:15:10,240
باید با مختصات x نشان داده شود،
384
00:15:10,240 –> 00:15:13,360
اما در اینجا با j okay نشان داده می شود،
385
00:15:13,360 –> 00:15:15,680
زیرا j عنصر حلقه داخلی
386
00:15:15,680 –> 00:15:18,000
ما در متغیر حلقه
387
00:15:18,000 –> 00:15:21,199
است. چرا j اساساً این قسمت را پیمایش کنید
388
00:15:21,199 –> 00:15:21,600
389
00:15:21,600 –> 00:15:26,240
خوب است و من به صورت عمودی تراورس می
390
00:15:26,240 –> 00:15:28,399
کنیم، اما وقتی به پنجره بازی pi نگاه می کنیم،
391
00:15:28,399 –> 00:15:30,720
مختصات x در واقع
392
00:15:30,720 –> 00:15:33,040
افقی است و مختصات y عمودی
393
00:15:33,040 –> 00:15:34,480
است، به همین دلیل است که من باید این
394
00:15:34,480 –> 00:15:36,639
مقادیر را برگردانم، بنابراین امیدوارم که اینطور باشد. فقط
395
00:15:36,639 –> 00:15:38,320
یک تمایز ساده را روشن کنید عمل کنید
396
00:15:38,320 –> 00:15:40,880
بنابراین نکته ساده اینجاست که
397
00:15:40,880 –> 00:15:42,480
مختصات x باید افقی باشد و
398
00:15:42,480 –> 00:15:44,240
مختصات y باید عمودی باشد،
399
00:15:44,240 –> 00:15:46,560
اما وقتی در داخل حلقه عبور
400
00:15:46,560 –> 00:15:47,360
401
00:15:47,360 –> 00:15:50,079
می کنیم برعکس است که با این شکل
402
00:15:50,079 –> 00:15:51,279
می توانید ببینید که
403
00:15:51,279 –> 00:15:53,680
مقادیر i عمودی و j هستند.
404
00:15:53,680 –> 00:15:54,959
مقادیر افقی هستند،
405
00:15:54,959 –> 00:15:58,079
بنابراین ما باید j را به مقادیر x و
406
00:15:58,079 –> 00:16:01,120
i را به مقادیر y نگاشت کنیم، بله
407
00:16:01,120 –> 00:16:03,040
، بنابراین ما این مقادیر را
408
00:16:03,040 –> 00:16:05,040
در اینجا حذف می کنیم و من
409
00:16:05,040 –> 00:16:07,040
فقط یک به روز رسانی نقطه نمایشی خواهم داشت و سپس خواهیم
410
00:16:07,040 –> 00:16:10,399
دید که آیا داریم خطاها
411
00:16:12,320 –> 00:16:14,240
بسیار خوب است، بنابراین این پنجره ای است که شما دریافت کردید،
412
00:16:14,240 –> 00:16:15,360
زیرا می بینید که
413
00:16:15,360 –> 00:16:18,320
افست در y کمی بیشتر از حد لازم است،
414
00:16:18,320 –> 00:16:22,560
بنابراین من آن افست را حذف می کنم و دوباره امتحان می کنم
415
00:16:22,560 –> 00:16:24,560
بسیار خوب، بنابراین بیایید این را حذف کنیم و ببینیم چه
416
00:16:24,560 –> 00:16:26,639
اتفاقی می افتد، فکر می کنم اکنون باید به
417
00:16:26,639 –> 00:16:30,320
خوبی اجرا شود بله، همانطور که می بینید، بنابراین این همان
418
00:16:30,320 –> 00:16:31,360
419
00:16:31,360 –> 00:16:33,680
طرح بندی است که ما در حال برنامه ریزی برای دریافت آن هستیم
420
00:16:33,680 –> 00:16:35,600
و جهت گیری مناسب به نظر می رسد اگر بخواهید
421
00:16:35,600 –> 00:16:38,240
می توانید آن را بیشتر دستکاری کنید،
422
00:16:38,240 –> 00:16:40,480
بنابراین این پنجره اصلی بازی ما است
423
00:16:40,480 –> 00:16:42,639
و اکنون فقط باید درج را اضافه کنیم
424
00:16:42,639 –> 00:16:44,079
425
00:16:44,079 –> 00:16:46,399
قابلیتی که کاربر اساساً می تواند آن را وارد کند آنچه را که
426
00:16:46,399 –> 00:16:47,120
او می خواهد
427
00:16:47,120 –> 00:16:49,920
در یک موقعیت خوب است، بنابراین اساساً اگر من
428
00:16:49,920 –> 00:16:51,759
می خواهم اینجا
429
00:16:51,759 –> 00:16:54,800
را وارد کنم، بنابراین باید بتوانم روی این
430
00:16:54,800 –> 00:16:56,639
بلوک شبکه خاص کلیک کنم
431
00:16:56,639 –> 00:16:59,920
و سپس اگر عدد پنج را فشار دهم،
432
00:16:59,920 –> 00:17:02,079
عدد پنج باید در اینجا نشان داده شود،
433
00:17:02,079 –> 00:17:03,440
بنابراین عملکرد این است که
434
00:17:03,440 –> 00:17:04,079
باقی مانده
435
00:17:04,079 –> 00:17:07,119
و بنابراین ما آن را اضافه می کنیم،
436
00:17:07,119 –> 00:17:10,400
بنابراین بیایید تابعی به نام
437
00:17:10,400 –> 00:17:13,280
um insert
438
00:17:14,640 –> 00:17:17,119
okay داشته باشیم و پنجره
439
00:17:17,119 –> 00:17:18,559
و موقعیت
440
00:17:18,559 –> 00:17:20,000
okay را وارد کنیم، بنابراین پنجره ای که روی آن ترسیم می کنیم
441
00:17:20,000 –> 00:17:22,079
و موقعیت
442
00:17:22,079 –> 00:17:25,280
بلوک اوکی است، بنابراین ابتدا
443
00:17:25,280 –> 00:17:28,559
اجازه دهید. فونت من چون به
444
00:17:28,559 –> 00:17:32,000
فونت نیاز خواهیم داشت
445
00:17:32,000 –> 00:17:35,679
بیایید حلقه را مستقیماً اجرا کنیم،
446
00:17:39,280 –> 00:17:41,200
بنابراین تصور کنید که
447
00:17:41,200 –> 00:17:42,400
هر زمان که کلیکی وجود داشته باشد این مورد فراخوانی
448
00:17:42,400 –> 00:17:44,720
می شود، بنابراین هر زمان که کلیکی وجود دارد ما
449
00:17:44,720 –> 00:17:45,600
450
00:17:45,600 –> 00:17:50,160
منتظر هر عدد ورودی خواهیم بود، به همین دلیل است که
451
00:17:50,160 –> 00:17:53,200
به رویدادها نگاه می کنیم. باز هم برای رویداد
452
00:17:53,200 –> 00:17:57,679
در بازی pi dot
453
00:17:58,160 –> 00:18:01,679
event dot get
454
00:18:01,679 –> 00:18:03,679
بنابراین ما به دنبال رویداد هستیم
455
00:18:03,679 –> 00:18:07,840
بنابراین اگر شخص در حال ترک
456
00:18:08,640 –> 00:18:11,919
است ابتدا مستقیماً از آن خارج میشویم، بنابراین اگر حتی
457
00:18:11,919 –> 00:18:15,280
تایپ کنید با نقطه بازی برابر شود،
458
00:18:15,280 –> 00:18:17,600
459
00:18:19,120 –> 00:18:22,000
ما برمیگردیم
460
00:18:22,799 –> 00:18:26,080
و اگر رویداد
461
00:18:26,080 –> 00:18:28,720
پس اگر کلیدی باشد او ما
462
00:18:28,720 –> 00:18:29,760
سه مورد خواهیم داشت،
463
00:18:29,760 –> 00:18:32,240
بنابراین یکی این است که زمانی که کاربر سعی می کند فایل اصلی را ویرایش کند
464
00:18:32,240 –> 00:18:35,039
465
00:18:35,360 –> 00:18:37,679
، کاربر نباید قادر به ویرایش
466
00:18:37,679 –> 00:18:38,880
مقادیری که
467
00:18:38,880 –> 00:18:41,280
توسط api به ما داده شده است را نداشته باشد، زیرا اگر
468
00:18:41,280 –> 00:18:42,559
کاربر بتواند آن را
469
00:18:42,559 –> 00:18:44,320
ویرایش کند، چه چیزی است. نقطه
470
00:18:44,320 –> 00:18:46,480
سودوکو چون من می توانم هر مقداری را در
471
00:18:46,480 –> 00:18:47,120
آنجا داشته باشم
472
00:18:47,120 –> 00:18:49,440
به طوری که اسکلت باید ثابت بماند،
473
00:18:49,440 –> 00:18:50,799
بنابراین اولویت اول
474
00:18:50,799 –> 00:18:52,880
باید اطمینان حاصل شود که
475
00:18:52,880 –> 00:18:54,880
فایل اصلی تغییر نمی کند
476
00:18:54,880 –> 00:18:57,679
و به همین دلیل است که ما متغیر شبکه اصلی را در
477
00:18:57,679 –> 00:18:58,400
478
00:18:58,400 –> 00:19:01,600
بالای صفحه داشتیم، بنابراین آن می آید. در
479
00:19:01,600 –> 00:19:04,320
اینجا مفید است و عملکرد دوم
480
00:19:04,320 –> 00:19:05,440
ویرایش
481
00:19:05,440 –> 00:19:08,400
خوب است، بنابراین اگر کاربر مقداری را تغییر داده
482
00:19:08,400 –> 00:19:08,880
483
00:19:08,880 –> 00:19:11,760
مقداری