 
 void setup() {
   // put your setup code here, to run once:
-  randomSeed(analogRead(A15));
+  MsTimer2::set(2, timerInterupt); // задаем период прерывания по таймеру 2 мс
+  MsTimer2::start();              // разрешаем прерывание по таймеру  randomSeed(analogRead(A15));
   lcd.init();
   // Print a message to the LCD.
   lcd.backlight();

#include <Wire.h> //include i2c library
#include <LiquidCrystal_I2C.h> //include library for work with lcd display via i2c 
#define GAME_START 0
#define GAME_PERFORMED 1
#define GAME_SIDE_OUT 2
#define GAME_END_OUT 3
#define GAME_OFFSIDE 4
#define GAME_GOAL 9
class Button {
  public:
    Button(byte pin, byte timeButton);  // конструктор
    boolean flagPress;    // признак кнопка в нажатом состоянии
    boolean flagClick;    // признак нажатия кнопки (клик)
    void  scanState();    // метод проверки состояние сигнала
    void  filterAvarage(); // метод фильтрации сигнала по среднему значению
    void setPinTime(byte pin, byte timeButton); // метод установки номера вывода и времени (числа) подтверждения
  private:
    byte  _buttonCount;    // счетчик подтверждений состояния кнопки
    byte _timeButton;      // время подтверждения состояния кнопки
    byte _pin;             // номер вывода кнопки
};

    }
  }
  while (1) {
    if (button11.flagClick == 1) {
      lcd.setCursor(0, 0); lcd.print("Green plr wins!");
      game = GAME_PERFORMED;
      x = 5; y = 2; vector = 1;
      return;
    }
    else if (button21.flagClick == 1) {
      lcd.setCursor(0, 0); lcd.print("Red plr wins!");
      game = GAME_PERFORMED;
      x = 6; y = 2; vector = -1;
