// CoinFlipping.java
// Simulates flipping a coin
// Exercise 6.30
// Same as old ExerciseD4_30.java
// APPLET CODE="CoinFlipping" HEIGHT=400 WIDTH=160
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CoinFlipping extends JApplet implements ActionListener {
        // GUI Components
        JLabel labelHeads, labelTails;
        JTextField outputH, outputT;
        JButton b;
        // counters for heads and tails
        int heads = 0;
        int tails = 0;

        public void init( ) {
                Container c = getContentPane( );
                c.setLayout( new FlowLayout( ) );

                labelHeads = new JLabel( "Number of heads" );
                outputH = new JTextField( 10 );
                outputH.setEditable( false );
                c.add( labelHeads );
                c.add( outputH );
                labelTails = new JLabel( "Number of tails" );
                outputT = new JTextField( 10 );
                outputT.setEditable( false );
                c.add( labelTails );
                c.add( outputT );
                b = new JButton( "FLIP" );
                b.addActionListener( this );
                c.add( b );
        }

        public void actionPerformed( ActionEvent e ) {
                boolean toss = flip( );
                if ( toss )
                        outputH.setText( "" +  ++heads );
                else
                        outputT.setText( "" +  ++tails );
                
        }

        boolean flip( ) {
                int rn = ( int ) ( Math.random( ) * 2 );
                if ( rn == 0 )
                        return false;
                else
                        return true;
        }
}