package server;

import java.rmi.RemoteException;
import java.rmi.Remote;

import spiel.Spielzug;


/**
 *  Ein ServerSpielKommunikator wird individuell für jeden Mitspieler jeder Partie
 *  gebildet und dient der Identifikation der Mitspieler.
 *
 *  Neu in 1.2: macheZug wirft nun Exceptions statt des Rückgabewerts 
 * 
 *  @version 1.2
 *  @author ProgPrak-Team
 */
public interface ServerSpielKommunikator extends Remote {
	/**
	 * Der Spielzug zug wird an den Spiel-Server übermittelt
	 * @param zug gemachter Spielzug
	 * @throws NichtDranException wenn der zugehörige Spieler
	 * gerade nicht an der Reihe ist
	 * @throws UngueltigerZugException wenn der Zug vom Server
	 * nicht ausgeführt wird 
	 */
	public void macheZug(Spielzug zug) throws RemoteException, NichtDranException, UngueltigerZugException;
	
        /**
	 * Methode um die Spielpartie zu verlassen
	 */
	public void spielVerlassen() throws RemoteException;
}
