//CoinFlip.java import java.awt.*; import javax.swing.*; public class CoinFlip extends JApplet { public void init() { String input; int flips; int heads=0, tails=0; int htdiff, thdiff; int maxhtdiff=Integer.MIN_VALUE, maxthdiff=Integer.MIN_VALUE; int headrun=0, maxheadrun=0; int tailrun=0, maxtailrun=0; input = JOptionPane.showInputDialog( "Enter number of flips" ); flips = Integer.parseInt( input ); for (int i=1; i<=flips; i++) { if (Math.random()<.5) { //head heads++; //increment count of heads headrun++; //increment run of heads tailrun = 0; //reset run of tails if (headrun > maxheadrun) //new longest run of heads maxheadrun = headrun; } else { //tail tails++; //increment count of tails tailrun++; //increment run of tails headrun = 0; //reset run of heads if (tailrun > maxtailrun) //new longest run of tails maxtailrun = tailrun; } htdiff = heads - tails; if (htdiff > maxhtdiff) //if new max heads-tails gap maxhtdiff = htdiff; thdiff = tails - heads; if (thdiff > maxthdiff) //if new max tails-heads gap maxthdiff = thdiff; } JOptionPane.showMessageDialog(null, "#heads="+ heads+" "+(double)heads/flips*100+"%"+ "\n#tails="+tails+" "+(double)tails/flips*100+"%"); JOptionPane.showMessageDialog(null,"max heads-tails: "+maxhtdiff+ " max tails-heads: "+maxthdiff+ "\nMax head run: "+maxheadrun+ " Max tail run: "+maxtailrun); } }