public static void performTest(Func <BoardSide, BoardSide, string> setUp) { ConsoleColor defaults = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Yellow; HearthstoneBoard b = new HearthstoneBoard(); BoardSide b1 = new BoardSide(); BoardSide b2 = new BoardSide(); string testname = setUp(b1, b2); Console.WriteLine("Starting test: " + testname + "!--------------------------------------------------"); Console.ForegroundColor = defaults; b.p1Board = b1; b.p2Board = b2; try { b.printState(); Console.ReadLine(); var res = b.turnByTurnSimulation(); Console.Clear(); res.printState(); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Test finished!"); Console.ForegroundColor = defaults; Console.ReadLine(); b.stockedRandomValues = res.recievedRandomValues; foreach (int i in res.recievedRandomValues) { Console.WriteLine(i); } Console.ReadLine(); var res2 = b.turnByTurnSimulation(); Console.WriteLine("Test finished!"); Console.ReadLine(); } catch (ExceptionWithMessageWhyDoesntCSharpHaveItDeafaultComeOne e) { Console.WriteLine("An error occured when performing test " + testname + ". Message: " + e.message); Console.ReadLine(); } }