#ifndef _GRID_H_
#define _GRID_H_

#include "piece.h"
#include <cstdio>
#include <iostream>
#include <string>
#include <vector>

using std::string;
using std::cout;
using std::endl;
using std::vector;

class Grid
{
    private:
		int rows;
		int cols;
		int numOfMoves;
		int lastMoved;
		int lastMoveDir;
		vector<Piece> pieces;
		vector<string> moves;
		string *board;

    public:
        Grid(void);
        /* we do not need a copy constructor since the deault shallow copy will be fine */
        //Grid(const Grid &);

		int *getRows(void);
		int *getCols(void);
		int *getNumOfMoves(void);
		vector<Piece> *getPieces(void);

		void setRows(int);
		void setCols(int);
		void addMove(string);

		void markPiecesPos(void);
};

#endif