Exemplo n.º 1
0
            public void generate_obj()
            {
                Random r = new Random();
                //тут нужно добавить массив с разными id колдунов - СПИСОК АЙДИШНИКОВ
                //последний айди колдуна
                int last_id = arr_witches.GetUpperBound(0);
                //как минимум должно быть 5 колдуна, максимум - 6
                bool original = false;

                int[] arr_id = new int[r.Next(5, 7)];
                arr_id[0] = r.Next(0, last_id + 1);
                for (int i = 1; i < arr_id.Length; i++)
                {
                    while (original == false)
                    {
                        arr_id[i] = r.Next(0, last_id + 1);
                        original  = true;
                        for (int j = 0; j < i; j++)
                        {
                            if (arr_id[i] == arr_id[j])
                            {
                                original = false;
                                break;
                            }
                        }
                    }
                    original = false;
                }
                //уже сформирован лист со случайными айдишниками


                arr_matrix = new int[matrix_size, matrix_size];
                //генерируем колдунов
                for (int i = 0; i < arr_id.Length; i++)
                {
                    Witch human = new Witch();
                    human.name = arr_witches[arr_id[i], 0];
                    human.kind = arr_witches[arr_id[i], 1];
                    //нужен метод для интерактивного общения
                    human.intro_msg   = arr_witches[arr_id[i], 2];
                    human.just_msg    = arr_witches[arr_id[i], 3];
                    human.bad_msg     = arr_witches[arr_id[i], 4];
                    human.success_msg = arr_witches[arr_id[i], 5];



                    human.new_pos(create_pos("witch"));
                    //генерируем предмет
                    int id = -1;
                    while (id == -1)
                    {
                        int x = r.Next(0, arr_items.GetUpperBound(0) + 1);
                        //выбирает случайный айдишник предмета и проверяет нужен ли он колдуну
                        if (arr_items[x, 1] == human.kind)
                        {
                            id = x;
                        }
                    }

                    Item item = new Item();
                    item.name = arr_items[id, 0];
                    item.kind = arr_items[id, 1];
                    item.new_pos(create_pos("item"));
                    items.Add(item);


                    witches.Add(human);
                }
                // генерация ненужных предметов
                int id_excess = -1;
                int d         = r.Next(3, 6);

                for (int j = 0; j < d; j++)
                {
                    id_excess = -1;
                    while (id_excess == -1)
                    {
                        int x = r.Next(0, arr_items.GetUpperBound(0) + 1);
                        for (int k = 0; k < items.Count; k++)
                        {
                            if (arr_items[x, 0] != items[k].name)
                            {
                                id_excess = x;
                            }
                        }
                    }
                    Item excess_item = new Item();
                    excess_item.name = arr_items[id_excess, 0];
                    excess_item.kind = arr_items[id_excess, 1];
                    excess_item.new_pos(create_pos("item"));
                    items.Add(excess_item);
                }
            }