1export default function server(request: Request): Response {
2 return new Response(
3 `<html>
4* @author jelofsson
5**/
6var Hangman = (function () {
7 'use strict';
8
11 * @param {string} elId An ID used in this class and when rendering the DOM Elements
12 */
13 function Hangman(elId) {
14 // DOM is ready
15 this.elId = elId;
24 * Resets the hangman game
25 */
26 Hangman.prototype.reset = function () {
27 // Variables
28 this.STOPPED = false;
42 * @param {char} letter A letter guessed by our enduser
43 */
44 Hangman.prototype.guess = function (letter) {
45 letter = letter.charAt(0).toUpperCase();
46
81 * @param {HTML} content
82 */
83 Hangman.prototype.showElementByIdWithContent = function (elId, content) {
84 if (content !== null) {
85 document.getElementById(elId).innerHTML = content;
93 * @param {string} elClass DOM class
94 */
95 Hangman.prototype.hideElementByClass = function (elClass) {
96 var elements = document.getElementsByClassName(elClass), i;
97 for (i = 0; i < elements.length; i++) {
103 * The word but only with letters the user has guessed so far is visible
104 */
105 Hangman.prototype.getGuessedfWord = function () {
106 var result = "", i;
107 for (i = 0; i < this.WORD.length; i++) {
1export default function server(request: Request): Response {
2 return new Response(
3 `<html>
4* @author jelofsson
5**/
6var Hangman = (function () {
7 'use strict';
8
11 * @param {string} elId An ID used in this class and when rendering the DOM Elements
12 */
13 function Hangman(elId) {
14 // DOM is ready
15 this.elId = elId;
24 * Resets the hangman game
25 */
26 Hangman.prototype.reset = function () {
27 // Variables
28 this.STOPPED = false;
42 * @param {char} letter A letter guessed by our enduser
43 */
44 Hangman.prototype.guess = function (letter) {
45 letter = letter.charAt(0).toUpperCase();
46
81 * @param {HTML} content
82 */
83 Hangman.prototype.showElementByIdWithContent = function (elId, content) {
84 if (content !== null) {
85 document.getElementById(elId).innerHTML = content;
93 * @param {string} elClass DOM class
94 */
95 Hangman.prototype.hideElementByClass = function (elClass) {
96 var elements = document.getElementsByClassName(elClass), i;
97 for (i = 0; i < elements.length; i++) {
103 * The word but only with letters the user has guessed so far is visible
104 */
105 Hangman.prototype.getGuessedfWord = function () {
106 var result = "", i;
107 for (i = 0; i < this.WORD.length; i++) {
1export default function server(request: Request): Response {
2 return new Response(
3 `<!DOCTYPE html>
19
20// Show hidden word
21function displayWord() {
22 wordEl.innerHTML = `
23 ${
47
48// Update the wrong letters
49function updateWrongLettersEl() {
50 // Display wrong letters
51 wrongLettersEl.innerHTML = `
76
77// Show notification
78function showNotification() {
79 notification.classList.add("show");
80
1export default function server(request: Request): Response {
2 return new Response(
3 `
61
62// Generate random word from array
63function getRandomWord() {
64 return words[Math.floor(Math.random() * words.length)];
65}
66
67// Add word to DOM
68function addWordToDOM() {
69 randomWord = getRandomWord();
70 word.innerHTML = randomWord;
72
73// Update score
74function updateScore() {
75 score++;
76 scoreEl.innerHTML = score;
78
79// Update time
80function updateTime() {
81 time--;
82 timeEl.innerHTML = time + 's';
90
91// Game over, show end screen
92function gameOver() {
93 endgameEl.innerHTML = `
94 <h1>Time ran out</h1>
1export default function server(request: Request): Response {
2 return new Response(
3 `<!DOCTYPE html>
60
61// Create speech boxes
62function createBox(item) {
63 const box = document.createElement('div');
64
90let voices = [];
91
92function getVoices() {
93 voices = speechSynthesis.getVoices();
94
104
105// Set text
106function setTextMessage(text) {
107 message.text = text;
108}
109
110// Speak text
111function speakText() {
112 speechSynthesis.speak(message);
113}
114
115// Set voice
116function setVoice(e) {
117 message.voice = voices.find(voice => voice.name === e.target.value);
118}