edu.uah.math.experiments
Class RedBlackExperiment

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by edu.uah.math.experiments.Experiment
                          extended by edu.uah.math.experiments.RedBlackExperiment
All Implemented Interfaces:
IExperiment, Pluginable, java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer

public class RedBlackExperiment
extends Experiment
implements java.io.Serializable

This class models the red and black experiment. A player bets on a sequence of Bernoulli trials at even stakes. The player starts with an intial fortune and must quit when she is either ruined or reaches a target fortune. The initial and target fortunes can be varied as well as the probability of success. Either of two classical strategies can be chosen: bold play or timid play.

Version:
August, 2003
Author:
Kyle Siegrist, Dawn Duehring
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int BOLD_PLAY
           
static int TIMID_PLAY
           
 
Fields inherited from class edu.uah.math.experiments.Experiment
applet, componentPanel, GREEN, RED, showModelDistribution, stopChoice, stopCount, stopFreq, stopNow, time, toolBars, toolIndex, updateCount, updateFreq
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
RedBlackExperiment()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          This method handles the timer events associated with the step process.
 void computeBoldParameters()
          This method computes the probability of reaching the target fortune and the expected number of trials under the bold strategy.
 void doExperiment()
          This method define the experiment.
 java.lang.String getAppletInfo()
          This method returns basic information about the applet, including copyright information, descriptive information, and instructions.
 javax.swing.JTable getResultTable()
           
 void graphUpdate()
           
 void init()
          This method initializes the experiment, including the record table, the sliders for the probability of success and the initial fortune, the choice box fo the type of strategy and the target fortune, the toolbar, the red-black, success, and number of trials graphs, and the success and number of trials tables.
 void itemStateChanged(java.awt.event.ItemEvent e)
          This method handles the choice events associated with a change in strategy or a change in the target fortune.
 void play()
          This method plays one trial and adusts the current fortune.
 void reset()
          This method resets the experiment, including the success random variable, the red-black graph, the success graph, the number of trials graph, the record table, the success table, and the number of trials table.
 void run()
          This method stops the step process if necessary, and then calls the usual run method.
 void setParameters()
          This method sets the parameters: the success probability and the mean of the number of trials.
 void stateChanged(javax.swing.event.ChangeEvent e)
          This method handles the scroll events associated with a change in the initial fortune or a change in the probability of success.
 void step()
          This method runs the experiment one time, adding additional annimation and sound.
 void stop()
          This method stops the step process if necessary, and then calls the usual stop method.
 void update()
          This method updates the experiment, including the red-black graph, the success, number of trials graphs, and the record, success, and number of trials tables.
 
Methods inherited from class edu.uah.math.experiments.Experiment
addComponent, addComponent, addComponent, addTool, addToolBar, clearToolBars, format, getComponentPanel, getDisplayPane, getMainToolBar, getOnlineDescription, getStopChoice, getStopFreq, getTime, getTimer, getUpdateChoice, initialize, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, pasteData, playnote, playnote, setApplet, setDecimalFormat, setShowModelDistribution, setStopChoice, setStopChoiceTipText, setStopFreq, setStopNow, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.ucla.stat.SOCR.core.Pluginable
getName
 

Field Detail

TIMID_PLAY

public static final int TIMID_PLAY
See Also:
Constant Field Values

BOLD_PLAY

public static final int BOLD_PLAY
See Also:
Constant Field Values
Constructor Detail

RedBlackExperiment

public RedBlackExperiment()
Method Detail

init

public void init()
This method initializes the experiment, including the record table, the sliders for the probability of success and the initial fortune, the choice box fo the type of strategy and the target fortune, the toolbar, the red-black, success, and number of trials graphs, and the success and number of trials tables.

Overrides:
init in class Experiment

getAppletInfo

public java.lang.String getAppletInfo()
This method returns basic information about the applet, including copyright information, descriptive information, and instructions.

Specified by:
getAppletInfo in interface IExperiment
Overrides:
getAppletInfo in class Experiment
Returns:
applet information

doExperiment

public void doExperiment()
This method define the experiment. The Bernoulli trials are simulated and the outcome of the game determined, based on the strategy. The number of trials is recorded.

Specified by:
doExperiment in interface IExperiment
Overrides:
doExperiment in class Experiment

play

public void play()
This method plays one trial and adusts the current fortune. This method should only be called when the current fortune is strictly between 0 and the target fortune.


step

public void step()
This method runs the experiment one time, adding additional annimation and sound.

Specified by:
step in interface IExperiment
Overrides:
step in class Experiment

run

public void run()
This method stops the step process if necessary, and then calls the usual run method.

Overrides:
run in class Experiment

stop

public void stop()
This method stops the step process if necessary, and then calls the usual stop method.

Specified by:
stop in interface IExperiment
Overrides:
stop in class Experiment

update

public void update()
This method updates the experiment, including the red-black graph, the success, number of trials graphs, and the record, success, and number of trials tables.

Specified by:
update in interface IExperiment
Overrides:
update in class Experiment

graphUpdate

public void graphUpdate()
Specified by:
graphUpdate in interface IExperiment
Overrides:
graphUpdate in class Experiment

reset

public void reset()
This method resets the experiment, including the success random variable, the red-black graph, the success graph, the number of trials graph, the record table, the success table, and the number of trials table.

Specified by:
reset in interface IExperiment
Overrides:
reset in class Experiment

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method handles the timer events associated with the step process. Until the game is over, the graph is updated.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class Experiment
Parameters:
e - the action event

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
This method handles the choice events associated with a change in strategy or a change in the target fortune.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Overrides:
itemStateChanged in class Experiment
Parameters:
e - the item event

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
This method handles the scroll events associated with a change in the initial fortune or a change in the probability of success.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener
Overrides:
stateChanged in class Experiment
Parameters:
e - the change event

setParameters

public void setParameters()
This method sets the parameters: the success probability and the mean of the number of trials.


computeBoldParameters

public void computeBoldParameters()
This method computes the probability of reaching the target fortune and the expected number of trials under the bold strategy.


getResultTable

public javax.swing.JTable getResultTable()
Specified by:
getResultTable in interface IExperiment
Overrides:
getResultTable in class Experiment