module soldstate; import std.stdio : writeln; import state, gumballmachine; class SoldState : 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.getNoQuarterState()); } else { writeln("Упс, кончились жевательные шарики!"); gumballMachine.setState(gumballMachine.getSoldOutState()); } } void refill() {} override string toString() const { return "раздача жевательной резинки"; } }