patterns/state/gumballmachinewinnerstate/winnerstate.d

60 lines
1.6 KiB
D
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module winnerstate;
import std.stdio : writeln;
import state, gumballmachine;
class WinnerState : State
{
GumballMachine gumballMachine;
this(GumballMachine gumballMachine)
{
this.gumballMachine = gumballMachine;
}
void insertQuarter()
{
writeln("Пожалуйста, подождите, мы уже даем вам жвачку");
}
void ejectQuarter()
{
writeln("Пожалуйста, подождите, мы уже даем вам жвачку");
}
void turnCrank()
{
writeln("Дважды дернув за рычаг вы не получите другую жвачку!");
}
void dispense()
{
gumballMachine.releaseBall();
if (gumballMachine.getCount() == 0)
{
gumballMachine.setState(gumballMachine.getSoldOutState());
}
else
{
gumballMachine.releaseBall();
writeln("ТЫ ПОБЕДИТЕЛЬ! У тебя есть два жевательных шарика на твой четвертак");
if (gumballMachine.getCount() > 0)
{
gumballMachine.setState(gumballMachine.getNoQuarterState());
}
else
{
writeln("Упс, кончились шарики!");
gumballMachine.setState(gumballMachine.getSoldOutState());
}
}
}
void refill() {}
override string toString() const
{
return "раздаем два жевательных шарика за твою четвертак, потому что ТЫ ПОБЕДИТЕЛЬ!";
}
}