#pragma once #include #include #include class Queues { enum COMMAND { NONE, SA, SB, SS, PA, PB, RA, RB, RR, RRA, RRB, RRR }; std::map commandMap; public: Queues(); ~Queues(); void step(); void stepBack(); void start(const std::list &start); std::list commands; std::list executedCommands; std::list queueA; std::list queueB; private: void _executeCommand(const std::string &cmd); void _executeReverseCommand(const std::string &cmd); std::list _normalize(const std::list &numbers); void _sa(); void _sb(); void _ss(); void _pa(); void _pb(); void _ra(); void _rb(); void _rr(); void _rra(); void _rrb(); void _rrr(); };