Skip to content

Commit

Permalink
Refactorization
Browse files Browse the repository at this point in the history
  • Loading branch information
Pedro270707 committed Oct 26, 2023
1 parent 48dc377 commit 9bf58f9
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 21 deletions.
8 changes: 8 additions & 0 deletions css/senha.css
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@
border-style: dotted;
}

.wrong {
visibility: hidden;
}

.indicate-wrong-characters .wrong {
visibility: visible;
}

.vertical-align-middle {
vertical-align: middle;
}
Expand Down
41 changes: 22 additions & 19 deletions js/senha.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ let validCharacters = "aeiou0123456789-_@#$%&*";
let currentLastIndex = -1;
let amountOfCharacters = 5;
let selectedCharacter = -1;
let indicateWrongCharacters = false;

const gameFlexbox = document.getElementById("game-flexbox");
const keyboard = document.getElementById("keyboard");
Expand Down Expand Up @@ -38,28 +39,21 @@ function addNewGuessesArray(correctInWrongPlace, correctInCorrectPlace) {
let newGuessesArray = document.createElement("div");
newGuessesArray.classList.add("guess-container");
newGuessesArray.id = "guesses-" + currentLastIndex;
let wrong = amountOfCharacters;
for (let i = 0; i < correctInCorrectPlace; i++) {
wrong--;
let guess = document.createElement("span");
guess.classList.add("indicator");
guess.classList.add("correct-in-correct-place");
newGuessesArray.appendChild(guess);
}
for (let i = 0; i < correctInWrongPlace; i++) {
wrong--;
let guess = document.createElement("span");
guess.classList.add("indicator");
guess.classList.add("correct-in-wrong-place");
newGuessesArray.appendChild(guess);
}
for (let i = 0; i < wrong; i++) {
addIndicatorsOfType("correct-in-correct-place", correctInCorrectPlace, newGuessesArray);
addIndicatorsOfType("correct-in-wrong-place", correctInWrongPlace, newGuessesArray);
let wrong = amountOfCharacters - (correctInCorrectPlace + correctInWrongPlace);
addIndicatorsOfType("wrong", wrong, newGuessesArray);

document.getElementById("array-container-" + currentLastIndex).appendChild(newGuessesArray);
}

function addIndicatorsOfType(type, amount, parent) {
for (let i = 0; i < amount; i++) {
let guess = document.createElement("span");
guess.classList.add("indicator");
guess.classList.add("wrong");
newGuessesArray.appendChild(guess);
guess.classList.add(type);
parent.appendChild(guess);
}
document.getElementById("array-container-" + currentLastIndex).appendChild(newGuessesArray);
}

function lockCharacterSlotArray(index = currentLastIndex) {
Expand Down Expand Up @@ -284,4 +278,13 @@ function setValidCharactersAndStartGame(str) {
function simulateKeyPress(key) {
const event = new KeyboardEvent('keyup', { key });
document.dispatchEvent(event);
}

function toggleWrongCharacterIndicator() {
if (indicateWrongCharacters) {
document.body.classList.remove("indicate-wrong-characters");
} else {
document.body.classList.add("indicate-wrong-characters");
}
indicateWrongCharacters = !indicateWrongCharacters;
}
6 changes: 4 additions & 2 deletions senha.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ <h1 class="center" data-string="senha-title">Senha</h1>
<span class="indicator correct-in-correct-place vertical-align-middle"></span> <span data-string="senha-correctincorrectplace">significa que há um caractere correto no local certo.</span>
<br>
<span class="indicator correct-in-wrong-place vertical-align-middle"></span> <span data-string="senha-correctinwrongplace">significa que há um caractere correto no local errado.</span>
<br>
<span class="indicator wrong vertical-align-middle"></span> <span data-string="senha-wrongcharacter">significa um caractere completamente errado.</span>
<span class="wrong">
<br>
<span class="indicator wrong vertical-align-middle"></span> <span data-string="senha-wrongcharacter">significa um caractere completamente errado.</span>
</span>
</div>
<div class="center invisible" id="victory"><span data-string="senha-victory"></span> <span id="number-of-attempts"></span></div>
<div id="game-flexbox" class="game-flexbox center-flex"></div>
Expand Down

0 comments on commit 9bf58f9

Please sign in to comment.