سلام دوست عزیز😃👋
به آزمون ورودی کارآموزی تابستانه Front-End کداستار خوش آمدید!
مسابقه به مدت ۵ ساعت ادامه خواهد داشت و در مجموع شامل ۷ سوال است که سطح آنها از آسان به سخت متفاوت خواهد بود. برای حل سوالات باید به HTML، CSS و JavaScript مسلط باشید به طوری که ۴ سوال اول مربوط به HTML و CSS هستند و ۳ سوال آخر مربوط به JavaScript میباشند.
برای حل سوالات JavaScript نیازی به تسلط بر روی Frameworkهایی مانند React و Angular نیست و صرفا دانش JavaScript پایه کافی میباشد.
سوالات به گونهای تنظیم شدهاند که با توجه به دانشی که دارید بتوانید بخشی از نمرۀ سوال را بگیرید. به عنوان مثال اگر نتوانید سوال ۳ را به طور کامل حل کنید، این امکان وجود دارد که بتوانید بخشی از سوال ۴ را حل کنید؛ بنابراین حتما به تمام سوالات مراجعه کنید.
رتبهبندی بر اساس مجموع امتیازاتی که از سوالات کسب میکنید صورت میگیرد؛ همچنین در صورتی که امتیاز دو نفر یکسان شود، کسی که سوالات را در مدتزمان کمتری حل کرده باشد، رتبۀ بهتری کسب میکند.
در صورتی که درمورد سوالی ابهام داشتید، میتوانید از قسمت «سوال بپرسید» آن را مطرح کنید.
برای کسب اطلاعات بیشتر به لینکهای زیر مراجعه کنید:
+ [آموزش کار با Quera](https://quera.org/course/assignments/2693/problems/8772)
+ [سایت کداستار](https://code-star.ir/)
+ [کانال تلگرام کداستار](https://t.me/code_star)
موفق باشید 😉✌
سلام دوست عزیز😃👋
به آزمون ورودی کارآموزی تابستانه Front-End کداستار خوش آمدید!
مسابقه به مدت ۵ ساعت ادامه خواهد داشت و در مجموع شامل ۷ سوال است که سطح آنها از آسان به سخت متفاوت خواهد بود. برای حل سوالات باید به HTML، CSS و JavaScript مسلط باشید به طوری که ۴ سوال اول مربوط به HTML و CSS هستند و ۳ سوال آخر مربوط به JavaScript میباشند.
برای حل سوالات JavaScript نیازی به تسلط بر روی Frameworkهایی مانند React و Angular نیست و صرفا دانش JavaScript پایه کافی میباشد.
سوالات به گونهای تنظیم شدهاند که با توجه به دانشی که دارید بتوانید بخشی از نمرۀ سوال را بگیرید. به عنوان مثال اگر نتوانید سوال ۳ را به طور کامل حل کنید، این امکان وجود دارد که بتوانید بخشی از سوال ۴ را حل کنید؛ بنابراین حتما به تمام سوالات مراجعه کنید.
رتبهبندی بر اساس مجموع امتیازاتی که از سوالات کسب میکنید صورت میگیرد؛ همچنین در صورتی که امتیاز دو نفر یکسان شود، کسی که سوالات را در مدتزمان کمتری حل کرده باشد، رتبۀ بهتری کسب میکند.
در صورتی که درمورد سوالی ابهام داشتید، میتوانید از قسمت «سوال بپرسید» آن را مطرح کنید.
برای کسب اطلاعات بیشتر به لینکهای زیر مراجعه کنید:
موفق باشید 😉✌
**JavaScript**
- DOM Manipulation
- Event Handling
- Web Animation API
---
با گذر زمان و رشد پمبه در شرکت، مدیر پمبه میخواهد به او ترفیع بدهد؛
بنابراین از این بهبعد، اکثر کارهایی که از پمبه خواسته میشود، به طور مستقیم مربوط به بازیسازی است.
بهعنوان اولین کاری که پمبه باید انجام دهد، از او خواسته شده است تا قسمتی از یک بازی تیراندازی را پیادهسازی نماید.
## توضیحات سوال
<details class="green">
<summary>تصویر خروجی نمونه</summary>

</details>
میتوانید برای بررسی دقیقتر نتیجۀ نهایی،
[این فیلم](https://codestar.s3.ir-thr-at1.arvanstorage.com/challenge-06.mp4)
را مشاهده کنید.
## پروژه اولیه
پروژه اولیه را از [این لینک](https://quera.ir/contest/assignments/41564/download_problem_initial_project/140013) دانلود کنید.
<details class="blue">
<summary>ساختار فایلها</summary>
```
initial-project-07.zip
├── illustrations
│ ├── bullet.svg
│ ├── crosshair.svg
│ └── pistol.svg
├── dynamic.js
├── index.html
└── static.css
```
</details>
<details class="pink">
<summary>راهاندازی پروژه</summary>
+ ابتدا پروژۀ اولیه را دانلود و از حالت فشرده خارج کنید.
+ سپس فایل `index.html` را در مرورگر خود باز کنید.
</details>
## خواستههای مسئله
- با جابهجایی ماوس، `crosshair` باید با استفاده از متغیرهایی که داخل `static.css` وجود دارند، جابهجا شود
- همواره زاویۀ `pistol` باید به گونهای باشد که مگسک آن به وسط `crosshair` اشاره کند
- چرخش `pistol` باید نسبت به وسط آن صورت بگیرد
- در صورتی که فاصلۀ ماوس از وسط صفحه کمتر از `240px` باشد، باید به `pistol` کلاس `disabled` داده شود و کاربر نباید بتواند شلیک کند
- در صورتی که کاربر بر روی صفحه کلیک کند، باید یک `img` با کلاس `bullet` و `src` مساوی با عبارت زیر به `body` اضافه شود
```
./illustrations/bullet.svg
```
- در لحظۀ ساخت گلوله، موقعیت گوشۀ بالا-چپ آن باید با توجه به `spawn-point` در نظر گرفته شود
- گلوله باید با توجه به موقعیت ماوس، مسیر `1000px` را در یک ثانیه طی نماید و پس از آن از صفحه حذف شود
## نکات
- شما تنها مجاز به تغییر در فایل `dynamic.js` هستید. تغییرات در باقی فایلها نادیده گرفته میشود.
- توجه کنید که داوری خودکار بر مبنای ساختار فایل `index.html` انجام میشود.
- برای ثبت پاسخ، پروژه را با ساختار زیر ارسال کنید.
```
[your-zip-file-name].zip
└── dynamic.js
```
Gunslinger
JavaScript
- DOM Manipulation
- Event Handling
- Web Animation API
با گذر زمان و رشد پمبه در شرکت، مدیر پمبه میخواهد به او ترفیع بدهد؛
بنابراین از این بهبعد، اکثر کارهایی که از پمبه خواسته میشود، به طور مستقیم مربوط به بازیسازی است.
بهعنوان اولین کاری که پمبه باید انجام دهد، از او خواسته شده است تا قسمتی از یک بازی تیراندازی را پیادهسازی نماید.
توضیحات سوال🔗
تصویر خروجی نمونه

میتوانید برای بررسی دقیقتر نتیجۀ نهایی،
این فیلم
را مشاهده کنید.
پروژه اولیه🔗
پروژه اولیه را از این لینک دانلود کنید.
ساختار فایلها
راهاندازی پروژه
- ابتدا پروژۀ اولیه را دانلود و از حالت فشرده خارج کنید.
- سپس فایل
index.html
را در مرورگر خود باز کنید.
خواستههای مسئله🔗
- با جابهجایی ماوس،
crosshair
باید با استفاده از متغیرهایی که داخل static.css
وجود دارند، جابهجا شود
- همواره زاویۀ
pistol
باید به گونهای باشد که مگسک آن به وسط crosshair
اشاره کند
- چرخش
pistol
باید نسبت به وسط آن صورت بگیرد
- در صورتی که فاصلۀ ماوس از وسط صفحه کمتر از
240px
باشد، باید به pistol
کلاس disabled
داده شود و کاربر نباید بتواند شلیک کند
- در صورتی که کاربر بر روی صفحه کلیک کند، باید یک
img
با کلاس bullet
و src
مساوی با عبارت زیر به body
اضافه شود
- در لحظۀ ساخت گلوله، موقعیت گوشۀ بالا-چپ آن باید با توجه به
spawn-point
در نظر گرفته شود
- گلوله باید با توجه به موقعیت ماوس، مسیر
1000px
را در یک ثانیه طی نماید و پس از آن از صفحه حذف شود
نکات🔗
- شما تنها مجاز به تغییر در فایل
dynamic.js
هستید. تغییرات در باقی فایلها نادیده گرفته میشود.
- توجه کنید که داوری خودکار بر مبنای ساختار فایل
index.html
انجام میشود.
- برای ثبت پاسخ، پروژه را با ساختار زیر ارسال کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.