private void Update()
 {
     if (_developmentIsActive.Value && !_calculating && Input.GetKey(KeyCode.T) && Input.GetKey(KeyCode.E))
     {
         _calculating = true;
         var result = new MoveTreeAnalysis().CalculateMoveTree(_map.GetSnapshot());
         Debug.Log($"CalculatingComplete - 1-Star: {result.HasOneStar} 2-Star: {result.HasTwoStar} 3-Star: {result.HasThreeStar}. " +
                   $"Winning {result.NumberOfWinningBranches}. Dead {result.NumberOfDeadBranches}");
     }
 }
    private IEnumerator Calculate()
    {
        yield return(new WaitUntil(() => _ai.CalculateSolution(map.GetSnapshot())));

        if (_ai.CanWin)
        {
            Message.Publish(new TileIndicated(new TilePoint(_ai.NextMove.FromX, _ai.NextMove.FromY)));
            _makingMove = true;
            _t          = _secondsDelayMove;
        }
        else
        {
            gameInputActiveLock.Unlock(gameObject);
            _showingError = true;
        }
    }