Пример #1
0
        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();
            }
        }
Пример #2
0
        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;
            }
        }