// HorseRace.java// Written by Julian Devlin, 8/97, for the text book// "Introduction to Probability," by Charles M. Grinstead & J. Laurie Snellimport java.applet.Applet;import java.awt.*;public class HorseRace	extends java.applet.Applet{	TextArea disp;		// Area to display HT		Panel contp;		// Panel for user controls		Label numl;			// Controls	TextField num;	Button go;		GeneralSimulation gs;		// Initialize applet	public void init()	{			numl = new Label("No. of races");			// Create controls		num = new TextField("30", 4);		go = new Button("Go");				contp = new Panel();				// Set up control panel		contp.add(numl);							contp.add(num);		contp.add(go);		contp.setLayout(new FlowLayout());				disp = new TextArea(10, 15);		// Create display area				resize(300,300);					// Set up applet		setLayout(new FlowLayout());		add(disp);		add(contp);				validate();				float probs[] = {.3f, .4f, .2f, .1f};		String names[] = {"Acorn", "Balky", "Chestnut", "Dolby"};				gs = new GeneralSimulation(probs, names);	}		// Handle events	public boolean handleEvent(Event evt)	{		if (evt.target instanceof Button)		{			if (evt.target == go && evt.id == Event.ACTION_EVENT)	// When button is clicked			{				disp.setText("");			// Reset output window        		simulate(Integer.valueOf(num.getText()).intValue());        		return true;					// Generate correct number of tosses			}		}		return super.handleEvent(evt);	// Handle other events as usual	}		// Generate n random coin tosses, and keep track of the number of heads    public void simulate(int n)    {    	gs.simulate(n);    	for (int i = 0; i < 4; i++) {    		disp.appendText(gs.names[i] + " - " + gs.resultsPercent[i]);    		disp.appendText("\n");    	}	}}
