-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
130 lines (118 loc) · 2.99 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
let palavrasPossiveis = [
"navio",
"quati",
"tigre",
"zebra",
"arara",
"cobra",
'sagaz',
'âmago',
'negro',
'termo',
'êxito',
'mexer',
'nobre',
'senso',
'afeto',
'algoz',
'ética',
'plena',
'mútua',
'tênue',
'fazer',
'assim',
'vigor',
'sutil',
'aquém',
'porém',
'seção',
'fosse',
'sanar',
'poder',
'audaz',
'ideia',
'cerne',
'inato',
'moral',
'sobre',
'desde',
'muito',
'justo',
'honra',
'quiçá',
'torpe',
'sonho',
'razão',
'etnia',
'fútil',
'ícone',
'anexo',
'amigo',
'égide',
'tange',
'lapso',
'haver',
'expor',
'dengo',
'mútuo',
'tempo'
]
let palavrasDisponiveis = [...palavrasPossiveis]
let palavraSecreta = escolherPalavraAleatoria(palavrasDisponiveis)
let tentativasRestantes = 5
function escolherPalavraAleatoria(listaPalavras) {
const indiceAleatorio = Math.floor(Math.random() * listaPalavras.length)
return listaPalavras.splice(indiceAleatorio, 1)[0]
}
function removerAcentos(str) {
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}
palavrasDisponiveis = palavrasDisponiveis.map(palavra => removerAcentos(palavra));
// Normaliza a palavra secreta
palavraSecreta = removerAcentos(palavraSecreta);
console.log(palavraSecreta);
function checkGuess() {
const palpiteInput = document.getElementById("guessInput")
const palpite = palpiteInput.value.toLowerCase()
const feedback = document.getElementById("feedback")
// Verifica se o palpite contém apenas letras
if (/^[a-zA-Z]+$/.test(palpite)) {
if (palpite === palavraSecreta) {
displayFeedback("Parabéns! Você acertou!")
} else {
tentativasRestantes--
if (tentativasRestantes > 0) {
displayFeedback(
`Tente novamente! Tentativas restantes: ${tentativasRestantes}`
)
} else {
displayFeedback(`Game Over. A palavra era "${palavraSecreta}".`)
palpiteInput.disabled = true
}
}
updateColorGrids(palpite)
} else {
displayFeedback("Por favor, insira apenas letras.")
}
}
function displayFeedback(mensagem) {
document.getElementById("feedback").innerText = mensagem
}
function updateColorGrids(palpite) {
const colorGridsContainer = document.getElementById("colorGrids")
const colorGrid = document.createElement("div")
colorGrid.classList.add("colorGrid")
// Adiciona quadrados para cada letra com as devidas classes
for (let i = 0; i < palpite.length; i++) {
const letterSquare = document.createElement("div")
letterSquare.classList.add("letterSquare")
letterSquare.innerText = palpite[i]
if (palpite[i] === palavraSecreta[i]) {
letterSquare.classList.add("correctPosition")
} else if (palavraSecreta.includes(palpite[i])) {
letterSquare.classList.add("correctLetter")
}
colorGrid.appendChild(letterSquare)
}
colorGridsContainer.appendChild(colorGrid)
}