using System.Collections.ObjectModel; using QwirkleClassLibrary.Boards; using QwirkleClassLibrary.Players; using QwirkleClassLibrary.Tiles; namespace QwirkleClassLibrary.Games; /// /// This interface is used for all methods related to the player, such as the moves he can make. /// public interface IPlayer { public Player CreatePlayer(string playerTag); public string SetNextPlayer(); public string SetFirstPlayer(ReadOnlyCollection playingPlayers); 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, Tuple orientation, ref int nbCellsInLine, ref int nbCellsInPerpLine, ref List checkedCells); int CalculateLineScore(ReadOnlyCollection cellsPlayed, Cell cell, Tuple direction, Tuple orientation, ref int nbCellsInLine, ref int nbCellsInPerpLine, ref List checkedCells); }