Example #1
0
 /// <summary>
 /// Act if player clicks on position
 /// </summary>
 private void OnMouseDown()
 {
     if (GameManager.playerCanInteract)
     {
         if (m_boardManager.Board.CurrentPlayer.playerType == PlayerType.Human)
         {
             m_boardManager.AddPlayerToBoard(index);
         }
     }
 }
Example #2
0
 private void Update()
 {
     if (isWaiting)
     {
         if (waitingTime >= waitingTimeBeforePlay)
         {
             if (finishedCalculation)
             {
                 // if finished calculation and finished waiting, apply movement to board
                 moveIndex = AdjustMovementByDifficulty(moveIndex);
                 m_boardManager.AddPlayerToBoard(moveIndex);
                 isWaiting = false;
                 return;
             }
         }
         else
         {
             // if not finished calculation, increase timer
             waitingTime += Time.deltaTime;
             return;
         }
     }
     else
     {
         // if AI turn and game not finished, start minimax calculation
         if (m_boardManager.Board.CurrentPlayer == m_gamePlayer && m_boardManager.CurrentResult == GameResult.None)
         {
             waitingTime         = 0;
             isWaiting           = true;
             finishedCalculation = false;
             emptyPositions      = m_boardManager.Board.FindEmptyPositions();
             emptyPositions      = ShuffleList <int>(emptyPositions);
             threadRunning       = true;
             t = new Thread(this.FindBestMovement);
             t.Start();
         }
     }
 }