javass/jass/Player.java
2019-09-30 12:55:33 +02:00

68 lines
1.4 KiB
Java

package ch.epfl.javass.jass;
import java.util.Map;
import ch.epfl.javass.jass.Card.Color;
/**
* An interface that represent a player of a game of Jass.
* @author Charles BEAUVILLE
* @author Celia HOUSSIAUX
*
*/
public interface Player {
/**
* A method to choose which card to play
* @param state the current TurnState of the game
* @param hand the current hand of the Player
* @return the card to be played
*/
abstract Card cardToPlay(TurnState state, CardSet hand);
/**
* Associates the Players with their name
* @param ownId the iD of the Player
* @param playerNames a map that associates the PlayerId with the names of the players
*/
default void setPlayers(PlayerId ownId, Map<PlayerId, String>playerNames) {
}
/**
* Updates the hand of the player with the new current hand
* @param newHand
*/
default void updateHand(CardSet newHand) {
}
/**
* Updates the trump color of the player with the new current trump
* @param trump
*/
default void setTrump(Color trump) {
}
/**
* Updates the trick of the player with the new current trick
* @param newTrick
*/
default void updateTrick(Trick newTrick) {
}
/**
* Updates the score of the player with the new current score
* @param score
*/
default void updateScore(Score score) {
}
/**
* Sets the winning of the game
* @param winningTeam the team that won the game
*/
default void setWinningTeam(TeamId winningTeam) {
}
}