Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- let rowPassed = true;
- let collumPassed = true;
- let buttons = document.getElementsByTagName("button");
- let checkBtn = buttons[0];
- let clearBtn = buttons[1];
- checkBtn.addEventListener("click", check);
- clearBtn.addEventListener("click", clear);
- let neededNums = [1, 2, 3];
- let pEl = document.getElementsByTagName('p')[0]; //единственият p елемент в целия HTML
- function check() {
- let matrix = []; //матрица, в която ще вкарваме въведените стойности, и която после ще си обхождаме
- let tBodyRows = Array.from(document.getElementsByTagName("tbody")[0].children); //взимаме редовете
- for (const row of tBodyRows) {
- let valuesRows = row.getElementsByTagName('input'); // от всеки ред взимаме инпутите
- let arrValues = Array.from(valuesRows).map(el => Number(el.value)); //правим си масив от стойностите им
- matrix.push(arrValues); //вкарваме в матрицата масива с инпутите от текущия ред на таблицата
- }
- for (let i = 0; i < matrix.length; i++) {
- if (neededNums.every(el => matrix[i].includes(el))) { //ако текущия ред съдържа всяко едно число от масива с [1,2,3] - влизаме за да проверим текущата колона да ли също ги съдържа
- let currentColArr = []; //правим си масив, който ще ни играе ролята на колоната - чистим го преди всяко пълнене
- collumPassed = true;
- for (let j = 0; j < matrix[i].length; j++) { //попълваме масива, който резпезентира текущата колона
- currentColArr.push(matrix[j][i]);
- }
- if (neededNums.every(el => currentColArr.includes(el))) { //проверяме колоната дали съдържа всяко едно число от масива [1,2,3];
- continue;
- } else {
- collumPassed = false;
- rowPassed = false;
- break;
- }
- } else { //значи някоя колона или ред НЕ съдържа всички числа от масива [1,2,3];
- rowPassed = false;
- break;
- }
- }
- if (rowPassed) {
- document.getElementsByTagName('table')[0].style.border = "2px solid green";
- pEl.parentElement.style.color = "green";
- pEl.textContent = "You solve it! Congratulations!";
- } else {
- document.getElementsByTagName('table')[0].style.border = "2px solid red";
- pEl.parentElement.style.color = "red";
- pEl.textContent = "NOP! You are not done yet...";
- }
- }
- function clear() {
- document.getElementsByTagName('table')[0].style.border = "none";
- pEl.textContent = "";
- pEl.parentElement.style.color = "";
- Array.from(document.getElementsByTagName("input")).forEach(el => {
- el.value = "";
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement