/**
*Programme cree par The Clusters
*Interface du plateau du jeu "Chkoba"
*Toutes les interfaces pour le reseau
*doivent heriter de Remote
*@author The Clusters
*@version 1.0
**/

package chkoba;
import chkoba.*;
import java.rmi.*;
import java.util.*;

/**
*	Interface Plateau
**/

public interface IPlateau extends Remote
{
	//Methodes
	
	/**
	* Methode reseaux
	*/
	public void ajouteJoueur( String nom) throws RemoteException;
	public void ajouteJoueursIA() throws RemoteException;

	/**
	* Methodes normales
	*/
	public void jeuADeux( ArrayList<Integer> manuels ) throws RemoteException;
	public void jeuAQuatre( ArrayList<Integer> team1, ArrayList<Integer> team2, ArrayList<Integer> manuels ) throws RemoteException;
	public ICarte piocher( ) throws RemoteException ;
	public boolean resteCartes() throws RemoteException ;
	public void poser( ICarte c ) throws RemoteException ;
	public void prendre (ICarte main, ArrayList<ICarte> tapis) throws RemoteException;
	public void effacerPlis() throws RemoteException;
	
	//Accesseurs
	
	public void setPioche ( IPioche pioche) throws RemoteException ;
	public void setTapis( ITapis tapis) throws RemoteException ;
	public void setJoueurCourant( ) throws RemoteException ;
	public void setNbJoueursMan( int n ) throws RemoteException ;
	public void setEquipes( ArrayList<Integer> list) throws RemoteException ;
	
	public void majDernierPli(ICarte cMain,ArrayList<ICarte> cTapis) throws RemoteException;
	public ArrayList<ICarte> getDernierPlis() throws RemoteException;
	public IPioche getPioche( ) throws RemoteException ;
	public int getNbJoueursMan() throws RemoteException ;
	public ArrayList<IJoueur> getJoueurs( ) throws RemoteException ;
	public ITapis getTapis( ) throws RemoteException ;
	public IJoueur getJoueurCourant( ) throws RemoteException ;
	public ArrayList<IJoueur> getEquipe1() throws RemoteException ;
	public ArrayList<IJoueur> getEquipe2() throws RemoteException ;
	public ArrayList<IJoueurA> getJoueursA() throws RemoteException;
	public ArrayList<IJoueurM> getJoueursM() throws RemoteException;
	
	//Affichage
	
	public String affiche( ) throws RemoteException ;
}