/// <summary> /// Ends current round. /// </summary> void EndGame() { Pause(); HardPause = true; Program.Debug(LogLevel.Error, "Game ended, hits: {0}, misses: {1}", clicks.Where(x => x.Score).Count(), clicks.Where(x => !x.Score).Count()); String clicks_str = ""; String clicks_stats = ""; int index = 0; foreach (Click c in clicks) { index++; clicks_str += String.Format("Click x:{0}, y:{1}, hit: {2}, distance to nearest target: {3}, target lifetime: {4}\n", c.X, c.Y, c.Score, c.Distance, c.TargetLiveTime ); clicks_stats += String.Format("Strzał#{0} x:{1}, y:{2}, trafienie: {3}{4}{5}\n", index, c.X, c.Y, (c.Score ? "Tak":"Nie"), (!c.Score ? String.Format(", dystans do najbliższego celu: {0}", c.Distance) : ""), (c.TargetLiveTime != TimeSpan.FromTicks(0) ? String.Format(", czas życia celu: {0}", c.TargetLiveTime) : "") ); } Program.Debug(LogLevel.Error, clicks_str); FileLogger fl; fl = new FileLogger(); string text = String.Format("Czas gry: {0}\nTrafienia: {1}\nChybienia: {2}\nCelność: {3}%", ElapsedTime, GetHits(), GetMisses(), ((Program.game.GetHits() != 0 || Program.game.GetMisses() != 0) ? 100 * Program.game.GetHits() / (Program.game.GetHits() + Program.game.GetMisses()) : 0) ); Task.Run(() => fl.WriteData(String.Format("{0}.txt", DateTime.Now.ToString("dd_MM_yyyy_HH-mm-ss")), "Data: {0}\nTryb gry: {1}\n{2}{3}{4}{5}{6}{7}\n{8}", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), type.ToString(), String.Format("Poruszające się cele: {0}\n", MovingTargets ? "Tak" : "Nie"), type == GameType.ScoreTrial ? (String.Format("Zmieniające wielkość cele: {0}\n", ResizableTargets ? "Tak" : "Nie")) : "", type == GameType.ScoreTrial ? String.Format("Czas życia celu: {0}\n", TimeSpan.FromMilliseconds(TargetLifetime * (1000 / 30.0))) : "", String.Format("Ilość celów na start: {0}\n", StartingTargets), type == GameType.ScoreTrial ? String.Format("Czas pojawiania się kolejnych celów: {0}\n", TargetAddTime) : "", text, clicks_stats )); var box = MessageBox.Show(text, "Koniec gry!", MessageBoxButtons.OK); if (box == DialogResult.OK) { gf1.ShowMenu(); } }
static void Main() { LogLevel = LogLevel.Error; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); gf = new GameForm(); StartGame(new TimeSpan(0), false, false, 0, 0, new TimeSpan(0)); gf.ShowMenu(); Application.Run(gf); }