/// <summary> /// Реализация броска монеты /// </summary> /// <param name="_headsOrTailsModel">Модель</param> /// <param name="_statistic">Ссылка на статистику</param> public TossCoin(IHeadsOrTailsModel _headsOrTailsModel, Statistic _statistic) { headsOrTailsModel = _headsOrTailsModel; statistic = _statistic; ThrownCointAnimation = new AnimationSprite(); ThrownCointAnimation.AnimationStoped += (sender, sprite) => { SideOfCoin = sprite.HeadsOrTails; statistic.AllCoinThrowCount++; if (sprite.HeadsOrTails == HeadsOrTailsEnum.Heads) statistic.HeadsCount++; else { statistic.TailsCount++; } }; #region Команда броска монеты var Command = new ViewModelCommand(ThrownCointAnimation, "IsStopped"); // Бросить монету Command.Action = (o) => ThrowCoinMethod(); //Выполнятся может когда анимация остановлена Command.Predicate = o => ThrownCointAnimation.IsStopped; ThrowCoinCommand = Command; #endregion }
public TossSeveralCoins(IHeadsOrTailsModel _headsOrTailsModel, Statistic _statistic) { headsOrTailsModel = _headsOrTailsModel; statistic = _statistic; CollectionOfFlippedCoins = new ObservableCollection<HeadsOrTailsEnum>(); #region Команда броска нескольких монет var Command = new ViewModelCommand(this, "ThrowCount"); Command.Action = o => ThrowSeveralCoin(); Command.Predicate = o => ThrowCount > 0; // Если больше чем 0 бросков ThrowSeveralCoinCommand = Command; #endregion }
/// <summary> /// Реализация угадования броска монеты /// </summary> /// <param name="_headsOrTailsModel">Модель</param> /// <param name="_statistic">Ссылка на статистику</param> public GuessToss(IHeadsOrTailsModel _headsOrTailsModel, Statistic _statistic) { headsOrTailsModel = _headsOrTailsModel; statistic = _statistic; GuessCointAnimation = new AnimationSprite(); GuessCointAnimation.AnimationStoped += (sender, sprite) => { throw new Exception(); }; #region Команда броска угадывания монет var Command = new ViewModelCommand(this, "GuessSideOfCoin"); Command.Action = o => TryToGuess(); Command.Predicate = o => GuessSideOfCoin != null; // Если монета выбрана TryToGuessCommand = Command; #endregion }
public Statistic() { var Command = new ViewModelCommand(); Command.Predicate = (o) => true; Command.Action = (o) => { HeadsCount = 0; TailsCount = 0; AllCoinThrowCount = 0; GuessCoinCount = 0; CorrectlyGuessCoinCount = 0; }; ResetData = Command; loaderSaver = new LoaderSaver.LoaderSaver(); var data = loaderSaver.Load(); HeadsCount = data.HeadsCount ; TailsCount = data.TailsCount ; AllCoinThrowCount = data.AllCoinThrowCount ; GuessCoinCount = data.GuessCoinCount ; CorrectlyGuessCoinCount = data.CorrectlyGuessCoinCount; }