// $Id: Carpenter.java,v 2.3 2003-05-07 19:17:45+09 kaiya Exp $ import java.util.*; class Carpenter extends Thread{ private WorkPlace wp; private Chisel[] cls; private Hammer[] hrs; private Random r=new Random(); private int done=0; private int hasChisel=(-1); private int hasHammer=(-1); Carpenter(WorkPlace wp, Chisel[] cls, Hammer[] hrs){ this.wp=wp; this.cls=cls; this.hrs=hrs; } public void run(){ while(true){ try{ sleep(r.nextInt(1000)); }catch(Exception e){} if(chisel() && hammer()){ done++; cls[hasChisel].release(); hrs[hasHammer].release(); hasChisel=hasHammer=(-1); wp.repaint(); continue; } if(!hammer()){ int i; for(i=0; i=0; } boolean hammer(){ return hasHammer>=0; } }