Beispiel #1
0
        private void BuyDrink(DrinkKind kind)
        {
            Drink drink = machine.BuyDrink(kind);

            if (drink == null)
            {
                MessageBox.Show($"買えませんでした\n入金金額:{machine.DisplayCache()}");
                return;
            }

            MessageBox.Show($"{drink.Kind.GetEnumDescription()}を買いました");

            lblMoney.Text = machine.DisplayCache().ToString();
        }
Beispiel #2
0
        /// <summary>
        /// 飲み物を買う
        /// </summary>
        /// <param name="kind"></param>
        /// <returns></returns>
        public Drink BuyDrink(DrinkKind kind)
        {
            // お金の都合で購入出来ない状態
            if (!coinMech.IsPurchase(kind.GetPrice()))
            {
                return(null);
            }

            // 在庫が無かったら何も無し
            if (rack.IsEmpty(kind))
            {
                return(null);
            }

            // ドリンクの代金分、プール金から引く
            coinMech.Pay(kind.GetPrice());

            // 種類を渡すだけで、飲み物が買える
            return(rack.TakeOutDrink(kind));
        }
Beispiel #3
0
 public Drink(DrinkKind kind)
 {
     this.Kind = kind;
 }
Beispiel #4
0
 /// <summary>
 /// 在庫から1本取り出す
 /// </summary>
 /// <returns></returns>
 public Drink TakeOutDrink(DrinkKind kind)
 {
     drinks[kind].Decrement();
     return(new Drink(kind));
 }
Beispiel #5
0
 /// <summary>
 /// 在庫切れかどうか
 /// </summary>
 /// <returns></returns>
 public bool IsEmpty(DrinkKind kind)
 {
     return(drinks[kind].IsEmpty());
 }
Beispiel #6
0
 /// <summary>
 /// 在庫数を取得する
 /// </summary>
 /// <returns></returns>
 public int Count(DrinkKind kind)
 {
     return(drinks[kind].Count());
 }
Beispiel #7
0
 /// <summary>
 /// 飲み物をストックする
 /// </summary>
 /// <param name="kind">飲み物の種類</param>
 /// <param name="stockOfNumber">ストックする本数(デフォルト=1)</param>
 public void Stock(DrinkKind kind, int stockOfNumber = 1)
 {
     drinks[kind].Add(stockOfNumber);
 }