Example #1
0
        /// <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
        }
Example #3
0
        /// <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
        }
Example #4
0
        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;
        }