static void Dump(ImmutableDirectedGraph<string, string> map) { foreach (var path in map.GetAllEdgeTraversals("Troll Room")) { Console.WriteLine(string.Join(" ", from pair in path select pair.Key)); } Console.Read(); }
static void CaptureInput(ImmutableDirectedGraph<string, string> map) { while (true) { Console.Clear(); Console.WriteLine(); Console.Write("Enter <Node> -- <Edge> --> <Node>: "); var input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) { Dump(map); return; } var inputs = input.Split(); if (inputs.Length != 3) CaptureInput(map); map = map.AddEdge(inputs[0], inputs[1], inputs[2]); } }