patterns/state/gumballmachinewinnerstate/winnerstate.d

60 lines
1.6 KiB
D
Raw Permalink Normal View History

2022-12-05 07:38:19 +00:00
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 "раздаем два жевательных шарика за твою четвертак, потому что ТЫ ПОБЕДИТЕЛЬ!";
}
}