JCellularAutomata()
Creates a cellular automata grid with the following default
prisoner's dilemma payoff matrix:
| | C | D
| C | (3,3) | (0,5)
| D | (5,0) | (1,1)
|
|
Method Summary |
protected int |
getWinningStrategy(JCell cell)
|
boolean |
isRunning()
|
void |
pause()
|
protected int |
playCell(int x,
int y)
have a cell play all of its neighbors |
protected int |
playNeighbor(int x,
int y,
Direction d)
|
void |
playRound()
calls playRound with repaint = true |
void |
playRound(boolean repaint)
Evolves the cellular automata one gerenation by having each cell play
200 games against each of its eight neighboring cells. |
void |
restart()
|
void |
run()
|
void |
setPayoffs(int dd,
int dc,
int cd,
int cc)
Set the payoffs for any symmetrical 2x2 payoff matrix. |
void |
setSleepDelay(int sleepDelayMS)
|
void |
start()
|
| Methods inherited from class ptft.JGrid |
createCells, getCell, getLeftColumn, getLowerRow, getNeighbor, getRightColumn, getTotalColumns, getTotalRows, getUpperRow, paintComponent, setBackground, setBorderColor, setGridColor, setLayout, setRandomStrategies, setRandomStrategies |
| Methods inherited from class javax.swing.JPanel |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI |
| Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
| Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
m_payoffs
protected int[][] m_payoffs
m_thread
protected java.lang.Thread m_thread
m_sleepDelay
protected int m_sleepDelay
JCellularAutomata
public JCellularAutomata()
- Creates a cellular automata grid with the following default
prisoner's dilemma payoff matrix:
| | C | D |
C | (3,3) | (0,5) |
D | (5,0) | (1,1) |
getWinningStrategy
protected int getWinningStrategy(JCell cell)
playRound
public void playRound()
- calls
playRound with repaint = true
playRound
public void playRound(boolean repaint)
- Evolves the cellular automata one gerenation by having each cell play
200 games against each of its eight neighboring cells. The points from
each of the eight interactions are added up and become the cell's
score. Each cell then adopts the strategy of its most successful
neighbor -- the neighboring cell with the highest score.
The updating is instantenous; the entire array is switched to the
new strategies in one shot, not cell by cell.
- Parameters:
repaint - You might want not to repaint the grid. For instance,
you might want to display only every tenth generation
or perhaps display only the final state. Dropping
frames in this way might make the cellular automata
evolve faster, and so could be used as a performance
optimization technique.
playNeighbor
protected int playNeighbor(int x,
int y,
Direction d)
playCell
protected int playCell(int x,
int y)
- have a cell play all of its neighbors
setPayoffs
public void setPayoffs(int dd,
int dc,
int cd,
int cc)
- Set the payoffs for any symmetrical 2x2 payoff matrix.
- Parameters:
dd - points awarded for mutual defectiondc - points awarded for unilateral defectioncd - points awarded for unilateral cooperationcc - points awarded for mutual cooperation
restart
public void restart()
start
public void start()
pause
public void pause()
run
public void run()
- Specified by:
run in interface java.lang.Runnable
isRunning
public boolean isRunning()
setSleepDelay
public void setSleepDelay(int sleepDelayMS)
- Parameters:
sleepDelayMS - sleep delay between playRound frames
in milliseconds
|