Esempio n. 1
0
        /// <summary>
        /// Creates a new game with the following settings:
        /// - number of players
        /// - game difficulty
        /// - available roles list (the roles will be assigned at random, from this list, to the players)
        /// and performs the initial game setup
        /// </summary>
        /// <param name="randomness_provider"></param>
        /// <param name="number_of_players"></param>
        /// <param name="game_difficulty"></param>
        /// <param name="available_roles_list"></param>
        /// <returns></returns>
        public static PD_Game Create_Game__AvailableRolesList(
            Random randomness_provider,
            int number_of_players,
            int game_difficulty,
            List <int> available_roles_list
            )
        {
            List <int> players = new List <int>();

            for (int i = 0; i < number_of_players; i++)
            {
                players.Add(i);
            }

            List <int> cities = PD_Game_Data_Assistant.Default__Cities();
            Dictionary <int, List <int> > neighbors__per__city      = PD_Game_Data_Assistant.Default__Neighbors__Per__City();
            Dictionary <int, int>         infection_type__per__city = PD_Game_Data_Assistant.Default__InfectionType__Per__City();

            // cards...
            List <int> allCityCards        = PD_Game_Data_Assistant.Default__CityCards();
            List <int> all_infection_cards = PD_Game_Data_Assistant.Default__InfectionCards();
            List <int> all_epidemic_cards  = PD_Game_Data_Assistant.Default__EpidemicCards();

            List <int>            temp_roles_list   = available_roles_list.CustomDeepCopy();
            Dictionary <int, int> role__per__player = new Dictionary <int, int>();

            foreach (int player in players)
            {
                int role = temp_roles_list.DrawOneRandom(randomness_provider);
                role__per__player.Add(player, role);
            }

            return(new PD_Game(
                       randomness_provider,

                       number_of_players,
                       game_difficulty,
                       players,
                       role__per__player,

                       cities,
                       infection_type__per__city,
                       neighbors__per__city,

                       allCityCards,
                       all_infection_cards,
                       all_epidemic_cards
                       ));
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a game with the following settings:
        /// - game difficulty
        /// the number of players is set to 4, and the player roles are specific:
        /// - operations expert,
        /// - researcher
        /// - medic
        /// - scientist
        /// </summary>
        /// <param name="randomness_provider"></param>
        /// <param name="game_difficulty"></param>
        /// <returns></returns>
        public static PD_Game Create_Default_Testing(
            Random randomness_provider,
            int game_difficulty
            )
        {
            List <int> players = new List <int>();

            for (int i = 0; i < 4; i++)
            {
                players.Add(i);
            }

            List <int> cities = PD_Game_Data_Assistant.Default__Cities();
            Dictionary <int, List <int> > neighbors__per__city      = PD_Game_Data_Assistant.Default__Neighbors__Per__City();
            Dictionary <int, int>         infection_type__per__city = PD_Game_Data_Assistant.Default__InfectionType__Per__City();

            // cards...
            List <int> allCityCards        = PD_Game_Data_Assistant.Default__CityCards();
            List <int> all_infection_cards = PD_Game_Data_Assistant.Default__InfectionCards();
            List <int> all_epidemic_cards  = PD_Game_Data_Assistant.Default__EpidemicCards();


            Dictionary <int, int> role__per__player = new Dictionary <int, int>()
            {
                { 0, PD_Player_Roles.Operations_Expert },
                { 1, PD_Player_Roles.Researcher },
                { 2, PD_Player_Roles.Medic },
                { 3, PD_Player_Roles.Scientist }
            };

            return(new PD_Game(
                       randomness_provider,

                       players.Count,
                       game_difficulty,
                       players,
                       role__per__player,

                       cities,
                       infection_type__per__city,
                       neighbors__per__city,

                       allCityCards,
                       all_infection_cards,
                       all_epidemic_cards
                       ));
        }
Esempio n. 3
0
        /// <summary>
        /// Creates a new game with the following settings:
        /// - number of players
        /// - game difficulty
        /// - specific role per player
        /// and performs the game setup, generaiting a randomized initial state
        /// </summary>
        /// <param name="randomness_provider"></param>
        /// <param name="number_of_players"></param>
        /// <param name="game_difficulty"></param>
        /// <param name="role__per__player"></param>
        /// <returns></returns>
        public static PD_Game Create_Game__SpecificRolePerPlayer(
            Random randomness_provider,
            int number_of_players,
            int game_difficulty,
            Dictionary <int, int> role__per__player
            )
        {
            List <int> players = new List <int>();

            for (int i = 0; i < number_of_players; i++)
            {
                players.Add(i);
            }

            List <int> cities = PD_Game_Data_Assistant.Default__Cities();
            Dictionary <int, List <int> > neighbors__per__city      = PD_Game_Data_Assistant.Default__Neighbors__Per__City();
            Dictionary <int, int>         infection_type__per__city = PD_Game_Data_Assistant.Default__InfectionType__Per__City();

            // cards...
            List <int> allCityCards        = PD_Game_Data_Assistant.Default__CityCards();
            List <int> all_infection_cards = PD_Game_Data_Assistant.Default__InfectionCards();
            List <int> all_epidemic_cards  = PD_Game_Data_Assistant.Default__EpidemicCards();

            return(new PD_Game(
                       randomness_provider,

                       number_of_players,
                       game_difficulty,
                       players,
                       role__per__player,

                       cities,
                       infection_type__per__city,
                       neighbors__per__city,

                       allCityCards,
                       all_infection_cards,
                       all_epidemic_cards
                       ));
        }