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(); }
/// <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)); }
public Drink(DrinkKind kind) { this.Kind = kind; }
/// <summary> /// 在庫から1本取り出す /// </summary> /// <returns></returns> public Drink TakeOutDrink(DrinkKind kind) { drinks[kind].Decrement(); return(new Drink(kind)); }
/// <summary> /// 在庫切れかどうか /// </summary> /// <returns></returns> public bool IsEmpty(DrinkKind kind) { return(drinks[kind].IsEmpty()); }
/// <summary> /// 在庫数を取得する /// </summary> /// <returns></returns> public int Count(DrinkKind kind) { return(drinks[kind].Count()); }
/// <summary> /// 飲み物をストックする /// </summary> /// <param name="kind">飲み物の種類</param> /// <param name="stockOfNumber">ストックする本数(デフォルト=1)</param> public void Stock(DrinkKind kind, int stockOfNumber = 1) { drinks[kind].Add(stockOfNumber); }