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);
} | | | | |