import java.util.*;

/**
 * 
 */
public class Individu {

	/**
 	* argent que l'individu possède
 	*/
	private ArrayList<Billet> monnaie;

	/**
 	* nom de l'individu
 	*/
	private String nom;

    /**
     * Constructeur
     */
    public Individu() {
    	this.monnaie = new ArrayList<Billet>();
    }

    /**
     * Constructeur en prenant en comptye que l'individu possède déjà de l'argent
     */
    public Individu(ArrayList<Billet> argentPosséder) {
    	this.monnaie = argentPosséder.clone();
    }

    /**
     * Billet b: le billet a ajouté
     * Ajoute le billet à l'argent de l'individu
     */
    public void add(Billet b){
    	monnaie.add(b);
    }

    /**
     * Billet b: le billet a vérifier
     * Vérifie si l'individu possède ce billet
     * return: true/false
     */
    public Boolean possède(Billet b){
    	if(this.monnaie.contains(b)){
    		return true;
    	}else{
    		return false;
    	}
    }

    /**
     * Billet b: le billet a retirer
     * Retire le billet si l'individu possède ce billet
     * return: true/false
     */
    public Boolean delete(Billet b){
    	if(this.possède(b)){
    		monnaie.remove(b);
    		return true;
    	}else{
    		System.out.println("L'utilisateur ne possède pas ce type de billet")
    		return false;
    	}
    }

    /**
     * 
     */
    public void mv(Individu payer, Denomination d){
    	//a coder
    }

    /**
     * 
     */
    public void payer (Individu payer, ArrayList<Billet> argentDonné){
    	Iterator<Billet> iterateurArgent = argentDonné.iterator();
    	Boolean aDeQuoiPayer;
    	while(iterateurArgent.hasNext()){
    		Billet argent = iterateurArgent.next();
    		aDeQuoiPayer = this.monnaie.delete(argent);
    		if(aDeQuoiPayer){
    			payer.monnaie.add(argent);
    		}
    	}

    }

}