Ударь крота

Демо можно найти здесь.

Чему я научился на этом мини-проекте.

isTrusted

Здесь событие click важно для определения исхода игры, поэтому нам нужно защититься от ложных кликов, которые можно сымитировать с помощью дерзкого javascript-кода.

Использование свойства isTrusted позволяет подтвердить, что событие было сгенерировано действием пользователя.

Приведенный выше код вернется, если событие не было результатом действий пользователя (не через скрипт).

Рекурсия

Этот метод использовался для предотвращения использования одного и того же отверстия дважды подряд. Важно возвращать значение в методе randomHole, чтобы его можно было использовать рекурсивно.

Здесь переменная lastHole будет присвоена случайно сгенерированному отверстию. Если следующий вызов создаст ту же дыру, randomHole будет вызываться снова до lastHole != hole.

Первоначально опубликовано на gist.github.com.