Вітаю! Потрібно зробити гру в пазли, встановивши таймер setInterval на кнопку та при ручному перетягуванні пазлів, тобто, кубів з одного блоку у інший. Функція перевірки також є. Але перетягування працює зараз з помилкою, тому що таймер має спрацювати один раз, а виходить, що спрацьовує при кожному разі перетягування 16 штук пазлів. Методи sortable, fraggable, droppable.

html:
<div class="timer"> <span id="timer">01:00</span></div>

 <div class="btns">
 <button  id="start">Start game</button>
 <button id="check">Check result</button>
 <button id="new">New game</button>
</div>
<div class="container">
<div id="piece-container" class="image-box"></div> 
<div id="puzzle-container" class="image-box"></div>
</div>

js:
function timer (){ //функція запуску таймера
    
              
        
        $('#timer').text('00' + ':' + counter);
        counter--;
       {
        if (counter <= 0) {
            clearInterval(intervalID)
            alert('It\'s a pity, but you lost')
            $('#check').attr('disabled', true)
            $('#timer').text('00'+':'+'00')
        }   
            //console.log(counter)
          if(counter < 10) {
            $('#timer').text('00' + ':' + '0' +counter); 
          }
        }
$('#start').on('click', function() { 
    intervalID =   setInterval(timer, 1000);
    $(this).attr('disabled', true)
  })

  $('#puzzle-container').droppable({
    
    })
   
  $('.piece').draggable({
    
  })

$('.image-box').sortable({
    connectWith: '#piece-container, #puzzle-container',
    containment: '#puzzle-container',
    cursor: 'move',
    scroll: false,
    delay: 100  //тут можна щось додати
})
function swipe () {
    $('.piece').each(function(index, el){
      
      if($(this).index < 1) {
      
        $(el).on('mouseover', function(){
        $('#start').trigger('click') //або додати автоматичне спрацьовування кнопки
        $('#start').attr('disabled', true)
        //intervalID = setInterval(timer, 1000)
        
      }) 
    }
  }) 
    
 
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    }
    body {
    font: 71%/1.5 Verdana, Sans-Serif;
    background: #eee;
    }
    #container {
    margin: 10px auto;
    width: 688px;
    }
    #write {
    margin: 0 0 5px;
    padding: 5px;
    width: 671px;
    height: 120px;
    font: 1em/1.5 Verdana, Sans-Serif;
    background: #fff;
    border: 1px solid #f9f9f9;
  border-radius: 5px;
    
    }
    #keyboard {
    margin: 0;
    padding: 0;
    list-style: none;
    }
         #keyboard button  {
        float: left;
        margin: 0 5px 5px 0;
        width: 40px;
        height: 40px;
        line-height: 40px;
        text-align: center;
        background: #fff;
        border: 1px solid #f9f9f9;
        border-radius: 5px;
        
        }
            .capslock, .tab, .left-shift {
            clear: left;
            }
                #keyboard .tab, #keyboard .back {
                width: 70px;
                }
                #keyboard .capslock {
                width: 80px;
                }
                #keyboard .return {
                width: 77px;
                }
                #keyboard .left-shift {
                width: 95px;
                }
                #keyboard .right-shift {
                width: 109px;
                }
            .lastitem {
            margin-right: 0;
            }
            .uppercase {
            text-transform: uppercase;
            }
            #keyboard .space {
            clear: left;
            width: 681px;
            }
            .on {
            display: none;
            }
            #keyboard button:active {
            position: relative;
            top: 1px;
            left: 1px;
            border-color: #e5e5e5;
            cursor: pointer;
            background-color: rgb(223, 115, 15);
            }
           
          
       
          .active {
            background-color: orange;
          }
          
<body>
  <div id="container">
    <textarea id="write" rows="6" cols="60"></textarea>
    <div id="keyboard">
        <button data-key="sp"class="symbol"><span class="off">`</span><span class="on">~</span></button>
        <button data-key="one"class="one symbol"><span class="off">1</span><span class="on">!</span></button>
        <button data-key="two"class="two symbol"><span class="off">2</span><span class="on">@</span></button>
        <button data-key="three"class="three symbol"><span class="off">3</span><span class="on">#</span></button>
        <button data-key="four"class="four symbol"><span class="off">4</span><span class="on">$</span></button>
        <button data-key="five"class="five symbol"><span class="off">5</span><span class="on">%</span></button>
        <button data-key="six"class="six symbol"><span class="off">6</span><span class="on">^</span></button>
        <button data-key="seven"class="seven symbol"><span class="off">7</span><span class="on">&amp;</span></button>
        <button data-key="eight"class="eight symbol"><span class="off">8</span><span class="on">*</span></button>
        <button data-key="nine"class="nine symbol"><span class="off">9</span><span class="on">(</span></button>
        <button data-key="zero"class="zero symbol"><span class="off">0</span><span class="on">)</span></button>
        <button data-key="tr"class="symbol"><span class="off">-</span><span class="on">_</span></button>
        <button data-key="equal"class="symbol"><span class="off">=</span><span class="on">+</span></button>
        <button data-key="back"class="back lastitem">Backspace</button>
        <button data-key="tab"class="tab">tab</button>
        <button data-key="q" class="q letter" >q</button>
        <button data-key="w" class="w letter" >w</button>

У мене завдання зробити віртуальну клавіатуру з підсвіткою клавіш при натисканні і зникненням її. Поле ввода, зрозуміло, добре працює просто textarea, підсвітку для keydown я зробила за допомогою switch. Правда, це було досить багато коду. Як краще зробити відміну цієї підсвітки, тобто, backgroundColor? Є варіанти на keyup і також setTimeOut, який підійде краще? І не зовсім розумію, як вставити таймер у функцію, вона в мене анонімна. Чи можна задати відміну і саму підсвітку на всі клавіші одразу, щоб вони вмикалися за натисканням?

Можете підказати, як написати програму функції для виводу елементів геометричної прогресії та їхню суму за формулою Sn=b1*1-qn1-q,

де b1 – перший елемент прогресії (це 1),

q – знаменник,

n – кількість елементів прогресії.

5

(2 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Доброго дня. Не підкажете, як у функції має виглядати формула послідовності Фібоначчі? Число введене з prompt.