biquadris / specialAction.h
specialAction.h
Raw
/*
    Blind, Heavy class module
    
	stores special actions (Blind and Heavy) and changes method implementation
*/

#ifndef _SPECIALACTION_H_
#define _SPECIALACTION_H_

#include "boardDecorator.h"

class Board;
class BiquadrisModel;

class Blind: public BoardDecorator {
    public:
        Blind(std::shared_ptr<Board> component, BiquadrisModel *model);
        char getType(int row, int col) override;
};

class Heavy: public BoardDecorator {
    public:
        Heavy(std::shared_ptr<Board> component, BiquadrisModel *model);
        void move(char direction, int n, int weight) override;
        void rotate(bool isClockwise, int n, int weight) override;
};

#endif