/// <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); } } }
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(); } } }