module command.remoteundo.app; import command.remoteundo.remotecontrol; import command.remoteundo.lightoncommand; import command.remoteundo.lightoffcommand; import command.remoteundo.light; import command.remoteundo.ceilingfan; import command.remoteundo.ceilingfanoffcommand; import command.remoteundo.ceilingfanoncommand; import command.remoteundo.garagedoorupcommand; import command.remoteundo.garagedoordowncommand; import command.remoteundo.garagedoor; import command.remoteundo.stereoonwithcdcommand; import command.remoteundo.stereo; import command.remoteundo.stereooffcommand; import std.stdio : writeln; void main() { auto remoteControl = new RemoteControl(); auto livingRoomLight = new Light("Living Room"); // auto kitchenLight = new Light("Kitchen"); // auto ceilingFan = new CeilingFan("Living Room"); // auto garageDoor = new GarageDoor("Garage"); // auto stereo = new Stereo("Living Room"); remoteControl.setCommand(0, new LightOnCommand(livingRoomLight), new LightOffCommand(livingRoomLight)); // remoteControl.setCommand(1, new LightOnCommand(kitchenLight), new LightOffCommand(kitchenLight)); // remoteControl.setCommand(2, new CeilingFanOnCommand(ceilingFan), new CeilingFanOffCommand(ceilingFan)); // remoteControl.setCommand(3, new StereoOnWithCDCommand(stereo), new StereoOffCommand(stereo)); // remoteControl.setCommand(4, new GarageDoorUpCommand(garageDoor), new GarageDoorDownCommand(garageDoor)); // writeln(remoteControl); remoteControl.onButtonWasPushed(0); remoteControl.offButtonWasPushed(0); writeln(remoteControl); remoteControl.undoButtonWasPushed(); remoteControl.offButtonWasPushed(0); remoteControl.onButtonWasPushed(0); writeln(remoteControl); remoteControl.undoButtonWasPushed(); // remoteControl.onButtonWasPushed(1); // remoteControl.offButtonWasPushed(1); // remoteControl.onButtonWasPushed(2); // remoteControl.offButtonWasPushed(2); // remoteControl.onButtonWasPushed(3); // remoteControl.offButtonWasPushed(3); // remoteControl.onButtonWasPushed(4); // remoteControl.offButtonWasPushed(4); }