Домашнее задание к занятию 1.1 «Возможности JavaScript в браузере».
Необходимо дописать игру, убивающую кротов при клике на них. В случайной лунке появляется крот. При нажатии на него, игроку засчитывается +1 за нажатие. Игрок побеждает, если своевременно убивает 10 кротов. При 5 поражениях игра заканчивается.
Вам требуется дописать уже существующий код, в котором реализовано появление крота в случайной лунке.
Данный проект включает:
- Основную HTML-разметку
- Базовые CSS-классы
- Часть написанного кода JS
HTML-разметка представляет 9 лунок (класс hole), каждая со своим id:
<div class="hole-game">
<div class="hole hole_has-mole" id="hole1"></div>
<div class="hole" id="hole2"></div>
<div class="hole" id="hole3"></div>
<div class="hole" id="hole4"></div>
<div class="hole" id="hole5"></div>
<div class="hole" id="hole6"></div>
<div class="hole" id="hole7"></div>
<div class="hole" id="hole8"></div>
<div class="hole" id="hole9"></div>
</div>
Условия победы и поражения
Случайным образом у одной из лунок добавляется класс hole_has-mole, что значит, что в лунке есть крот.
Только если при клике на лунку с классом hole_has-mole вы должны засчитать +1 к победе. В ином случае - поражение.
- Используя цикл зарегистрируйте для каждой лунки обработчик событий
- Проверьте наличие нужного класса и увеличьте значение нужного счетчика
- По выигрышу или проигрышу обнулите статистику
Чтобы не создавать для каждой лунки отдельную переменную, напишите функцию getHole( index ), которая по индексу будет возвращать нужный элемент. Обратите внимание, что идентификаторы лунок располагают для такого подхода. Пример реализации можно посмотреть в файле base.js.
Используемые темы
- Функция alert
- Событие click, метод onclick, обработчик события
- Свойство textContent, чтение и запись
Советы
- Используйте цикл для задания обработчика для каждой лунки.
- Для проверки на наличие того или иного класса, используйте метод includes:
hole.className.includes( 'hole_has-mole' );
Более удобный вариант - использовать объект classList, с которым вы познакомитесь позднее. Он содержит удобный метод contains:
hole.classList.contains( 'hole_has-mole' );
- Перейти в папку задания.
cd ./js-features/mole-game
. - Открыть файл
task.js
в вашем редакторе кода и выполнить задание. - Открыть файл
task.html
в вашем браузере и убедиться в правильности выводимых результатов. - Добавить файл
task.js
в индекс git с помощью командыgit add %file-path%
, где %file-path% - путь до целевого файла.git add task.js
. - Сделать коммит используя команду
git commit -m '%comment%'
, где %comment% - это произвольный комментарий к вашему коммиту.git commit -m 'first commit mole-game'
. - Опубликовать код в репозиторий homeworks с помощью команды
git push -u origin master
. - Прислать ссылку на репозиторий через личный кабинет на сайте Нетологии.
Никаких файлов прикреплять не нужно.
Все задачи обязательны к выполнению для получения зачета. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
Любые вопросы по решению задач задавайте в чате учебной группы.