コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: JoannaKowal/SI3
        private AiPlayer InitPlayer(PlayerNumber playerNumber)
        {
            ComboBox playerDropdown;
            ComboBox algorithmDropdown;
            ComboBox heuristicDropdown;
            ComboBox searchDepthDropdown;

            if (playerNumber == PlayerNumber.FirstPlayer)
            {
                playerDropdown      = first_player_type_dropdown;
                algorithmDropdown   = first_player_algorithm_dropdown;
                heuristicDropdown   = first_player_heuristic_dropdown;
                searchDepthDropdown = first_player_depth_dropdown;
            }
            else
            {
                playerDropdown      = second_player_type_dropdown;
                algorithmDropdown   = second_player_algorithm_dropdown;
                heuristicDropdown   = second_player_heuristic_dropdown;
                searchDepthDropdown = second_player_depth_dropdown;
            }
            if (playerDropdown.SelectedIndex == AI_DROPDOWN_NUMBER)
            {
                Heuristic heuristic   = heuristicDictionary[heuristicDropdown.SelectedIndex]();
                int       searchDepth = searchDepthDropdown.SelectedIndex + 1;
                if (algorithmDropdown.SelectedIndex == MIN_MAX_DROPDOWN_NUMBER)
                {
                    SavePlayerType(playerNumber, "Min-Max: " + heuristic.GetType().Name);
                    return(new MinMaxAiPlayer(gameEngine, heuristic, playerNumber, searchDepth));
                }
                else if (algorithmDropdown.SelectedIndex == ALPHA_BETA_DROPDOWN_NUMBER)
                {
                    SavePlayerType(playerNumber, "Alfa-Beta: " + heuristic.GetType().Name);
                    return(new AlphaBetaAiPlayer(gameEngine, heuristic, playerNumber, searchDepth));
                }
                else
                {
                    SavePlayerType(playerNumber, "Alfa-Beta H: " + heuristic.GetType().Name);
                    Heuristic sortHeuristic = new SimplePawnNumberHeuristic();
                    return(new FastAlphaBetaAiPlayer(gameEngine, heuristic, playerNumber, searchDepth, sortHeuristic));
                }
            }
            else
            {
                SavePlayerType(playerNumber, "Człowiek");
            }
            return(null);
        }
コード例 #2
0
    private AiPlayer InitPlayer(PlayerNumber playerNumber)
    {
        TMP_Dropdown playerDropdown;
        TMP_Dropdown algorithmDropdown;
        TMP_Dropdown heuristicDropdown;
        TMP_Dropdown searchDepthDropdown;

        if (playerNumber == PlayerNumber.FirstPlayer)
        {
            playerDropdown      = firstPlayerTypeDropdown;
            algorithmDropdown   = firstPlayerAlgorithmDropdown;
            heuristicDropdown   = firstPlayerHeuristicDropdown;
            searchDepthDropdown = firstPlayerSearchDepthDropdown;
        }
        else
        {
            playerDropdown      = secondPlayerTypeDropdown;
            algorithmDropdown   = secondPlayerAlgorithmDropdown;
            heuristicDropdown   = secondPlayerHeuristicDropdown;
            searchDepthDropdown = secondPlayerSearchDepthDropdown;
        }
        if (playerDropdown.value == AI_DROPDOWN_NUMBER)
        {
            Heuristic heuristic   = heuristicDictionary[heuristicDropdown.value]();
            int       searchDepth = searchDepthDropdown.value + 1;
            if (algorithmDropdown.value == MIN_MAX_DROPDOWN_NUMBER)
            {
                return(new MinMaxAiPlayer(gameEngine, heuristic, playerNumber, searchDepth));
            }
            else if (algorithmDropdown.value == ALPHA_BETA_DROPDOWN_NUMBER)
            {
                return(new AlphaBetaAiPlayer(gameEngine, heuristic, playerNumber, searchDepth));
            }
            else
            {
                Heuristic sortHeuristic = new SimplePawnNumberHeuristic();
                return(new FastAlphaBetaAiPlayer(gameEngine, heuristic, playerNumber, searchDepth, sortHeuristic));
            }
        }
        return(null);
    }