//Выдача сдачи минимальным количеством монет, если это возможно
        public Dictionary <uint, uint> getDelivery(ref bool success)
        {
            var tmp = wallet.getCoins(deposit, ref success);

            if (success)
            {
                return(tmp);
            }
            wallet.setCoins(tmp);
            return(new Dictionary <uint, uint>());
        }
Пример #2
0
        public int buyFood(string f)//Процесс покупки еды
        {
            if (vendingMachine == null)
            {
                return(4);                       //Покупатель не у автомата
            }
            if (!(foodPrice.ContainsKey(f)))
            {
                return(3);                            //В автомете нет желаемой еды и никогда не было
            }
            if ((wallet.getMoneyCount() + vendingMachine.getDepositValue()) < foodPrice[f])
            {
                return(2);                                                                           //Покупателю не хватает денег на еду
            }
            bool b = true;

            vendingMachine.addDeposit(wallet.getCoins(foodPrice[f] - vendingMachine.getDepositValue(), ref b)); //Прибавить к депозиту достаточное количество денег
            int i = vendingMachine.getFood(f);                                                                  //Купить и забрать еду

            if (i == 0)                                                                                         //Получает еду
            {
                if (!(foodCount.ContainsKey(f)))
                {
                    foodCount.Add(f, 1);
                }
                else
                {
                    foodCount[f]++;
                }
            }
            bool delivery = false;

            vendingMachine.getDelivery(ref delivery);//Забрать сдачу
            if (!delivery && i == 0)
            {
                return(1);
            }
            return(i);
        }