public void ShouldMapTutorial() { var roomSetUp = new BreadthFirstSearch(); var list = roomSetUp.AssignCoords("Tutorial", "Tutorial"); var gobCamp = list.FirstOrDefault(x => x.areaId == 3); var gobCampActual = new Coordinates() { X = 1, Y = 2, Z = 0 }; foreach (var i in list.OrderBy(x => x.areaId)) { Console.WriteLine("roomID " + i.areaId + " (" + i.coords.X + ", " + i.coords.Y + ")"); } Assert.That(gobCamp.coords.X, Is.EqualTo(gobCampActual.X)); Assert.That(gobCamp.coords.Y, Is.EqualTo(gobCampActual.Y)); }
public void ShouldFindDestination() { var roomSetUp = new BreadthFirstSearch(); var list = roomSetUp.AssignCoords(); var modo = list.FirstOrDefault(x => x.areaId == 2); var modoActual = new Coordinates() { X = 0, Y = 2, Z = 0 }; var church = list.FirstOrDefault(x => x.areaId == 18); var churchActual = new Coordinates() { X = 3, Y = 1, Z = 0 }; var elder = list.FirstOrDefault(x => x.areaId == 13); var elderctual = new Coordinates() { X = 2, Y = 1, Z = 0 }; foreach (var i in list.OrderBy(x => x.areaId)) { Console.WriteLine("roomID " + i.areaId + " (" + i.coords.X + ", " + i.coords.Y + ")"); } Assert.That(modo.coords.X, Is.EqualTo(modoActual.X)); Assert.That(modo.coords.Y, Is.EqualTo(modoActual.Y)); Assert.That(church.coords.X, Is.EqualTo(churchActual.X)); Assert.That(church.coords.Y, Is.EqualTo(churchActual.Y)); Assert.That(elder.coords.X, Is.EqualTo(elderctual.X)); Assert.That(elder.coords.Y, Is.EqualTo(elderctual.Y)); }
public static void DrawMap(string playerId) { var player = Cache.getPlayer(playerId); var nodes = new List <SigmaMapNode>(); var edges = new List <SigmaMapEdge>(); var roomSetUp = new BreadthFirstSearch(); var list = roomSetUp.AssignCoords("Anker", "Anker"); foreach (var node in list) { var y = ""; if (node.coords.Y == 0) { y = "0"; } else if (node.coords.Y > 0) { y = (node.coords.Y * -1).ToString(); } else if (node.coords.Y < 0) { y = Math.Abs(node.coords.Y).ToString(); } var mapNode = new SigmaMapNode() { id = "node" + node.areaId, label = node.title, x = node.coords.X.ToString(), y = y, }; var room = list.Distinct().FirstOrDefault(z => z.areaId == node.areaId); if (room.needsBoat) { mapNode.color = "#446CB3"; } else if (room.type == Room.RoomType.Shop) { mapNode.color = "#fed967"; } nodes.Add(mapNode); foreach (var exit in node.exits) { var mapEdge = new SigmaMapEdge() { id = "edge" + node.areaId + exit.areaId, source = "node" + node.areaId, target = "node" + exit.areaId, }; if (!edges.Contains(mapEdge)) { edges.Add(mapEdge); } } } var json = new SigmaMapJSON() { edges = edges, nodes = nodes }; var brokenEdges = new List <string>(); foreach (var e in edges.ToList()) { if (nodes.FirstOrDefault(x => x.id == e.target) == null) { brokenEdges.Add(e.id); edges.Remove(e); } } using (StreamWriter file = File.CreateText(@"C:\path.txt")) { JsonSerializer serializer = new JsonSerializer(); //serialize object directly into file stream serializer.Serialize(file, json); } HubContext.Instance.GetMap(playerId, json); }