Exemplo n.º 1
0
        private void RestartGame_Executed(object sender, ExecutedRoutedEventArgs eventArgs)
        {
            if (ScoreManager.Current.ScoreValue > 0)
            {
                var result = ThreeButtonsMessageBox.Show("Отправить результат и перезапустить игру?",
                                                         "Перезапуск", "Отправить", "Заново", "Отмена");

                if (result == MessageBoxResult.Cancel)
                {
                    return;
                }
                if (result == MessageBoxResult.Yes)
                {
                    // Отправка результата.
                    EnterNameComponent.Show((s, ee) => {
                        ScoreManager.EndGame(false);
                        ScoreManager.Load();
                        int place   = ScoreManager.GetPlace();
                        string text = (place > 0) ? "Вы на " + place + " месте в рейтинге" : "";
                        HiscoreComponent.Show(ScoreManager.HiScores, text);
                        RestartGame();
                    });
                    return;
                }
            }
            // Перезапуск игры
            RestartGame();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Проверка окончания игры.
        /// </summary>
        private void CheckGameOver()
        {
            for (int j = 0; j < GameTable.Foundations * 2; j++)
            {
                if (!_foundationViews[j].Foundation.IsFinished())
                {
                    return;
                }
            }
            // Игра окончена - выводим финальную заставку.
            // Откатываем ходы в самое начало (не сбрасывая счётчики)
            _table.RestartGame(false);
            // Показываем в фоне историю действий игрока.
            var dt = new DispatcherTimer();

            dt.Tick += (s, ee) => {
                _table.Redo();
                RefreshView();
            };
            dt.Interval = new TimeSpan(500 * 10000);
            dt.Start();
            // Запрашиваем имя игрока.
            EnterNameComponent.Show((s, ee) => {
                _table.EndGame(true);
                // Показываем
                ScoreManager.Load();
                int place   = ScoreManager.GetPlace();
                string text = (place > 0) ? "Вы на " + place + " месте в рейтинге" : "";
                HiscoreComponent.Show(ScoreManager.HiScores, text);
                dt.Stop();
                NewGame();
            });
        }
Exemplo n.º 3
0
 private void Statistics_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     ScoreManager.Load();
     HiscoreComponent.Show(ScoreManager.HiScores);
 }