Advertisement
nikolayneykov

Untitled

May 22nd, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve () {
  2.   let table = document.querySelector('table')
  3.   let message = document.querySelector('#check p')
  4.  
  5.   let [quickCheck, clear] = document.querySelectorAll('button')
  6.  
  7.   quickCheck.addEventListener('click', validateSudoku)
  8.   clear.addEventListener('click', clearData)
  9.  
  10.   function validateSudoku () {
  11.     let rows = Array.from(document.querySelectorAll('tbody tr')).map(x =>
  12.       Array.from(
  13.         new Set(Array.from(x.querySelectorAll('input')).map(y => +y.value))
  14.       )
  15.     )
  16.  
  17.     let cols = [
  18.       Array.from(new Set([rows[0][0], rows[1][0], rows[2][0]])),
  19.       Array.from(new Set([rows[0][1], rows[1][1], rows[2][1]])),
  20.       Array.from(new Set([rows[0][2], rows[1][2], rows[2][2]]))
  21.     ]
  22.  
  23.     if (rows.every(x => x.length === 3) && cols.every(x => x.length === 3)) {
  24.       table.style.border = '2px solid green'
  25.       message.textContent = 'You solve it! Congratulations!'
  26.       message.style.color = 'green'
  27.     } else {
  28.       table.style.border = '2px solid red'
  29.       message.textContent = 'NOP! You are not done yet...'
  30.       message.style.color = 'red'
  31.     }
  32.   }
  33.  
  34.   function clearData () {
  35.     Array.from(document.querySelectorAll('input')).forEach(d => (d.value = ''))
  36.     table.style.border = 'none'
  37.     message.textContent = ''
  38.   }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement