namespace Models.Interfaces;

public interface IRules
{    
    public bool NearCellIsValid(Position playerChoicePosition, SortedDictionary<Position, Cell> cells);

    public bool IsCellEmpty(Cell playerChoice);

    public bool IsCellValid(Position playerChoicePosition, List<Position, Cell> cells);
    
    public bool IsZone(Cell playerChoice, List<Position, Cell> cells);

    public bool IsRopePath(Cell playerChoice, HashSet<RopePath> ropePaths);
    
    public bool IsAdjacent(Cell cell1, Cell cell2, List<Position, Cell> cells);
    
    public int HowMany(Cell playerChoice, List<Position, Cell> cells);

    public void SetValueAndPenalty(int valueChoice, Cell playerChoice, List<Position, Cell> cells);
}