using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using QwirkleClassLibrary.Boards;
using QwirkleClassLibrary.Players;
using QwirkleClassLibrary.Tiles;

namespace QwirkleClassLibrary.Games
{
    public interface IRules
    {
        Board CreateBoard();

        TileBag CreateTileBag(int nbSet);

        bool IsMoveCorrect(Tile t, int x, int y, Board b);

        bool CheckExtendedSurroundingCells(ref bool previousTilesFound, Tile tile, int x, int y, int dx, int dy, Board b);

        bool CheckTilesInLine(List<Cell> cells, Board b, int x, int y);

        bool CheckGameOver(Player player);
    }
}
