using System.Collections.ObjectModel; using QwirkleClassLibrary.Boards; using QwirkleClassLibrary.Players; using QwirkleClassLibrary.Tiles; namespace QwirkleClassLibrary.Games; public interface IPlayer { public Player CreatePlayer(string playerTag); public string SetNextPlayer(); public string SetFirstPlayer(); public bool PlaceTile(Player player, Tile tile, int x, int y); public bool DrawTiles(Player player); public bool SwapTiles(Player player, List tilesToSwap); public int GetPlayerScore(Player player, ReadOnlyCollection cellsPlayed, Board b); int CalculateAdjacentScore(Cell cell, Board b, ReadOnlyCollection cellsPlayed, int cellsX, int cellsY); int CalculateLineScore(Cell cell, int dx, int dy, Board b, int cellsX, int cellsY, int nbCellsPlayed); }