private void OnGameEnd(object sender, GameScoreEventArgs e) { Timer.Stop(); var topOfPlayers = new List <string>(10); using (var connection = new SqliteConnection(ConnectionString)) { connection.Open(); var insertCommand = connection.CreateCommand(); insertCommand.CommandText = @" INSERT INTO records (playerName, score) VALUES ($playerName, $score); "; insertCommand.Parameters.AddWithValue("$playerName", _playerName); insertCommand.Parameters.AddWithValue("$score", e.GameScore); insertCommand.ExecuteNonQuery(); var selectCommand = connection.CreateCommand(); selectCommand.CommandText = @" SELECT playerName, score FROM records ORDER BY score DESC LIMIT 10; "; using (var reader = selectCommand.ExecuteReader()) { while (reader.Read()) { topOfPlayers.Add($"{reader.GetString(0)} - {reader.GetString(1)}"); } } } MessageBox.Show($"Your score is: {e.GameScore}.", "Game over", MessageBoxButtons.OK); var dialogResult = MessageBox.Show(string.Join("\n", topOfPlayers), "Player's top", MessageBoxButtons.OK); if (dialogResult == DialogResult.OK) { _gameModel.Clear(); Timer.Start(); } }
private void ChangeTimerInterval(object sender, GameScoreEventArgs e) { switch (e.GameScore) { case 0: Timer.Interval = 450; break; case 50: Timer.Interval = 325; break; case 100: Timer.Interval = 200; break; case 200: Timer.Interval = 100; break; default: break; } }