پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
index.html
را در مرورگر خود باز کنید.در این سوال شما باید با استایل دادن، تگ div با کلاس box
را در مرکز div با کلاس container
قرار دهید.
طول و عرض تگ div با کلاس container
میتواند متغیر باشد. استایل دهی شما باید در اندازه های مختلف برای تگ div با کلاس container
تگ div با کلاس box
را در مرکز (از نظر افقی و عمودی وسط) قرار دهد.
style.css
هستید.در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
دوتا لینک مفید در مورد وسط قرار دادن المان در CSS:
مهارتهای لازم:
JS
در این سوال قصد داریم یک بازی مشابه puzzle-8 را با استفاده از js
و بدون استفاده از کتابخانه جانبی پیاده سازی کنیم.ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
index.html
را در مرورگر خود باز کنید.این بازی مشابه با بازی 8-puzzle می باشد.با این تفاوت که در این بازی فرض شده است که سطر اول و آخر و همچنین ستون اول و آخر با هم مجاور هستند.برای فهم دقیق گیف قرار داده شده در ابتدا سوال را با دقت مشاهده کنید. برای پیاده سازی نکات زیر را در نظر بگیرید:
game_status
نمایش دهید.moves
نمایش دهید.reset
بازی به حالت اول بر می گردد.app.js
اعمال کنید. تغییرات در بقیه فایل ها نادیده گرفته می شوند.در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
a[-1]
(ایندکس های منفی یا بزرگتر از اندازه لیست) را نیز پشتیبانی کند (همانند پایتون). این قابلیت با استفاده از Proxy ها در جاوا اسکریپت قابل پیاده سازی است.به عنوان مثال :برای رندر کردن ماتریس شما باید تمامی cell ها را داشته باشید. برای دریافت تمامی cell شما می توانید از کد زیر استفاده کنید.
در نهایت می توانید با استفاده از یک حلقه for روی این لیست یا با استفاده از forEach*، محتوای هر کدام از *cell ها را مقدار دهی کنید.به عنوان نمونه:
می توانید کد زیر را کامل کنید.
مهارتهای لازم:
ReactJS
در این سوال شما باید یک input
بسازید که مخصوص رمزعبور می باشد.وظیفه این input
این است که قدرت رمزعبور وارد شده را بررسی کند.ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
react-password-input
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm start
را برای راهاندازی پروژه اجرا کنید.http://localhost:3000/
میتوانید نتیجه را ببینید.همانطور که مشاهده میکنید در این پروژه دو Component
و دو Container
وجود دارد که توضیحات آنها در زیر آمده است.
Input
: از این مولفه هم برای ایجاد یک input
جهت دریافت رمز عبور استفاده نمائید.
Bar
:با استفاده از این مولفه شما می بایست قدرت رمزعبور ورودی را نمایش دهید.این مولفه را زیر مولفه Input
قرار دهید.
Password
: در این مولفه شما می بایست موارد زیر را تکمیل نمائید.
zxcvbn
بررسی کنید که
پسورد وارد شده چقدر قوی می باشد.توضیحات کتابخانه zxcvbn
را در اینجا می توانید مشاهده کنید.با توجه با خروجی که از تابع zxcvbn
دریافت می کنید شما باید موارد زیر را نمایش دهید.تابع zxcvbn
در کل 5 حالت بر می گرداند.
suggestion
نمایش دهید.props
دریافت می کند که بیانگر آن هست که با توجه به میزان قوی بودن رمز عبور , رنگ مولفه Bar
چه باشد و چه متنی نمایش داده شود. این متن را در یک عنصر با شناسه result
نمایش دهید.Bar
و متنی که زیر آن نمایش داده می شود را از متغیر strengthText
بخوانید.Containers/Password.js
هستید.در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
zxcvbn()
پاس دهید. به عنوان مثال :result.score
و result.feedback
استفاده کنید که به ترتیب یک عدد از بین صفر تا ۴ می باشد و یک پیشنهاد در راستای قوی شدن رمز عبور می باشند. result.score
شما می توانید عرض مولفه Bar
را محاسبه کنید و با استفاده از result.feedback
شما پیشنهادی که توسط تابع داده می شود را در عنصر گفته شده در صورت سوال نمایش می دهید.zxcvbn()
برمی گرداند چه تعداد است.با کمک آن عرض کل Bar را به تعداد حالات تقسیم کنید. به عنوان نمونه کد زیر را در نظر بگیرید که متغیر score
توسط تابع zxcvbn()
برگردانده شده است.strengthText
را نمایش دهید ، باید توجه داشته باشید اندازه این لیست برابر با تعداد حالاتی است که تابع zxcvbn()
برمی گرداند. در نتیجه می توانید از متغیر score
برای دسترسی به عنصر مورد انتظار در این لیست استفاده کنید.مهارتهای لازم:
ReactJS
در این سوال شما باید الگوریتم مرتب سازی insertion-sort
را بصورت تصویری پیاده سازی کنید.ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
sort-vis
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.npm start
را برای راهاندازی پروژه اجرا کنید.http://localhost:3000/
میتوانید نتیجه را ببینید.در این پروژه تعدادی Component
و دو Container
وجود دارد. شما می توانید از Container
های دلخواه خودتان استفاده کنید اما نباید در Component
ها تغییری ایجاد کنید.توضیحات Component
ها در زیر آمده است.
SortVisualizer
: در این Container
تابع insertionSort قرار داده شده است که شما می توانید از این الگوریتم استفاده کنید.همچنین می توانید الگوریتم دلخواه خود را پیاده سازی نمائید. این الگوریتم را طوری تغییر دهید که موارد زیر را پیاده سازی کنید :blue
نمایش دهید.green
نمایش دهید.Bar
: از این مولفه برای ایجاد یک ستون یا همان Bar
استفاده کنید.این مولفه یک عدد که بیانگر ارتفاع ستون و یک رنگ پس زمینه دریافت می کند.Input
: از این کامپوننت برای دریافت ورودی استفاده می شود.ورودی رشته ای از اعداد می باشد که با فاصله از هم جدا شده اند.نکات زیر را مد نظر داشته باشید :
end-message
نمایش دهید.50ms
در نظر گرفته شده است.Containers/*
هستید.در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
در این سوال شما می توانید از الگوریتم خودتان یا الگوریتمی که به صورت پیش فرض در پروژه اولیه نوشته شده است استفاده کنید.
برای پیاده سازی این سوال ممکن است راه حل های متنوعی باشد. اما ساده ترین راه حل این است که شما با گرفتن آرایه ورودی ابتدا الگوریتم Inserstion Sort را بر روی آرایه ورودی اجرا کنید و در هر مرحله از مرتب سازی عناصری که دیده می شوند و یا جابه جا می شوند را در یک یا چند آرایه ذخیره کنید. در نهایت آرایه حاصل را به فواصل زمانی معین رندر کنید.
برای اینکه نحوه مرتب سازی را دنبال کنید می توانید در هر مرحله از حلقه for ، آرایه مرتب شده را در یک آرایه دو بعدی نگهداری کنید. سپس آرایه دو بعدی را به فاصله زمانی معین رندر کنید.
همچنین برای اینکه در هر مرحله بدانید تا کدام عنصر لیست به صورت مرتب شده قرار دارد و کدام عنصر در حال جا به جا شدن هست می توانید از یک آرایه دو بعدی دیگر استفاده کنید. با استفاده از این آرایه می توانید متوجه شوید که کدام عنصر در هر مرحله از مرتب سازی باید چه رنگی داشته باشند.
actions
عنصری که در حال جا به جا شدن هست و عنصری که تا به حال دیده شده است را ذخیره می کند و لیست steps
در هر مرحله آرایه مرتب سازی شده را ذخیره می کند. مهارتهای لازم:
ReactJS
در این سوال شما باید یک Graph Visualizer
بسازید که یک رشته ورودی را دریافت می کند و از روی آن یک گراف می سازد.ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید.ساختار فایلهای این پروژه به صورت زیر است.
برای اجرای پروژه، بایدNodeJS
و npm
را از قبل نصب کرده باشید.
ابتدا پروژهی اولیه را دانلود و از حالت فشرده خارج کنید.
در پوشهی graph-vis
، دستور npm install
را برای نصب نیازمندیها اجرا کنید.
در همین پوشه، دستور npm start
را برای راهاندازی پروژه اجرا کنید.
پس از انجام موفق این مراحل، با مراجعه به آدرس http://localhost:3000/
میتوانید نتیجه را ببینید.
در این پروژه تعدادی Component
و سه Container
وجود دارد. شما می توانید از Container
های دلخواه خودتان استفاده کنید اما نباید در Component
ها تغییری ایجاد کنید.توضیحات Component
ها در زیر آمده است.
Line
: از این مولفه برای ایجاد یک یال یا همان edge در گراف استفاده کنید.این مولفه یک شناسه می گیرد که این شناسه همان شناسه رأس هایی است که در دو سر یال قرار دارند و باید با همان ترتیبی که در ورودی آمده اند مقدار دهی شود.همچنین (x1, y1)
و (x2, y2)
مختصات دو سر یال می باشند.
Node
:با استفاده از این مولفه شما می توانید رئوس گراف را ایجاد کنید.این مولفه شناسه ، مختصات و شعاع رأس را دریافت می کند.
Text
: با استفاده از این مولفه شما می توانید بر روی رئوس label ایجاد نمائید. این مولفه شناسه و مختصات رأسی که قرار است بر روی آن نمایش داده شود را دریافت می کند.
توجه داشته باشید که در App.js
یک تابع وجود دارد با نام randomPosition
. این تابع با گرفتن شناسه یک رأس به طور تصادفی یک مختصات برای آن رأس باز می گرداند.
برای درک بیشتر مثال زیر را در نظر بگیرید.
شما تنها مجاز به اعمال تغییر در فایلهای Containers/*
هستید.
پس از اعمال تغییرات، پروژه را zip کرده و ارسال کنید.دقت کنید که پوشهی node_modules در فایل ارسالی نباشد.
در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
props
های مولفه های Node
,Line
, Text
را بررسی کنید. \n
هر خط آنرا جدا کنید. خط حاصل بیانگر دو راس و یک یال می باشد که از نام راس ها باید به عنوان برچسب هر راس استفاده کنید.به عنوان مثال :