لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش پروژه جاوا اسکریپت: ساخت یک بازی حافظه کارت تصادفی - 2024
دانلود JavaScript Project: Build a Random Card Memory Game - 2024
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
مهارت های JS خود را تقویت کنید. دوره کامل ساخت یک بازی حافظه کارت تصادفی، از ابتدا. با استفاده از JS، HTML و CSS خالص، با استفاده از جاوا اسکریپت، HTML، JSON و CSS خالص، با استفاده از جاوا اسکریپت، HTML، JSON و CSS خالص، یک بازی کارتی تصادفی کاملاً کاربردی بسازید تا به الگوریتم درهم ریختگی Fisher-Yates تسلط پیدا کنید تا بهطور تصادفی کارتهای بازی خود را مرتب کنید. ایجاد مکانیکهای بازی مانند برگرداندن کارت و منطق تطبیق، آموزش اعمال سه بعدی تبدیلهایی مانند rotateY() برای تقویت جلوههای بصری در بازی شما قطعات را میفهمد، و چگونه آنها را به Document Object Model (DOM) درک کاملی از جاوا اسکریپت، متغیرها، توابع و مدیریت رویداد به دست آورید. کشف کنید که چگونه دادههای JSON خارجی را برای پر کردن بازی خود واکشی کنید و از آن استفاده کنید. مهارت در استفاده از Fetch API برای بازیابی و دستکاری داده های خارجی، به محتوای پویا در بازی شما اجازه می دهد تا از تصادفی سازی استفاده کنید. تکنیکهایی مانند به هم زدن کارتها برای افزودن غیرقابل پیشبینی و هیجان به بازی کارت حافظهتان. پیش نیازها: درک اولیه جاوا اسکریپت، HTML و CSS برای مک یا رایانه شخصی مفید خواهد بود، بنابراین می توانید در کنار من کدنویسی کنید.
زمان بازی!
توسعهدهنده بازی داخلی خود را آزاد کنید
یک بازی کارت حافظه کاملاً کاربردی، از ابتدا بسازید
JSON، Fetch، Fisher-Yates Algo، انیمیشنها، تبدیلهای سه بعدی بیشتر را بدانید
از جاوا اسکریپت، HTML و CSS خالص بدون کتابخانه یا ماژول استفاده کنید
دوره عملی و تعاملی طراحی شده برای شما، تا شما را در تمام مراحل ایجاد یک بازی کارت حافظه کاملاً کاربردی از ابتدا بگذراند
به کدهای پیچیده بروید، آسان است
آیا برای یک سفر هیجان انگیز به دنیای کدنویسی آماده هستید، زیرا ما یک بازی کارت حافظه تصادفی با استفاده از HTML، CSS و جاوا اسکریپت خالص می سازیم؟
آنچه خواهید آموخت
یک بازی از زمین بسازید: کتابخانه ها و ماژول ها را فراموش کنید! در این دوره آموزشی، شما یاد خواهید گرفت که تمام جنبه های بازی را تنها با استفاده از HTML، CSS و جاوا اسکریپت بسازید. با تمرکز بر کد خالص، درک عمیق تری از نحوه کار هر جزء با هم برای ایجاد یک تجربه کاربری جذاب به دست خواهید آورد.
وظایف پیچیده اصلی: کدنویسی می تواند پیچیده باشد، اما لازم نیست دلهره آور باشد! من شما را از طریق روش ها و تکنیک های مختلف برای مقابله با وظایف پیچیده راهنمایی می کنم. شما در حل مسئله و فکر کردن مانند یک برنامهنویس ماهر خواهید شد و به شما اعتماد به نفس میدهد تا با هر چالش کدنویسی که برایتان پیش میآید مقابله کنید.
CSS 3D Transformations: آماده شوید تا بازیکنان را با تصاویری خیره کننده خیره کنید! ما تحولات سه بعدی CSS را بررسی می کنیم تا یک افکت تلنگر چشم نواز برای کارت های شما ایجاد کنیم. جادوی خاصیت ruaj-3d را کشف خواهید کرد، که به کارتهای شما اجازه میدهد تا با سبکی برگردند و به بازی شما عمق میبخشند.
تصادفیسازی با الگوریتم فیشر-ییتس: آیا میخواهید بازیکنان را سرپا نگه دارید؟ نحوه پیاده سازی الگوریتم تصادفی تصادفی فیشر-یتس برای تصادفی کردن آرایه کارت خود را بیاموزید. این تکنیک قدرتمند نه تنها گیم پلی را بهبود می بخشد، بلکه شما را به مهارت های قابل استفاده در سناریوهای مختلف کدنویسی مجهز می کند - به بازی فکر کنید، انتخاب های تصادفی، و موارد دیگر!
درک JSON: با کاوش در JSON (نمادگذاری شی جاوا اسکریپت) پتانسیل مدیریت داده را باز کنید. شما یاد خواهید گرفت که چگونه به فایل های JSON در کد جاوا اسکریپت خود ارجاع دهید و مدیریت داده های بازی را آسان می کند.
Fetch API Async/Await: مهارت های جاوا اسکریپت خود را با Fetch API ارتقا دهید! ما دستورات سنتی .then() و نحو مدرن async/await را برای واکشی یکپارچه داده ها پوشش خواهیم داد.
پیگیری پیشرفت با پرچمهای شمارنده: هر بازی عالی به بازخورد نیاز دارد! ما شمارندههایی را برای ردیابی پیشرفت بازیکن و نمایش تصاویر شکست در زمانی که مسابقات انجام نمیشوند، پیادهسازی میکنیم. این به ایجاد تجربه جذابتری کمک میکند زیرا بازیکنان برای موفقیت تلاش میکنند.
جشن بردها با کانفتی: چه چیزی هیجان انگیزتر از برنده شدن است؟ ما یک جلوه برنده لذت بخش اضافه می کنیم که بازیکنان را وقتی همه مسابقات را کامل می کنند، با کانفتی باران می کند. این لمس سرگرمکننده بازی شما را به یاد ماندنی میکند و بازیکنان را تشویق میکند تا برای اطلاعات بیشتر به آنجا برگردند!
مکانیک بازی تطبیق تصادفی
هر بازی جدید دارای مجموعهای از کارتهای جدید خواهد بود و این اطمینان را میدهد که هیچ دو بازی یکسان نباشند! شما یاد خواهید گرفت که چگونه این تصادفی بودن را به طور موثر پیاده سازی کنید و گیم پلی را هیجان انگیز و غیرقابل پیش بینی نگه دارید.
* چه چیزی این دوره را منحصر به فرد می کند؟
این دوره فقط در مورد کدنویسی نیست. این در مورد ایجاد یک تجربه است. در پایان سفر ما، شما یک بازی کارت حافظه کاملاً کاربردی ساخته اید که مهارت های جدید شما را به نمایش می گذارد. بهعلاوه، دانش ارزشمندی را که میتوان در پروژههای مختلف در حرفه توسعه خود به کار برد، کنار خواهید گذاشت.
پیادهسازی منطق بازی: نحوه پیادهسازی مکانیکهای بازی مانند برگرداندن کارت، منطق تطبیق و شرایط برد/باخت را کشف کنید. تجربه عملی در مدیریت وضعیت های بازی و تعاملات کاربر کسب خواهید کرد.
مدیریت داده : نحوه واکشی و استفاده از داده های خارجی را بیاموزید. شما با دادههای JSON کار میکنید تا بازی خود را با کارتهای منحصربهفرد پر کنید و درک خود را از ساختارهای داده افزایش دهید.
طراحی تجربه کاربر : بهترین شیوه ها برای طراحی یک رابط کاربری جذاب را بررسی کنید. برای ایجاد یک تجربه بازی همهجانبه، انیمیشنها، انتقالها و بازخورد بصری را پیادهسازی خواهید کرد.
برای بازی آماده هستید؟
این فرصت را برای تقویت مهارت های کدنویسی خود در حین تفریح از دست ندهید! در ایجاد چیزی شگفت انگیز به ما بپیوندید—بازی کارت حافظه تصادفی خودتان در انتظار شماست!
بیایید با هم چیزی دیدنی را کدنویسی کنیم!
نکات برجسته دوره؟
پروژه عملی: هر بخش شامل تمرینهای عملی است که در آن اجزای بازی را مرحله به مرحله میسازید و به یک بازی کارت حافظه کاملاً قابل بازی ختم میشود.
آزمونها، تمرینهای کدنویسی و تستها: من تستها، آزمونها و حتی تمرینهای کدنویسی را برای بهسرعت رساندن شما به کار گرفتهام.
راهنمایی تخصصی: از بازخورد شخصی و راهنمایی من که علاقه زیادی به تدریس دارم بهره مند شوید.
من مشتاقانه منتظر دیدار شما در کلاس هستم!
بیایید یادگیری را سرگرم کننده کنیم—هر بار یک کارت!
کلاید
سرفصل ها و درس ها
تنظیم کد پروژه
Setting up the project code
معرفی دوره
Course Intro
معرفی بخش
Section intro
ساختار دوره و کد شروع
Course structure and starting code
نوشتن HTML
Writing the HTML
نوشتن CSS و توضیح REM در مقابل EM
Writing CSS, and explaining REM vs EM
استفاده از سیستم شبکه CSS برای نمایش کارت ها
Using the CSS grid system to display the cards
اطلاعات بیشتر در مورد CSS :root و قراردادهای نامگذاری
More about CSS :root and naming conventions
فایل های پروژه
Project Files
آشنایی با REM و EM
Understanding REM and EM
شبکه CSS ما را با کارت ها پر کنید
Populate our CSS grid with cards
معرفی بخش
Section intro
یک فایل JSON ایجاد کنید که حاوی آرایه ای با اشیاء کارت باشد
Create a JSON file that contains an array with card objects
نحوه ارجاع فایل JSON از فایل اصلی جاوا اسکریپت
How to reference a JSON file from our main JavaScript file
استفاده از async/wait با Fetch
Using async/await with Fetch
CORS، پروتکل فایل و فایلهایی که یک سرور توسعه محلی میتواند به آن دسترسی داشته باشد
CORS, File Protocol, and what files a local development server can access
سرور توسعه محلی
Local Development Server
Fetch سنتی و متد ()Array.map
Traditional Fetch and the Array.map() method
با استفاده از تابع flatmap() برای ایجاد آرایه کارت های ما
Using the flatmap() function to create our cards array
استفاده از سینتکس spread برای ایجاد یک آرایه
Using the spread syntax to create an array
عناصر به طور خودکار به طرح شبکه CSS اضافه می شوند
Elements are automatically added to the CSS grid layout
نحوه ارجاع کارتها در کد ما
How cards will be referenced in our code
افزودن مستقیم کارت به DOM
Directly adding cards to the DOM
با استفاده از appendChild() برای افزودن کارت های خود به DOM
Using appendChild() to add our cards to the DOM
چه مشکلاتی با افزودن موارد مستقیم به DOM زنده در هر حلقه وجود دارد
What are the problems with adding items directly to the live DOM on each loop
قطعه سند چیست؟
What is a document fragment?
استفاده از قطعات برای افزودن کارت به DOM زنده
Using fragments to add cards to the live DOM
تست کد و دسترسی به ویژگی childElementCount
Testing code and accessing the childElementCount property
حالت دادن به پشت کارت با CSS
Styling back of the card with CSS
طراحی جلوی کارت با CSS
Styling front of the card with CSS
فایل های پروژه
Project files
آزمون بخش
Section Quiz
افزودن افکت تلنگر، و استفاده از شافل Fisher-Yates
Adding flip effect, and using the Fisher-Yates shuffle
معرفی بخش
Section intro
افزودن شنونده رویداد کلیک به صورت پویا
Adding the click event listener dynamically
با استفاده از تبدیل های سه بعدی CSS برای چرخش 180 درجه کارت روی محور Y
Using CSS 3D transformations to rotate our card 180 degrees on the Y-axis
اعمال زدن فیشر-ییتس به آرایه کارت های ما
Applying the Fisher-Yates shuffle to our cards array
ثبت کردن یک آرایه به طور مستقیم در کنسول، یک ارجاع به آن را در حافظه ثبت می کند
Logging an array directly in the console, logs a reference to it in memory
حل مشکل با ایجاد یک کپی کم عمق از آرایه با استفاده از نحو گسترش
Solving the issue by creating a shallow copy of the array using spread syntax
استفاده از تخصیص تخریب ساختار برای بهبود کد ما
Using the destructuring assignment to improve our code
فایل های پروژه
Project files
آزمون بخش
Section Quiz
اضافه کردن منطق برای کارت های همسان و بی همتا و شمارنده
Adding logic for matched and unmatched cards, and counters
معرفی بخش
Section intro
استفاده از این کلمه کلیدی برای تعریف کارت اول و دوم
Using THIS keyword to define the first and second card
اضافه کردن یک پرچم برای عدم امکان کلیک همزمان روی بیش از 2 کارت
Adding a flag to disallow the user to click on more than 2 cards at once
ویژگی مجموعه داده و عملگر سه تایی در جاوا اسکریپت برای پیاده سازی منطق تطبیق
Dataset property, and ternary operator in JavaScript to implement matching logic
با استفاده از تابع setTimeout() برای تعریف تابع unflipCard
Using the setTimeout() function to define the unflipCard function
تنظیم مجدد متغیرها و کارت های ما
Resetting our variables and cards
با استفاده از متد removeEventListener() و اضافه کردن رنگ پس زمینه
Using removeEventListener() method, and adding a background color
جلوگیری از دوبار کلیک کردن کاربر روی یک کارت و تنظیم مجدد پرچم ها
Precluding the user from clicking on the same card twice, and resetting flags
فایل های پروژه
Project Files
آزمون بخش
Section Quiz
کدگذاری ستارگان در حال سقوط، و اضافه کردن یک پوشش تصویر از دست رفته
Coding falling stars, and adding a losing image overlay
معرفی بخش
Section intro
افزودن شمارنده برای تلاشهای باقیمانده
Adding a counter for tries remaining
با استفاده از عملگر کاهش و انجام یک بررسی IF ساده
Using the decrement operator and performing a simple IF check
ایجاد ساختار HTML برای حاوی تصویر از دست رفته ما
Creating the HTML structure to contain our losing image
با استفاده از CSS position:fixed و همچنین با استفاده از متد () requestAnimationFrame
Using CSS position:fixed and also using the requestAnimationFrame() method
ایجاد یک ستاره در حال سقوط با استفاده از جاوا اسکریپت
Creating a falling star using JavaScript
استفاده از انیمیشن های CSS و فریم های کلیدی CSS
Applying CSS animations and CSS keyframes
تست کد و استفاده از متد remove() برای حذف ستاره ها از DOM
Testing code, and using the remove() method to remove stars from the DOM
با استفاده از شمارنده، setInterval و clearInterval
Using counters, setInterval and clearInterval
تست کد نهایی
Testing final code
اعمال یک انتقال CSS به رنگ پس زمینه کارت پشتی ما
Applying a CSS transition to the background color of our back card
کد پروژه
Project Code
آزمون بخش
Section Quiz
آزمون دوره
Course Test
جاوا اسکریپت، CSS و موارد دیگر!
JavaScript, CSS, and more!
نمایش نظرات