آموزش پروژه جاوا اسکریپت: ساخت یک بازی حافظه کارت تصادفی - 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 Defining CSS root variables

  • اطلاعات بیشتر در مورد 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

  • تنظیم عملکرد زدن Setting up the shuffle function

  • الگوریتم زدن فیشر-یتس (یا کنوت). Fisher-Yates (or Knuth) shuffle algorithm

  • اعمال زدن فیشر-ییتس به آرایه کارت های ما 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!

Outro Outro

  • Outro Outro

نمایش نظرات

آموزش پروژه جاوا اسکریپت: ساخت یک بازی حافظه کارت تصادفی - 2024
جزییات دوره
4 hours
61
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
88
4.6 از 5
دارد
دارد
دارد
Clyde Matthew
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Clyde Matthew Clyde Matthew

همه چیز همیشه #000000 و #FFFFFF نیست