در این مطلب، ویدئو چگونه 2048 را در 20 دقیقه بسازیم (آموزش پایتون و Tkinter) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:20
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:01,740
سلام به همه، Kaelyn از
2
00:00:01,740 –> 00:00:04,319
کایت تکمیل خودکار هوش مصنوعی برای پایتون و این
3
00:00:04,319 –> 00:00:06,150
ویدئو نحوه ساخت
4
00:00:06,150 –> 00:00:11,550
بازی 2048 با استفاده از پایتون را توضیح می دهد، فکر می کنم همه ما
5
00:00:11,550 –> 00:00:14,009
به یاد داریم در سال 2014 زمانی که این بازی
6
00:00:14,009 –> 00:00:16,770
ساعت ها روز و حتی هفته ها از زندگی
7
00:00:16,770 –> 00:00:18,869
و بهره وری ما را خورد.
8
00:00:18,869 –> 00:00:21,090
بازی بسیار ساده بود، اما
9
00:00:21,090 –> 00:00:24,119
برنده شدن در 2048 بسیار رضایت بخش بود، به طرز مسخره ای اعتیادآور بود
10
00:00:24,119 –> 00:00:26,010
و اکنون می توانید یاد بگیرید که چگونه آن را
11
00:00:26,010 –> 00:00:28,920
از ابتدا در پایتون با استفاده از TK inter
12
00:00:28,920 –> 00:00:30,810
برای رابط کاربری گرافیکی یا رابط کاربری گرافیکی بسازید
13
00:00:30,810 –> 00:00:33,329
و اگر با TK آشنایی ندارید، آن را وارد کنید.
14
00:00:33,329 –> 00:00:36,660
پایتون به جعبه ابزار TK متصل
15
00:00:36,660 –> 00:00:38,579
می شود که در بسیاری از
16
00:00:38,579 –> 00:00:41,040
زبان های برنامه نویسی برای ساختن گوی ها استفاده می شود، وقتی ما
17
00:00:41,040 –> 00:00:43,500
برنامه نویسی را تمام کردیم، می توانید 2048 را
18
00:00:43,500 –> 00:00:45,960
درست مانند برنامه تلفن همراه بازی کنید،
19
00:00:45,960 –> 00:00:47,640
اما باید با استفاده از فلش ها حرکت کنید.
20
00:00:47,640 –> 00:00:49,500
به جای کشیدن انگشت روی صفحه کلید،
21
00:00:49,500 –> 00:00:51,600
تمام کدهای خود را
22
00:00:51,600 –> 00:00:54,270
برای اجرای بازی در یک فایل واحد به نام
23
00:00:54,270 –> 00:00:57,420
2048 dot pi می نویسیم، اما یک
24
00:00:57,420 –> 00:00:59,699
فایل تکمیلی به نام رنگ ها نیز خواهیم داشت که PI
25
00:00:59,699 –> 00:01:02,309
این همه consta ما را نگه می دارد. nts
26
00:01:02,309 –> 00:01:04,140
برای رنگهایی که در رابط کاربری گرافیکی ما نمایش داده میشوند
27
00:01:04,140 –> 00:01:06,810
، پیوندی به پروژه تکمیلشده
28
00:01:06,810 –> 00:01:08,729
در توضیحات این ویدیو آمده است، بنابراین با خیال
29
00:01:08,729 –> 00:01:10,260
راحت آن را بررسی کنید و ادامه
30
00:01:10,260 –> 00:01:13,080
دهید، حالا بیایید شروع کنیم، بنابراین بیایید
31
00:01:13,080 –> 00:01:18,780
با وارد کردن TK enter و سپس
32
00:01:18,780 –> 00:01:20,670
ما. یک کلاس بازی ایجاد
33
00:01:20,670 –> 00:01:23,280
میکنیم که از بازی ویجت میانفریم TK
34
00:01:23,280 –> 00:01:25,830
به ارث میرسد، جایی که کل بازی
35
00:01:25,830 –> 00:01:28,500
اجرا میشود و رابط کاربری گرافیکی مدیریت میشود و
36
00:01:28,500 –> 00:01:29,970
سازنده ما سازنده فریم را خودش فراخوانی میکند
37
00:01:29,970 –> 00:01:32,310
تا بازی را
38
00:01:32,310 –> 00:01:34,740
بهعنوان ویجت فریم بسازد و ما grid را فراخوانی میکنیم. برای
39
00:01:34,740 –> 00:01:36,900
اینکه به ما اجازه دهیم تا شبکه بازی خود را ایجاد کنیم
40
00:01:36,900 –> 00:01:41,520
و عنوان پنجره را قبل از
41
00:01:41,520 –> 00:01:43,320
شروع به رابط کاربری گرافیکی روی 2048 تنظیم کنیم، اجازه دهید ابتدا به
42
00:01:43,320 –> 00:01:45,329
رنگ های فایل نگاه کنیم که pi که
43
00:01:45,329 –> 00:01:46,950
قبلاً برای نگه داشتن پالت رنگ بازی
44
00:01:46,950 –> 00:01:49,259
و انتخاب فونت نوشته ام، بهترین کار را انجام داد.
45
00:01:49,259 –> 00:01:51,450
برای مطابقت با هر رنگ و
46
00:01:51,450 –> 00:01:54,000
فونت با بازی اصلی 2048، اما شما می
47
00:01:54,000 –> 00:01:55,979
توانید قاضی آن باشید، بنابراین بیایید به
48
00:01:55,979 –> 00:01:58,200
فایل اصلی خود بازگردیم و مطمئن شویم که
49
00:01:58,200 –> 00:02:03,600
رنگ های pi را وارد می کنیم، بنابراین اکنون ما در واقع شروع به
50
00:02:03,600 –> 00:02:05,369
ایجاد طرح کلی رابط کاربری گرافیکی خود می کنیم که
51
00:02:05,369 –> 00:02:08,580
یک 4 توسط 4 شبکه بیایید یک فریم
52
00:02:08,580 –> 00:02:11,930
به نام شبکه اصلی بسازیم که والد آن خودش است
53
00:02:11,930 –> 00:02:13,519
و رنگ پس زمینه را روی رنگ
54
00:02:13,519 –> 00:02:17,209
شبکه قرار می دهیم از color spy یک
55
00:02:17,209 –> 00:02:19,310
مرز سه پیکسلی تعیین می کنیم و هم
56
00:02:19,310 –> 00:02:26,060
عرض و هم ارتفاع را 600 می کنیم سپس
57
00:02:26,060 –> 00:02:28,400
شبکه را روی آن صدا می زنیم و به آن می دهیم.
58
00:02:28,400 –> 00:02:30,859
با نوشتن پد
59
00:02:30,859 –> 00:02:36,530
، y برابر با 100 کاما صفر است.
60
00:02:36,530 –> 00:02:38,389
61
00:02:38,389 –> 00:02:40,879
62
00:02:40,879 –> 00:02:42,680
63
00:02:42,680 –> 00:02:44,930
کمک در مورد
64
00:02:44,930 –> 00:02:48,730
آنچه که در فراخوانی های تابع خود اضافه کنیم،
65
00:02:49,599 –> 00:02:52,430
اجازه دهید یک شبکه چهار در چهار و
66
00:02:52,430 –> 00:02:53,569
یک تابع جدید به نام
67
00:02:53,569 –> 00:02:56,810
make it gooey در داخل ایجاد کنیم، اجازه دهید
68
00:02:56,810 –> 00:02:59,419
ابتدا متغیری به نام سلول ها ایجاد کنیم که یک لیست 2 بعدی است
69
00:02:59,419 –> 00:03:01,609
که اطلاعات موجود
70
00:03:01,609 –> 00:03:04,250
در هر سلول شبکه را در خود نگه می دارد. سپس بیایید
71
00:03:04,250 –> 00:03:06,980
یک حلقه تو در تو ایجاد کنیم تا ردیف به ردیف به سلول ها اضافه شود
72
00:03:06,980 –> 00:03:12,049
برای هر سلول یک قاب خود ایجاد می کند
73
00:03:12,049 –> 00:03:14,299
که از شبکه اصلی به ارث می رسد
74
00:03:14,299 –> 00:03:16,280
و رنگ پس زمینه را روی
75
00:03:16,280 –> 00:03:19,040
رنگ سلول خالی با عرض 150
76
00:03:19,040 –> 00:03:22,909
و ارتفاع 1 قرار می دهیم. 50 سپس
77
00:03:22,909 –> 00:03:25,519
شبکه را در هر قاب سلول با ردیف I
78
00:03:25,519 –> 00:03:28,159
و ستون به عنوان J فراخوانی می کنیم و
79
00:03:28,159 –> 00:03:30,019
در هر طرف پنج پیکسل بالشتک اضافه می کنیم که
80
00:03:30,019 –> 00:03:31,699
اجازه می دهد خطوط شبکه
81
00:03:31,699 –> 00:03:34,310
بین سلول ها ظاهر شوند برای هر سلول
82
00:03:34,310 –> 00:03:36,500
همچنین یک کلید ایجاد می شود. K به ویجت برچسب که
83
00:03:36,500 –> 00:03:38,060
برای نمایش مقدار عدد
84
00:03:38,060 –> 00:03:40,669
سلول استفاده خواهد شد، شبکه اصلی را به آن منتقل میکند
85
00:03:40,669 –> 00:03:42,530
و پسزمینه را روی سلول
86
00:03:42,530 –> 00:03:44,959
خالی قرار میدهد، هر یک از این سلولها را
87
00:03:44,959 –> 00:03:48,229
نمایش میدهد و دوباره شبکه را با ردیفهای I
88
00:03:48,229 –> 00:03:51,199
و ستون به صورت J فراخوانی میکند. یک
89
00:03:51,199 –> 00:03:53,540
فرهنگ لغت به نام داده سلولی ایجاد کنید تا
90
00:03:53,540 –> 00:03:55,939
دادههای این ویجتها را ذخیره کنید و قاب سلولی
91
00:03:55,939 –> 00:03:58,430
را به قاب کلیدی و
92
00:03:58,430 –> 00:04:01,040
شماره سلولی را به یک عدد کلیدی
93
00:04:01,040 –> 00:04:03,139
اضافه میکند و سپس هر داده سلولی را به ردیف اضافه میکند و
94
00:04:03,139 –> 00:04:07,040
هر سلول جاده را اکنون باید امتیاز خود را ایجاد کنیم.
95
00:04:07,040 –> 00:04:09,229
هدر، پس بیایید یک قاب دیگر
96
00:04:09,229 –> 00:04:11,359
به نام فریم امتیاز بسازیم و آن
97
00:04:11,359 –> 00:04:13,040
را در مرکز بالای پنجره قرار دهیم با
98
00:04:13,040 –> 00:04:16,608
فراخوانی مکان با rel X 0.5 Y است
99
00:04:16,608 –> 00:04:19,699
45 برای برخی از لایه های بالا و لنگر به عنوان
100
00:04:19,699 –> 00:04:22,520
مرکز برای توجیه آن در مرکز، سپس
101
00:04:22,520 –> 00:04:24,380
باید یک برچسب که می گوید s اضافه کنید هسته
102
00:04:24,380 –> 00:04:25,850
با فونت تعریف شده
103
00:04:25,850 –> 00:04:28,640
ما همچنین ردیف شبکه را برابر با صفر در
104
00:04:28,640 –> 00:04:31,340
این برچسب می نامیم تا در بالای صفحه قرار گیرد، اکنون
105
00:04:31,340 –> 00:04:33,740
باید امتیاز واقعی را نمایش دهیم،
106
00:04:33,740 –> 00:04:35,360
یک برچسب دیگر به نام score labels
107
00:04:35,360 –> 00:04:37,610
ایجاد می کنیم و متن را در ابتدا صفر می کنیم و
108
00:04:37,610 –> 00:04:40,910
فونت را برای امتیاز مزرعه تنظیم می کنیم.
109
00:04:40,910 –> 00:04:43,790
فقط باید ردیف شبکه را برابر با یک فراخوانی کنید
110
00:04:43,790 –> 00:04:45,680
تا درست زیر برچسب امتیاز قرار دهید
111
00:04:45,680 –> 00:04:48,230
تا این برای ساختن رابط کاربری گرافیکی باشد،
112
00:04:48,230 –> 00:04:50,060
فقط مطمئن شویم که آن را دوباره در سازنده فراخوانی می کنیم،
113
00:04:50,060 –> 00:04:52,340
بیایید برنامه خود را
114
00:04:52,340 –> 00:04:54,200
به سرعت اجرا کنیم تا ایده ای از
115
00:04:54,200 –> 00:04:56,480
ظاهر رابط کاربری پیدا کنیم. مانند این مرحله برای انجام این کار،
116
00:04:56,480 –> 00:04:57,980
ابتدا باید چند کار سریع انجام دهیم،
117
00:04:57,980 –> 00:05:00,410
البته ابتدا باید بازی را فراخوانی کنیم
118
00:05:00,410 –> 00:05:03,530
تا نمونه ای از آن اجرا شود، سپس باید
119
00:05:03,530 –> 00:05:05,330
به سازنده خود برگردیم و
120
00:05:05,330 –> 00:05:07,820
حلقه اصلی self dot را فراخوانی کنیم تا پنجره GUI
121
00:05:07,820 –> 00:05:10,190
اکنون به طور مداوم در حال اجرا است،
122
00:05:10,190 –> 00:05:11,810
میتوانیم به ترمینال برویم و رابط کاربری گرافیکی خود را راهاندازی کنیم،
123
00:05:11,810 –> 00:05:16,130
بیایید یک بازی شروع تابع بنویسیم
124
00:05:16,130 –> 00:05:17,810
که ماتریس چهار در چهار
125
00:05:17,810 –> 00:05:20,360
یا یک لیست 2 بعدی ایجاد میکند و
126
00:05:20,360 –> 00:05:22,070
تمام مقادیر نشاندادهشده روی برد را در هر
127
00:05:22,070 –> 00:05:24,950
نوبتی که ابتدا مقداردهی اولیه میکنیم نگه میدارد. ماتریس با
128
00:05:24,950 –> 00:05:30,740
تمام صفرها، سپس باید به طور تصادفی
129
00:05:30,740 –> 00:05:32,870
دو دو را در ماتریس قرار دهیم،
130
00:05:32,870 –> 00:05:36,070
بنابراین ابتدا کتابخانه تصادفی را وارد می
131
00:05:36,070 –> 00:05:38,870
کنیم، سپس به صورت تصادفی یک فهرست سطر و
132
00:05:38,870 –> 00:05:40,940
ستون را برای درج یک دو در
133
00:05:40,940 –> 00:05:43,970
ماتریس انتخاب می کنیم، وقتی شروع به تایپ کردن در اینجا کردیم، می
134
00:05:43,970 –> 00:05:45,080
بینیم که کیت نشان میدهد که
135
00:05:45,080 –> 00:05:49,760
اجرای تکمیل خودکار برای ما اجرا میشود،
136
00:05:49,760 –> 00:05:51,530
همچنین باید این را در رابط کاربری گرافیکی
137
00:05:51,530 –> 00:05:54,230
نیز نمایش دهیم که با ویرایش
138
00:05:54,230 –> 00:05:56,720
کادر سلول و شماره سلول انجام میدهیم به یاد داشته باشید
139
00:05:56,720 –> 00:05:58,250
که این اطلاعات را در یک
140
00:05:58,250 –> 00:06:00,440
فرهنگ لغت ذخیره میکنیم، بنابراین ابتدا ایندکس را در
141
00:06:00,440 –> 00:06:02,720
فریم قرار دهید و پیکربندی را فراخوانی کنید تا
142
00:06:02,720 –> 00:06:04,640
رنگ پسزمینه آن را روی رنگ سلول خاص خود تنظیم کنیم
143
00:06:04,640 –> 00:06:07,760
– سپس به عدد ایندکس میکنیم
144
00:06:07,760 –> 00:06:10,100
و فونت و متن رنگ فونت رنگ پسزمینه را پیکربندی
145
00:06:10,100 –> 00:06:13,370
میکنیم – یک بار دیگر این کار را انجام
146
00:06:13,370 –> 00:06:15,230
میدهیم تا اطمینان حاصل کنیم که رنگ دیگری را انتخاب میکنیم.
147
00:06:15,230 –> 00:06:22,130
سلول در انتهای این
148
00:06:22,130 –> 00:06:23,570
تابع متغیری به نام score ایجاد می کند
149
00:06:23,570 –> 00:06:25,370
تا امتیاز بازیکنان
150
00:06:25,370 –> 00:06:27,620
را در طول بازی پیگیری کند و آن را روی
151
00:06:27,620 –> 00:06:29,660
صفر قرار می دهیم این
152
00:06:29,660 –> 00:06:31,610
حالت اولیه بازی خواهد بود، بنابراین فراموش نکنیم که
153
00:06:31,610 –> 00:06:35,800
شروع بازی را فراخوانی کنیم. که در سازنده
154
00:06:36,820 –> 00:06:38,600
قبل از اینکه وارد
155
00:06:38,600 –> 00:06:40,550
عملکرد اصلی بازی شویم، اجازه دهید کمی
156
00:06:40,550 –> 00:06:42,290
مکث کنیم تا بتوانم به شما بگویم که چگونه
157
00:06:42,290 –> 00:06:44,150
می توانید با
158
00:06:44,150 –> 00:06:45,740
کمک دستیار کدنویسی هوش مصنوعی که در این ویدیو از آن استفاده می کنیم، سریعتر کدنویسی
159
00:06:45,740 –> 00:06:48,500
کنید، چه تازه وارد پایتون هستید یا
160
00:06:48,500 –> 00:06:50,510
قبلاً یک حرفه ای که باید کیت را امتحان کنید زیرا
161
00:06:50,510 –> 00:06:52,010
در حال تکمیل خودکار هستید تا ضربات کلید خود را کاهش دهید
162
00:06:52,010 –> 00:06:53,990
و در زمان برنامه نویسی صرفه جویی کنید. من
163
00:06:53,990 –> 00:06:55,550
از یک افزونه رایگان برای ویرایشگر کد شما
164
00:06:55,550 –> 00:06:57,620
استفاده می کنم که از یادگیری ماشینی استفاده می کند
165
00:06:57,620 –> 00:06:59,450
تا در هنگام برنامه نویسی ضربات کلید شما را ذخیره کند.
166
00:06:59,450 –> 00:07:02,690
167
00:07:02,690 –> 00:07:05,480
sublime یا vim kite به طور
168
00:07:05,480 –> 00:07:07,460
یکپارچه در گردش کار کدنویسی شما ادغام میشود. کیت
169
00:07:07,460 –> 00:07:09,410
میتواند خطوط کامل کد را تکمیل کند و
170
00:07:09,410 –> 00:07:10,850
ویژگیای به نام قطعههای هوشمند دارد
171
00:07:10,850 –> 00:07:12,140
که به شما کمک میکند تا
172
00:07:12,140 –> 00:07:13,670
آرگومانها و فراخوانیهای متد را با
173
00:07:13,670 –> 00:07:15,620
متغیرهایی که قبلاً در اسکریپت خود تعریف شدهاند، پر
174
00:07:15,620 –> 00:07:17,390
کنید.
175
00:07:17,390 –> 00:07:19,640
صفحه نمایش من در اینجا نیز یک ویژگی بادبادک
176
00:07:19,640 –> 00:07:22,130
به نام کمکپایه بادبادک است که به طور خودکار
177
00:07:22,130 –> 00:07:23,600
اسناد پایتون مربوطه را به شما نشان میدهد
178
00:07:23,600 –> 00:07:25,820
در حالی که شما بر اساس مکان مکاننمای خود تایپ میکنید و
179
00:07:25,820 –> 00:07:27,860
این باعث ذخیره y میشود.
180
00:07:27,860 –> 00:07:30,230
بهترین
181
00:07:30,230 –> 00:07:31,790
بخش کیت این است که رایگان است و می توانید
182
00:07:31,790 –> 00:07:33,140
آن را از لینک در
183
00:07:33,140 –> 00:07:35,240
توضیحات زیر دانلود کنید حالا بیایید به
184
00:07:35,240 –> 00:07:37,640
کدنویسی 2048 برگردیم، ما قبلاً تنظیمات اولیه را کامل کرده ایم،
185
00:07:37,640 –> 00:07:39,560
بنابراین اکنون ما به
186
00:07:39,560 –> 00:07:41,270
توابع ماتریسی که
187
00:07:41,270 –> 00:07:42,860
در حین گیم پلی فراخوانی می شوند، چهار تابع وجود خواهد داشت
188
00:07:42,860 –> 00:07:44,720
که
189
00:07:44,720 –> 00:07:47,180
ماتریس چهار در چهار را که در شروع بازی ایجاد کردیم دستکاری می کنند
190
00:07:47,180 –> 00:07:48,560
191
00:07:48,560 –> 00:07:50,750
و بر
192
00:07:50,750 –> 00:07:53,000
اساس حرکت بازیکن که هر تابع
193
00:07:53,000 –> 00:07:55,100
از یک تابع استفاده می کند در ترکیب ها و توالی های مختلف فراخوانی می شوند. تو در تو برای حلقه برای تغییر
194
00:07:55,100 –> 00:07:57,290
مقادیر و/یا موقعیتهای مقادیر
195
00:07:57,290 –> 00:08:00,260
در ماتریس ابتدا پشته پشته
196
00:08:00,260 –> 00:08:02,030
تمام اعداد غیر صفر در
197
00:08:02,030 –> 00:08:03,980
ماتریس را به سمت یک طرف
198
00:08:03,980 –> 00:08:06,260
برد فشرده میکند و تمام شکافهای سلولهای خالی
199
00:08:06,260 –> 00:08:08,000
بین آنها را حذف میکند و پشته خود را مینویسیم.
200
00:08:08,000 –> 00:08:09,830
تابع را به سمت چپ فشرده کنید
201
00:08:09,830 –> 00:08:12,080
و خواهید دید که چرا ما می توانیم این کار را بعد
202
00:08:12,080 –> 00:08:14,000
از توضیح سایر توابع انجام
203
00:08:14,000 –> 00:08:16,750
دهیم، بنابراین ابتدا یک ماتریس جدید از همه صفرها
204
00:08:16,750 –> 00:08:19,670
و سپس در حلقه for تو در تو برای هر ردیف
205
00:08:19,670 –> 00:08:21,230
در o ایجاد می کنیم. ماتریس ur ما
206
00:08:21,230 –> 00:08:22,640
تعداد سلول های حاوی یک
207
00:08:22,640 –> 00:08:24,860
عدد غیر صفر و متغیری به نام
208
00:08:24,860 –> 00:08:30,470
fill position را دنبال می کنیم اگر مقدار سلول
209
00:08:30,470 –> 00:08:32,929
غیر صفر باشد، مقدار را در ماتریس جدید
210
00:08:32,929 –> 00:08:35,690
در موقعیت I fill به مقدار
211
00:08:35,690 –> 00:08:39,530
در نقطه خود تنظیم می کنیم. ماتریس در کاما J سپس
212
00:08:39,530 –> 00:08:41,479
موقعیت پر شدن را یک بار
213
00:08:41,479 –> 00:08:44,240
بعد از حلقه for خود افزایش می دهیم،
214
00:08:44,240 –> 00:08:46,980
ماتریس خود نقطه را روی ماتریس جدید قرار می
215
00:08:46,980 –> 00:08:49,590
دهیم.
216
00:08:49,590 –> 00:08:51,690
217
00:08:51,690 –> 00:08:53,580
218
00:08:53,580 –> 00:08:55,680
و آنها را در موقعیت چپ GUI ادغام می کند
219
00:08:55,680 –> 00:08:58,620
، این مرحله
220
00:08:58,620 –> 00:09:01,230
زمانی است که دو کاشی با مقدار یکسان می گویند برای
221
00:09:01,230 –> 00:09:03,720
ادغام با هم و در یک کاشی
222
00:09:03,720 –> 00:09:07,290
از مجموع یا هشت خود جمع می شوند، بنابراین در این حلقه fo