/*
         *
         */
        public heroGenerateTypes()
        {
            string s = Path.Combine(Environment.CurrentDirectory, "Properties/herotype.txt");

            string[] lines        = System.IO.File.ReadAllLines(s);
            string[] second_lines = lines;
            int      index        = 0;
            heroID   h_ID         = new heroID();

            string[] heroesName = h_ID.getHeroName();
            Dictionary <int, string> ID_table   = h_ID.getHeroID(); // key is ID, value is hero_name;
            Dictionary <string, int> hero_table = h_ID.getIDHero(); // key is hero_name, value is ID;

            foreach (string line in lines)
            {
                if (line.Contains("["))
                {
                    string[] words     = line.Split('\t', '"', '\\');
                    string   role_name = words[0].Replace("[", "");
                    role_name = role_name.Replace("]", "");
                    string explain = words[1].Replace("\"", "");
                    type_explain[role_name] = explain;
                    index = type_explain.Count - 1;
                }
                else
                {
                    string   second_string = string.Empty;
                    string[] words         = line.Split('*');
                    for (int i = 0; i < words.Length; i++)
                    {
                        var r = new Regex(@"(?<=[A-Z])(?=[A-Z][a-z]) | (?<=[^A-Z])(?=[A-Z]) | (?<=[A-Za-z])(?=[^A-Za-z])",
                                          RegexOptions.IgnorePatternWhitespace);

                        string   curName  = r.Replace(words[i], " ");
                        string[] nameList = curName.Split(' ');
                        curName = "";
                        for (int j = nameList.Length - 1; j >= 0; j--)
                        {
                            if (curName.Length > 0)
                            {
                                if (nameList[j].Length > 0)
                                {
                                    curName = nameList[j] + " " + curName;
                                }
                            }
                            else
                            {
                                curName = nameList[j];
                            }

                            if (hero_table.ContainsKey(curName))
                            {
                                hero_generate_type_table[hero_table[curName], index] = 1;
                                break;
                            }
                        }
                    }
                }
            }
        }
        public counterpick_info()
        {
            heroID h_ID = new heroID();
            Dictionary <int, string> ID_table   = h_ID.getHeroID(); // key is ID, value is hero_name;
            Dictionary <string, int> hero_table = h_ID.getIDHero(); // key is hero_name, value is ID;
            string s     = Path.Combine(Environment.CurrentDirectory, "Properties/c");
            string s_end = ".txt";
            int    i     = 1;
            string path  = "";

            while (i < 116)
            {
                path = s + i + s_end;
                string[] lines        = System.IO.File.ReadAllLines(path);
                string[] second_lines = lines;
                int      counter      = 0;
                foreach (string line in lines)
                {
                    if (counter == 0)
                    {
                        string[] words       = line.Split('\t');
                        int      length_this = words.Length;
                        string   name        = "";
                        int      count_in    = 0;
                        while (length_this > 1)
                        {
                            name = words[count_in];
                            count_in++;
                            length_this--;
                        }
                        string temp   = words[count_in].Replace('%', ' ');
                        double d_temp = Convert.ToDouble(temp);
                        int    index  = -1;
                        hero_table.TryGetValue(name, out index);
                        if (index != -1)
                        {
                            counter_info_table[i, index] = d_temp;
                        }
                        if (index == 0)
                        {
                            //Console.WriteLine(name);
                        }
                        counter++;
                    }
                    else
                    {
                        counter = 0;
                    }
                }
                i++;
            }

            string path1 = Path.Combine(Environment.CurrentDirectory, "Properties/countertable.txt");

            if (!File.Exists(path1))
            {
                // Create a file to write to.
                using (StreamWriter sw = File.CreateText(path1))
                {
                    int row_number = 0;
                    while (row_number < 116)
                    {
                        double[] nthRow = GetRow(counter_info_table, row_number);
                        sw.WriteLine(convertString(nthRow));
                        row_number++;
                    }
                }
            }
        }
예제 #3
0
        /*
         * build up the hero_ID_Client_Team Team
         */
        public void readTeam()
        {
            //count the hero name
            int count = 0;
            //count the hero team
            //int count1 = 0;
            string s = dataFolderLocation + "info.txt";

            string[]                 lines          = System.IO.File.ReadAllLines(s);
            heroIDClient             ID_client      = new heroIDClient();
            Dictionary <string, int> clientID_Dic   = ID_client.getIDHero();
            Dictionary <int, string> clientHero_Dic = ID_client.getHeroID();

            heroID ID_hero = new heroID();
            Dictionary <string, int> ID_Dic   = ID_hero.getIDHero();
            Dictionary <int, string> Hero_Dic = ID_hero.getHeroID();
            var caseInsensitiveDictionary     = new Dictionary <string, int>(
                StringComparer.OrdinalIgnoreCase);

            foreach (string key in clientID_Dic.Keys)
            {
                int value1 = 0;
                clientID_Dic.TryGetValue(key, out value1);
                if (value1 > 0)
                {
                    caseInsensitiveDictionary.Add(key, value1);
                }
            }
            int mode = 0;
            int ban  = 0;

            foreach (string line in lines)
            {
                if (mode == 1)
                {
                    if (ban == 1)
                    {
                        if (line.Contains("team"))
                        {
                            mode = 2;
                            string[] words       = line.Split(' ');
                            int      team_number = -1;
                            if (int.TryParse(words[words.Length - 1], out team_number))
                            {
                                if (team_number == 2)
                                {
                                    hero_ID_Client_Team[count, 2] = 0;
                                }
                                else
                                {
                                    hero_ID_Client_Team[count, 2] = 1;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (line.Contains("team"))
                        {
                            mode = 2;
                            string[] words       = line.Split(' ');
                            int      team_number = -1;
                            if (int.TryParse(words[words.Length - 1], out team_number))
                            {
                                if (team_number == 2)
                                {
                                    hero_ID_Client_Team[count, 2] = 2;
                                }
                                else
                                {
                                    hero_ID_Client_Team[count, 2] = 3;
                                }
                            }
                        }
                    }
                }
                else if (line.Contains("is_pick:"))
                {
                    mode = 1;
                    string[] words = line.Split(' ');
                    if (words[words.Length - 1].Contains("false"))
                    {
                        ban = 1;
                    }
                }
                else if (mode == 2)
                {
                    if (line.Contains("hero_id:"))
                    {
                        mode = 0;
                        string[] words       = line.Split(' ');
                        int      hero_number = -1;
                        if (int.TryParse(words[words.Length - 1], out hero_number))
                        {
                            hero_ID_Client_Team[count, 1] = hero_number;
                            string hero_name   = clientHero_Dic[hero_number];
                            int    hero_id_cur = ID_Dic[hero_name];
                            hero_ID_Client_Team[count, 0] = hero_id_cur;
                            count++;
                            ban = 0;
                        }
                    }
                }
            }

            s = dataFolderLocation + "selection.txt";

            lines = System.IO.File.ReadAllLines(s);
            foreach (string line in lines)
            {
                string[] words = line.Split(' ');
                int      tic   = Int32.Parse(words[0]);
                //int team = 0;
                int heroID = 0;
                heroID = Int32.Parse(words[2]);
                string hero_name = "";
                clientHero_Dic.TryGetValue(heroID, out hero_name);
                int cur_ID = 0;
                ID_Dic.TryGetValue(hero_name, out cur_ID);
                for (int i = 0; i < count; i++)
                {
                    if (hero_ID_Client_Team[i, 0] == cur_ID)
                    {
                        hero_ID_Client_Team[i, 3] = tic;
                    }
                }
            }
        }