package game;

/**
 * @author Thibault Podevin avec l'aide de Martin Robinson
 *
 */
public class TabToInt {

	/**
	 *  Tableau contenu dans un INT de 32 bit
	 */
	private int data;

	/**
	 * @param nub Set le bit de base changer
	 */
	public TabToInt(int nub){
		data = nub;
	}

	/**
	 * @return retourne une instance vide de TabToInt
	 */
	public static TabToInt fromEmpty(){
		return new TabToInt(0);
	}

	/**
	 * @param indice quel bit changer pour 1
	 * @return retourne une instance modifier de TabToInt
	 */
	public TabToInt set(int indice){
		return new TabToInt(data|(1<<indice));
	}

	/**
	 * @param indice quel bit changer pour 0
	 * @return retourne une instance modifier de TabToInt
	 */
	public TabToInt reSet(int indice){
		return new TabToInt(data&~(1<<indice));
	}

	/**
	 * @param i indice du bit � recevoir dans le int
	 * @return la valeur boolean du bit rechercher
	 */
	public boolean get(int i){
		return (data&(1<<i))!=0;
	}

	/**
	 * @return Le tableau, ou plus pr�cisement le Int Modifier
	 */
	public int getData(){
		return data;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	public String toString(){
		String result = new String();
		for (int i=0; i<32; i++)
		{
			result += (get(i)?'1':'0') + ",";
		}
		return result;
	}


	public static void main(String[] args) {
		TabToInt bob = new TabToInt(0);
		System.out.println(bob.toString());

		System.out.println(bob.set(0).toString()+"\n");
		System.out.println(bob.set(0).getData());
	}

}
