Esempio n. 1
0
        private void computer_turn()
        {
            List <int> coords = new List <int>();

            // Identify next move based on difficulty
            switch (GameLogic.cDifficulty)
            {
            // Place DIE Randomly
            case DIFFICULTY.EASY:
                coords = GameLogic.easyBOT(GAME_BOARD).ToList();
                break;

            // Block Player - Random
            case DIFFICULTY.NORMAL:
                coords = GameLogic.normalBOT(GAME_BOARD).ToList();

                // Use EASY BOT if there is nothing to block
                if (coords[0] == -1 && coords[1] == -1)
                {
                    coords = GameLogic.easyBOT(GAME_BOARD).ToList();
                }

                break;

            case DIFFICULTY.HARD:
                coords = GameLogic.hardBOT(GAME_BOARD).ToList();

                // Use EASY BOT if there is nothing to block
                if (coords[0] == -1 && coords[1] == -1)
                {
                    coords = GameLogic.easyBOT(GAME_BOARD).ToList();
                }
                break;

            default:
                break;
            }

            // Update GAME_BOARD
            GAME_BOARD[coords.ElementAt(0), coords.ElementAt(1)] = COMPUTER_SYMBOL;

            // Update Btn UI
            Button btn = (Button)gamePanel.Controls.Find($"{coords.ElementAt(0)}-{coords.ElementAt(1)}_btn", true).First();

            btn.BackgroundImage       = Image.FromFile(COMPUTER_DIE);
            btn.BackgroundImageLayout = ImageLayout.Stretch;
            btn.Enabled = false;

            // Check Win Condition
            if (GameLogic.winCondition(GAME_BOARD, COMPUTER_SYMBOL))
            {
                victoryForm victoryForm = new victoryForm(victoryForm.PLAYER.computer, turnNumber, GameLogic.cDifficulty, this, currentUser);
                victoryForm.ShowDialog();
            }
        }