Задачу уже решил, но не дают покоя некоторые вопросы. Так как сайт не дает выложить все решение, то напишу вопрос тут: В классе OnlineGame
//Вопрос 1. Как я понял из комментариев, без этого цикла Валидатор не принимает решение. Что тут должно быть по логике?
          while (!OnlineGame.isWinnerFound) {
              break;
          }
          //Вопрос 2. Зачем это тут нужно? если раскомментировать, то у меня игроки сразу "проигрывают" без игры (без steps)
         /*
         gamer1.interrupt();
          gamer2.interrupt();
          gamer3.interrupt();*/
      }
вот метод RUN класса Gamer
try {
           for (тут типа цикл по steps) {
               Thread.sleep(1000 / this.rating);
               System.out.println(getName() + ":" + OnlineGame.steps.get(i));

           }
           if (!OnlineGame.isWinnerFound) {
               OnlineGame.isWinnerFound = true;
               System.out.println(getName() + ":победитель!");
           } else throw new InterruptedException();

       } catch (InterruptedException e) {
           System.out.println(getName() + ":проиграл");
       }