private void MainLoop() { while (true) { var input = Console.ReadLine(); if (input.Contains("position")) { Position(input); } else if (input.Contains("go")) { Go(input); } else if (input.Contains("divide")) { var command = input.Split(' '); var depth = Convert.ToInt32(command[1]); var mg = new MoveGenerator(_bs); mg.Divide(depth); } else if (input.Contains("perft")) { var command = input.Split(' '); var depth = Convert.ToInt32(command[1]); var mg = new MoveGenerator(_bs); Console.WriteLine("Nodes: {0}.", mg.Perft(depth)); } else if (input.Equals("d")) { _helper.PrintBoardWhitePerspective(_bs.BoardRepresentation); } switch (input) { case "isready": IsReady(); break; case "quit": Quit(); break; case "stop": break; case "z": //Console.WriteLine("Pos key: {0:X}.", _bs.PosKey); break; default: break; } } }