Exemple #1
0
        public void AddCoordinates(List <coordinate> coords)
        {
            // Reset Coords
            Coords.Clear();

            // Add each Site
            foreach (var coord in coords)
            {
                _coord c = new _coord();
                c.id      = coord.ID;
                c.placeId = coord.idPlaceInMap;
                double.TryParse(coord.longitude, out c._x);
                double.TryParse(coord.latitude, out c._y);
                c.x = coord.longitude.ToString();
                c.y = coord.latitude.ToString();
                // add to Coords
                Coords.Add(c);

                // Adjust Site's Coord List
                _site site = getSite(coord.idPlaceInMap);
                // assert site is valid
                //Debug.Assert(site != null);
                site.coords.Add(c);
            }

            // prepare Json String for Coordinations
            prepare_Coord_JsonString();
        }
Exemple #2
0
        public void Reset()
        {
            Initialized = false;
            eventId     = 0;

            lastUpdateTime = DateTime.UtcNow;

            Sites.Clear();
            Coords.Clear();
            Types.Clear();
            Styles.Clear();
            Sizes.Clear();
            Services.Clear();
            Updates.Clear();
        }
Exemple #3
0
        public static char[,] CreateTable()
        {
            Words.Clear();
            int tableHeight = MenuOptionsData.TableHeight;
            int tableWidth  = MenuOptionsData.TableWidth;

            char[,] table = new char[tableHeight, tableWidth];
            Random random = new Random();

            AddWords();
            while (CheckAr(table, tableHeight, tableWidth))
            {
                if (TrueWords.Count == 0)
                {
                    UsedWords.Clear();
                    Words.Clear();
                    table = CreateTable();
                    break;
                }
                Word word1 = new Word();
                char[,] timeTable = (char[, ])table.Clone();
                string word = TrueWords[random.Next(0, TrueWords.Count)];
                TrueWords.Remove(word);
                int positionX = random.Next(0, tableWidth);
                int positionY = random.Next(0, tableHeight);
                while (!CleanAr(table, positionX, positionY))
                {
                    positionX = random.Next(0, tableWidth);
                    positionY = random.Next(0, tableHeight);
                }
                table[positionY, positionX] = word[0];
                Coords.Push(positionY);
                Coords.Push(positionX);

                for (int i = 1; i < word.Length; i++)
                {
                    if (TruePos(tableWidth, tableHeight, positionX + 1, positionY) && CleanAr(table, positionX + 1, positionY))
                    {
                        positionX++;
                        table[positionY, positionX] = word[i];
                        Coords.Push(positionY);
                        Coords.Push(positionX);
                    }
                    else if (TruePos(tableWidth, tableHeight, positionX, positionY - 1) && CleanAr(table, positionX, positionY - 1))
                    {
                        positionY--;
                        table[positionY, positionX] = word[i];
                        Coords.Push(positionY);
                        Coords.Push(positionX);
                    }
                    else if (TruePos(tableWidth, tableHeight, positionX - 1, positionY) && CleanAr(table, positionX - 1, positionY))
                    {
                        positionX--;
                        table[positionY, positionX] = word[i];
                        Coords.Push(positionY);
                        Coords.Push(positionX);
                    }
                    else if (TruePos(tableWidth, tableHeight, positionX, positionY + 1) && CleanAr(table, positionX, positionY + 1))
                    {
                        positionY++;
                        table[positionY, positionX] = word[i];
                        Coords.Push(positionY);
                        Coords.Push(positionX);
                    }
                    else
                    {
                        table = timeTable;
                        Coords.Clear();
                        break;
                    }
                }
                if (Coords.Count == 0)
                {
                    continue;
                }
                UsedWords.Add(word);
                word1.Name = word;
                bool c = true;
                for (int i = word.Length - 1; i >= 0; i--)
                {
                    positionX = Coords.Pop();
                    positionY = Coords.Pop();
                    word1.CoordsX.Add(positionX);
                    word1.CoordsY.Add(positionY);
                    if (CheckFullElem(table, positionX, positionY, tableWidth, tableHeight) || CheckVariants(table, tableWidth, tableHeight, positionX, positionY))
                    {
                        continue;
                    }
                    else
                    {
                        table = timeTable;
                        Coords.Clear();
                        UsedWords.Remove(word);
                        c = false;
                        break;
                    }
                }
                if (c)
                {
                    word1.CoordsX.Reverse();
                    word1.CoordsY.Reverse();
                    Words.Add(word1);
                }
            }
            return(table);
        }