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]); } }
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(); }