This repository has been archived on 2022-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
patterns/state/gumballmachinestate/soldstate.d

50 lines
1.2 KiB
D
Raw Permalink Normal View History

2022-11-19 23:40:58 +00:00
module soldstate;
import std.stdio : writeln;
import state, gumballmachine;
class SoldState : State
{
GumballMachine gumballMachine;
this(GumballMachine gumballMachine)
{
this.gumballMachine = gumballMachine;
}
void insertQuarter()
{
2022-11-20 18:09:50 +00:00
writeln("Пожалуйста, подождите, мы уже даем вам жвачку");
2022-11-19 23:40:58 +00:00
}
void ejectQuarter()
{
2022-11-20 18:09:50 +00:00
writeln("Извините, вы уже дернули за рычаг");
2022-11-19 23:40:58 +00:00
}
void turnCrank()
{
2022-11-20 18:09:50 +00:00
writeln("Дважды дернув за рычаг вы не получите другую жвачку!");
2022-11-19 23:40:58 +00:00
}
void dispense()
{
gumballMachine.releaseBall();
if (gumballMachine.getCount() > 0)
{
gumballMachine.setState(gumballMachine.getNoQuarterState());
}
else
{
2022-11-20 18:09:50 +00:00
writeln("Упс, кончились жевательные шарики!");
2022-11-19 23:40:58 +00:00
gumballMachine.setState(gumballMachine.getSoldOutState());
}
}
void refill() {}
override string toString() const
{
2022-11-20 18:09:50 +00:00
return "раздача жевательной резинки";
2022-11-19 23:40:58 +00:00
}
}