/*
* 12:46:06
* vjanssen
*/
package a0902d_f_Philosophen_VORLAGE;

import java.awt.Graphics;

public class GabelSteuerung
{
	private static Gabel[] gabel = 
	{
		new Gabel ("Gabel 0", 80,  0),
		new Gabel ("Gabel 1", 180, 0),
		new Gabel ("Gabel 2", 230, 50),
		new Gabel ("Gabel 3", 230, 150),
		new Gabel ("Gabel 4", 180, 200),
		new Gabel ("Gabel 5", 80,  200),
		new Gabel ("Gabel 6", 30,  150),
		new Gabel ("Gabel 7", 30,  50) 	
	};

	private boolean [] sichtbar;

	public GabelSteuerung()
	{
		sichtbar = new boolean[8];
	
		for (int i=0; i<sichtbar.length; i++)
		{
			sichtbar[i] = true;
		}
	}

	public boolean getGabeln(Philosoph philosoph)
	{
		int pNummer = philosoph.getNummer();
		int linkeGabel = pNummer - 1;
		int rechteGabel = pNummer;
		if (linkeGabel < 0) linkeGabel = 7;
		
		if (sichtbar[linkeGabel] && sichtbar[rechteGabel])
		{
			try {Thread.sleep(1000);}				//Wartezeit provoziet Fehlverhalten
			catch (InterruptedException ie){}			
			
			sichtbar[linkeGabel] = false;
			sichtbar[rechteGabel] = false;
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public void setGabeln (Philosoph philosoph)
	{
		int pNummer = philosoph.getNummer();
		int linkeGabel = pNummer - 1;
		int rechteGabel = pNummer;
		if (linkeGabel < 0) linkeGabel = 7;
		
		sichtbar[linkeGabel] = true;
		sichtbar[rechteGabel] = true;
	}
	
	public void drawObjekt(Graphics g)
	{
		for (int i=0; i<gabel.length; i++)
		{
			gabel[i].zeichne(g, sichtbar[i]);
		}
	}
}
