You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.2 KiB
34 lines
1.2 KiB
using System.Collections.ObjectModel;
|
|
using QwirkleClassLibrary.Boards;
|
|
using QwirkleClassLibrary.Players;
|
|
using QwirkleClassLibrary.Tiles;
|
|
|
|
namespace QwirkleClassLibrary.Games
|
|
{
|
|
|
|
/// <summary>
|
|
/// This interface is used for all methods related to the player, such as the moves he can make.
|
|
/// </summary>
|
|
public interface IPlayer
|
|
{
|
|
public Player CreatePlayer(string playerTag);
|
|
|
|
public string SetNextPlayer();
|
|
|
|
public string SetFirstPlayer(ReadOnlyCollection<Player> playingPlayers);
|
|
|
|
public bool PlaceTile(Player player, Tile tile, int x, int y);
|
|
|
|
public bool DrawTiles(Player player);
|
|
|
|
public bool SwapTiles(Player player, List<Tile> tilesToSwap);
|
|
|
|
public int GetPlayerScore(Player player, ReadOnlyCollection<Cell> cellsPlayed, Board b);
|
|
|
|
int CalculateAdjacentScore(Cell cell, Board b, ReadOnlyCollection<Cell> cellsPlayed, Tuple<int, int> orientation,
|
|
ref int nbCellsInLine, ref int nbCellsInPerpLine, ref List<Cell> checkedCells);
|
|
|
|
int CalculateLineScore(ReadOnlyCollection<Cell> cellsPlayed, Cell cell, Tuple<int, int> direction,
|
|
Tuple<int, int> orientation, ref int nbCellsInLine, ref int nbCellsInPerpLine, ref List<Cell> checkedCells);
|
|
}
|
|
} |