Як змінити значення таймера JavaScript для гри набору тексту за допомогою кнопок HTML

JavaScript

Динамічне налаштування таймера для гри набору тексту за допомогою кнопок

У грі з набором тексту контроль темпу гри має вирішальне значення для забезпечення залучення користувача. Одним з важливих факторів є таймер, який визначає, скільки часу користувач має завершити гру або завдання з друкування. Дозволяючи користувачам регулювати ігровий таймер за допомогою простих HTML-кнопок, ви можете надати їм більше контролю над грою.

Ця стаття покаже вам, як створити рішення в JavaScript, яке дозволить гравцям вибирати між різними налаштуваннями таймера за допомогою кнопок. Наприклад, якщо вибрати кнопку «30s», таймер буде встановлено на 30 секунд, а якщо натиснути кнопку «60s», його буде змінено на 60 секунд.

Функція JavaScript візьме значення з натиснутої кнопки та динамічно оновить таймер і назву гри. Така гнучкість може покращити досвід користувача, роблячи гру більш настроюваною та приємною для різних рівнів навичок.

До кінця цього посібника ви матимете повнофункціональну функцію налаштування таймера за допомогою HTML і JavaScript. Ми також розглянемо, як оновити показане значення таймера в заголовку сторінки, щоб відобразити вибрану тривалість таймера.

Команда Приклад використання
document.querySelector() Використовується для вибору елемента HTML
addEventListener() Прив’язує певну подію (наприклад, клацання) до елемента кнопки. У цьому контексті він використовується для запуску функції changeTimer(), коли користувач натискає кнопку, що дозволяє динамічно взаємодіяти з налаштуваннями таймера.
innerText Ця властивість дозволяє змінювати видимий текст в елементі HTML. У цьому рішенні він використовується для оновлення значення таймера в заголовку сторінки, коли натискається кнопка.
onClick Вбудований атрибут обробника подій, який використовується в альтернативному підході для приєднання функції changeTimer() безпосередньо до події натискання кнопки. Це дозволяє використовувати більш простий, менш модульний спосіб динамічного оновлення таймера.
test() Цей метод використовується в модульному тестуванні з Jest. Він визначає тестовий приклад, у якому перевіряється функція (наприклад, changeTimer()), щоб переконатися, що таймер оновлюється правильно. Це забезпечує належну поведінку коду в різних сценаріях.
expect() Команда Jest, яка перевіряє, чи фактичне значення (наприклад, оновлений таймер) відповідає очікуваному значенню. Він використовується в модульних тестах, щоб перевірити правильність оновлення gameTime і document.title після натискання кнопки.
toBe() Ще одна команда Jest, яка перевіряє сувору рівність. Це гарантує, що після виклику changeTimer() час гри точно відповідає очікуванням (наприклад, 30 000 мс протягом 30 секунд).
getElementById() Використовується для вибору певних кнопок за їх ідентифікаторами (наприклад, «тридцять», «шістдесят»). Цей метод важливий для приєднання слухачів подій до кнопок і запуску динамічної зміни таймера у відповідь на взаємодію користувача.

Створення динамічних таймерів за допомогою кнопок JavaScript і HTML

Сценарії, надані вище, призначені для того, щоб дозволити користувачеві динамічно регулювати ігровий таймер у грі з набором тексту, натискаючи кнопки HTML. Спочатку ми оголошуємо змінну , який містить час у мілісекундах (за замовчуванням 30 секунд, помножених на 1000 для перетворення в мілісекунди). Ключова функція полягає в функція, яка оновлює значення таймера на основі натиснутої кнопки. Цей метод отримує значення кнопки (наприклад, 30, 60 або 90) і оновлює час гри змінна відповідно. Крім того, сценарій оновлює заголовок сторінки, щоб відобразити вибрану тривалість таймера, даючи зрозуміти користувачам, скільки часу вони мають.

Для динамічної поведінки ми використовуємо слухачі подій, зокрема команда. Це дозволяє сценарію реагувати, коли користувач натискає будь-яку кнопку. Кожній кнопці присвоюється ідентифікатор, і після натискання вона запускає функція, передаючи відповідне значення часу. Цей підхід корисний для ефективної обробки кількох кнопок без повторюваного вбудованого JavaScript у структурі HTML. Сценарій також містить запасний варіант, де ви можете використовувати вбудовані обробники подій, наприклад якщо перевага надається простоті над модульністю.

В альтернативному рішенні ми безпосередньо зв'язуємо подія до кнопок. Цей метод виконує функціонувати безпосередньо після натискання кнопки. Це простий підхід, але йому бракує гнучкості методу прослуховування подій. Простота цього методу корисна для невеликих, менш складних програм. Однак для більшого масштабування коду прослуховувачі подій пропонують більшу гнучкість і дозволяють легше оновлювати сценарій без безпосередньої зміни структури HTML. Обидва методи спрямовані на вирішення однієї проблеми, яка полягає в налаштуванні таймера та динамічному оновленні заголовка на основі вибору користувача.

Нарешті, ми впроваджуємо модульні тести за допомогою Jest, середовища тестування JavaScript. The функції мають вирішальне значення для перевірки правильності оновлення таймера. Перевіряючи кілька сценаріїв, як-от налаштування таймера на 30 секунд, 60 секунд чи 90 секунд, ці модульні тести гарантують правильність сценарію. Команди типу і використовуються для перевірки відповідності фактичного значення таймера та заголовка сторінки очікуваним результатам. Цей етап тестування гарантує, що ваша логіка таймера функціонує належним чином у різних випадках використання, забезпечуючи впевненість у надійності вашого рішення.

Зміна значення таймера за допомогою кнопок HTML для гри набору тексту

Інтерфейсний підхід на основі JavaScript із динамічним оновленням часу та коригуванням назви

// Solution 1: Using event listeners to change timer value dynamically
let gameTime = 30 * 1000; // Default timer set to 30 seconds
const titleElement = document.querySelector('title');
function changeTimer(value) {
    gameTime = value * 1000; // Update timer to selected value
    titleElement.innerText = value + 's'; // Update the title
}
// Attach event listeners to buttons
document.getElementById('thirty').addEventListener('click', () => changeTimer(30));
document.getElementById('sixty').addEventListener('click', () => changeTimer(60));
document.getElementById('ninety').addEventListener('click', () => changeTimer(90));
// HTML Buttons:
// <button id="thirty" type="button">30s</button>
// <button id="sixty" type="button">60s</button>
// <button id="ninety" type="button">90s</button>

Альтернативний підхід: використання вбудованих функцій HTML і JavaScript

Вбудований JavaScript у HTML із прямим викликом функції після натискання кнопки

<script>
let gameTime = 30 * 1000;
function changeTimer(value) {
    gameTime = value * 1000;
    document.title = value + 's';
}
</script>
<button onClick="changeTimer(30)">30s</button>
<button onClick="changeTimer(60)">60s</button>
<button onClick="changeTimer(90)">90s</button>

Модульне тестування для змін значення таймера в різних середовищах

Модичні тести на основі JavaScript із використанням Jest для перевірки зовнішнього середовища

// Jest Test Cases
test('Timer should update to 30 seconds', () => {
    changeTimer(30);
    expect(gameTime).toBe(30000);
    expect(document.title).toBe('30s');
});
test('Timer should update to 60 seconds', () => {
    changeTimer(60);
    expect(gameTime).toBe(60000);
    expect(document.title).toBe('60s');
});
test('Timer should update to 90 seconds', () => {
    changeTimer(90);
    expect(gameTime).toBe(90000);
    expect(document.title).toBe('90s');
});

Покращення взаємодії з грою за допомогою налаштування таймера

Іншим аспектом, який слід враховувати під час зміни таймера в грі набору тексту, є загальний досвід користувача та інтерфейс. Окрім налаштування таймера гри за допомогою кнопок, важливо надати гравцям візуальний зворотний зв’язок щодо вибраного таймера. Цього можна досягти, оновивши інші елементи на сторінці, наприклад дисплей зворотного відліку. Після натискання кнопки, щоб встановити таймер, таймер зворотного відліку має запуститися негайно, надаючи користувачеві зворотний зв’язок у реальному часі. Це гарантує плавну та інтуїтивно зрозумілу взаємодію, що робить гру більш захоплюючою.

Щоб реалізувати це, ви можете використовувати JavaScript функція. Після встановлення таймера setInterval можна використовувати для створення зворотного відліку, який зменшує значення таймера щосекунди. Коли таймер досягає нуля, функція може зупинити гру або попередити користувача, що час закінчився. Ця функціональність у поєднанні з можливістю динамічно змінювати таймер за допомогою кнопок значно покращує ігровий процес. Чуйний інтерфейс є ключовим для підтримки активності гравців, а зворотний зв’язок у реальному часі є одним із способів досягти цього.

Крім того, слід враховувати обробку помилок. Наприклад, якщо користувач спробує розпочати гру, не встановивши таймер, ви можете запропонувати йому вибрати дійсний час за допомогою повідомлення. Використовуючи механізми перевірки, ви забезпечуєте безперебійну роботу гри та зменшуєте можливі проблеми. Цей тип перевірки не тільки покращує взаємодію з користувачем, але й сприяє надійності вашої гри, гарантуючи, що гравці не стикаються з непотрібною плутаниною.

  1. Як я використовую створити зворотний відлік?
  2. Ви можете використовувати встановивши його на виконання кожні 1000 мілісекунд (1 секунду) і щоразу зменшуючи значення таймера. Коли значення досягне нуля, ви можете зупинити зворотний відлік за допомогою .
  3. Яка мета ?
  4. використовується для зупинки зворотного відліку або будь-якої іншої повторюваної дії, розпочатої . Дуже важливо забезпечити зупинку зворотного відліку, коли він досягне нуля.
  5. Як я можу динамічно оновлювати заголовок HTML?
  6. використання щоб встановити текст заголовка сторінки. Це можна оновити в межах вашого на основі вибраного значення часу.
  7. Чи можу я обробляти помилки користувача під час вибору таймера?
  8. Так, ви можете додати перевірку, перевіривши, чи вибрано дійсний параметр таймера перед початком зворотного відліку. Якщо не вибрано дійсний час, ви можете відобразити сповіщення або підказку.
  9. Як запустити функцію, коли натиснуто кнопку?
  10. Ви можете прикріпити функцію до кнопки за допомогою або за допомогою безпосереднього використання в елементі HTML кнопки.

Включення динамічних налаштувань таймера в гру набору тексту значно покращує досвід гравця. Дозволяючи користувачам змінювати таймер за допомогою простих кнопок HTML і оновлюючи інтерфейс гри в реальному часі, розробники можуть зробити свої ігри більш інтерактивними та гнучкими. Цей тип контролю допомагає пристосуватись до різних рівнів навичок.

Використання найкращих практик, таких як прослуховування подій, обробка помилок і модульні тести, гарантує безперебійну роботу гри та надійну взаємодію з користувачем. Впровадження цих функцій не тільки розширить функціональність гри, але й зацікавить гравців завдяки зручній і зручній механіці.

  1. Докладну інформацію про використання JavaScript для маніпулювання DOM і обробки подій можна знайти на Веб-документи MDN .
  2. Для розуміння Жарт фреймворку та його реалізації для модульного тестування в програмах JavaScript.
  3. Вичерпна інформація про використання addEventListener для обробки подій у JavaScript доступні на W3Schools.
  4. Важливість оновлень у реальному часі у веб-додатках, включаючи таймери, обговорюється в Журнал Smashing .