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(); }
public void Reset() { Initialized = false; eventId = 0; lastUpdateTime = DateTime.UtcNow; Sites.Clear(); Coords.Clear(); Types.Clear(); Styles.Clear(); Sizes.Clear(); Services.Clear(); Updates.Clear(); }
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); }