private static void AutomaticLoop(Game game, StringBuilder innerBuffer, int[][] wins, int[][] loses, int loops) { var r = Console.CursorTop; Console.CursorVisible = false; while (loops > 0) { loops--; game.StartNew(); // PLANNING game.PlanningState(); // GAME while (!game.Finished) { innerBuffer.Clear(); game.TurnState(); } ProgressBar.Value = (_totalLoops - loops)/(float)_totalLoops; for (var i = 0; i < game.Winners.Count; i++) wins[game.Winners[i]][i]++; for (var i = 0; i < game.Losers.Count; i++) loses[game.Losers[i]][i]++; if (game.Winners.Count == 0) _noWinners++; if (game.Losers.Count == 0) _noLosers++; Buffer.Clear(); } Console.SetCursorPosition(1, 1); Console.Write("".PadRight(160)); Console.SetCursorPosition(0, r); }
private static void ManualLoop(Game game, StringBuilder innerBuffer, int[][] wins, int[][] loses) { while (Console.ReadKey().Key != ConsoleKey.Escape) { game.StartNew(); // PLANNING game.PlanningState(); Print("PLANNING", game.ToString(), true); Console.ReadKey(); // GAME while (!game.Finished) { innerBuffer.Clear(); game.TurnState(); PrintToBuffer(innerBuffer, true); Console.ReadKey(); } // RESULTS _totalLoops++; Print("WINNERS", game.Winners.Aggregate("", (s, i) => s + i + " ") + "\n", true); Print("LOSERS", game.Losers.Aggregate("", (s, i) => s + i + " ") + "\n", true); Console.WriteLine("\n\nPRESS <ENTER> TO CONTINUE ..."); while (Console.ReadKey().Key != ConsoleKey.Enter) { } for (var i = 0; i < game.Winners.Count; i++) wins[game.Winners[i]][i]++; for (var i = 0; i < game.Losers.Count; i++) loses[game.Losers[i]][i]++; if (game.Winners.Count == 0) _noWinners++; if (game.Losers.Count == 0) _noLosers++; File.AppendAllText(BufferFilePath, Buffer.ToString()); Console.WriteLine("\n\nPRESS <ESC> TO EXIT OR ANY OTHER KEY TO CONTINUE ..."); Buffer.Clear(); } }