مهارت‌های لازم:

  • آشنایی با JS

در این سوال قصد داریم بخشی از بازی نقطه خط را با استفاده از js و بدون استفاده از کتابخانه جانبی پیاده سازی کنیم.ظاهر کلی برنامه بدین صورت است:

ظاهر کلی برنامه

پروژه اولیه

پروژه اولیه را از این لینک دانلود کنید.

ساختار فایل‌های این پروژه به این صورت است

dots-and-boxes-master
├── cypress
│   ├── fixtures
│   │   └── example.json
│   ├── integration
│   │   └── sample.spec.js
│   ├── plugins
│   │   └── index.js
│   └── support
│       ├── commands.js
│       └── index.js
├── .qsampletest
├── cypress.json
├── index.html
├── index.js
├── package.json
└── style.css
Plain text

راه اندازی پروژه

  • ابتدا پروژه‌ی اولیه را دانلود و از حالت فشرده خارج کنید.
  • سپس فایل index.html را در مرورگر خود باز کنید.

جزئیات

ظاهر این سوال به شکل کامل پیاده سازی شده است. شما باید عملکرد های زیر را با استفاده از جاوا اسکرپیت به بازی اضافه کنید:

  • با کلیک کردن بر روی هر کدام از خط ها، با در نظر گرفتن نوبت بازیکن ها، رنگ خط مورد نظر به آبی یا قرمز تغییر پیدا می کند.
  • وضیعت نوبت بازیکن ها را یک عنصر با شناسه game_status نمایش دهید.
  • در صورت اینکه نوبت بازیکن قرمز باشد، متن مورد نظر باید Player red's turn و در صورت اینکه نوبت بازیکن آبی باشد متن مورد نظر باید Player blue's turn باشد.
  • همچنین در صورت اینکه نشانگر ماوس رو یکی از خط ها برده شود(رویداد mouseenter)، رنگ خط باید مطابق با نوبت بازیکن ها تغییر کند و هنگامی که نشانگر ماوس از روی خط ها به بیرون برده شود(رویداد mouseleave) رنگ خطوط به حالت عادی بر میگردد.

توضیحات فایل index.html و style.css :

  • هر کدام از خطوط بازی به عنوان یک عنصر div در نظر گرفته شده اند. خطوط بازی یا horizontal (افقی) هستند یا vertical(عمودی) هستند. برای خطوط افقی کلاس horizontal_line در نظر گرفته شده است و برای خطوط عمودی کلاس vertical_line در نظر گرفته شده است.
  • در فایل style.css نیز استایل دهی های لازم جهت قرار گیری المان ها آورده شده است.
  • شما نیازی به ایجاد تغییر در فایل های بالا ندارید.

نکات

  • رنگ های آبی و قرمز به ترتیب #87ceeb و #fa8072 هستند.
  • همچنین کلاس های مربوط به این رنگ ها blue و red هستند.
  • تغییرات را تنها در فایل index.js اعمال کنید. تغییرات در بقیه فایل ها نادیده گرفته می شوند.
  • توجه کنید که داوری خودکار بر مبنای نام کلاس های انجام می‌شود.
  • پروژه را با ساختار زیر ارسال کنید.
[your-zip-file-name].zip
└── index.js
Plain text

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.