public static void Main(string[] args) { //System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.RealTime; while (true) { while (connect4.AwaitNextGameState() == BoardState.ongoing) { t = new Thread(() => { Thread.CurrentThread.IsBackground = true; Thread.Sleep(timeLimit); timesUp = true; }); t.Start(); connect4.MakeMove(FindMove(connect4.currentBoard)); //connect4.PlayGame(FindMove, false); } Console.WriteLine("Average depth on full time searches: " + (averageDepth / (double)averageDepthCounts)); Console.Write("Restart? Y/N: "); string input = Console.ReadLine(); if (!(input == "Y" || input == "y")) { break; } connect4.RestartGame(); averageDepth = 0; averageDepthCounts = 0; } }