Example #1
0
 private void dispense()
 {
     if (state == GumballState.SOLD)
     {
         Console.WriteLine("알맹이가 나가고 있습니다.");
         count--;
         if (count <= 0)
         {
             Console.WriteLine("더 이상 알맹이가 없습니다.");
             state = GumballState.SOLDOUT;
         }
         else
         {
             state = GumballState.NOQUARTER;
         }
     }
     else if (state == GumballState.NOQUARTER)
     {
         Console.WriteLine("동전을 넣어주세요.");
     }
     else if (state == GumballState.SOLDOUT)
     {
         Console.WriteLine("매진입니다.");
     }
     else if (state == GumballState.HASQUARTER)
     {
         Console.WriteLine("알맹이가 나갈 수 없습니다.");
     }
 }
Example #2
0
 public GumballMachine(int count)
 {
     this.count = count;
     if (count > 0)
     {
         state = GumballState.NOQUARTER;
     }
 }
Example #3
0
        public GumballMachine(int count)
        {
            //Initializing States
            HAS_QUARTER = new HasQuarterState(this);
            NO_QUARTER  = new NoQuarterState(this);
            SOLD        = new SoldState(this);
            SOLD_OUT    = new SoldOutState(this);
            WINNER      = new WinnerState(this);

            //State when Created.
            this.count = count;
            if (count > 0)
            {
                State = NO_QUARTER;
            }
        }
Example #4
0
 public void EjectQuarter()
 {
     if (state == GumballState.HASQUARTER)
     {
         Console.WriteLine("동전이 반환됩니다.");
         state = GumballState.NOQUARTER;
     }
     else if (state == GumballState.NOQUARTER)
     {
         Console.WriteLine("동전을 넣어주세요.");
     }
     else if (state == GumballState.SOLD)
     {
         Console.WriteLine("이미 알맹이를 뽑으셨습니다.");
     }
     else if (state == GumballState.SOLDOUT)
     {
         Console.WriteLine("동전을 넣지 안으셨습니다. 동전이 반환되지 안습니다.");
     }
 }
Example #5
0
 public void InsertQuarter()
 {
     if (state == GumballState.HASQUARTER)
     {
         Console.WriteLine("동전은 한 개만 넣어주세요.");
     }
     else if (state == GumballState.NOQUARTER)
     {
         state = GumballState.HASQUARTER;
         Console.WriteLine("동전을 넣으셨습니다.");
     }
     else if (state == GumballState.SOLDOUT)
     {
         Console.WriteLine("매진되었습니다. 다음 기회에 이용해 주세요");
     }
     else if (state == GumballState.SOLD)
     {
         Console.WriteLine("잠깐만 기다려 주세요. 알맹이가 나가고 있습니다.");
     }
 }
Example #6
0
 public void TurnCrank()
 {
     if (state == GumballState.SOLD)
     {
         Console.WriteLine("손잡이를 한번만 돌려주세요");
     }
     else if (state == GumballState.NOQUARTER)
     {
         Console.WriteLine("동전을 넣어주세요.");
     }
     else if (state == GumballState.SOLDOUT)
     {
         Console.WriteLine("매진되었습니다.");
     }
     else if (state == GumballState.HASQUARTER)
     {
         Console.WriteLine("손잡이를 돌리셨습니다.");
         state = GumballState.SOLD;
         dispense();
     }
 }
Example #7
0
 public void Refill(int balls)
 {
     count += balls;
     state  = GumballState.NOQUARTER;
 }
Example #8
0
 //Set State
 public void SetGumballState(GumballState state)
 {
     State = state;
 }