gameboard
Class OthelloBoard

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by gameboard.OthelloBoard
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class OthelloBoard
extends javax.swing.JPanel
implements java.io.Serializable

Created on October 30, 2006, 8:26 PM
Refactored the main applet panel and placed the cells of the game board in a seperate panel.
Will make handling clicked events easier to follow, and the code easier to read.
t.5 adds support for a network game.
t.6 added sound to the game board.

Version:
t.6
Author:
Eric Angeli
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
OthelloBoard()
          Creates a new instance of OthelloBoard
 
Method Summary
 void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
          Adds the property change listener.
 boolean checkListener(int x, int y)
          Checks to see if there is a mouse listener attached to the specified othellco cell in the board.
 int countCells(java.lang.String countColor)
          Counts the number of cells that are the given color/player.
 void doPlacement(java.awt.Point cp)
          Used for temporary placement of a piece on the board.
 void flipCells(java.awt.Point cp)
          Flips cells adjacent to the point passed in if the meet the rules for being flipped.
 java.lang.String getCurrentPlayer()
          Gets the current player color.
 java.lang.String getCurrentPlayerString()
          Gets a string representation of the current player.
 java.awt.Point getEnemyOver()
          Gets the point the enemy is over.
 java.beans.PropertyChangeSupport getPropertySupport()
          Gets the property change support.
 void initBoard()
          Initializes the cells on the board.
 boolean isMute()
          The current mute state.
 void over(java.awt.Point po)
          Used to set the cell the currently over.
Typically used when recieving an enemies position.
 void pauseGame(boolean pg)
          Changes the pause state of the game.
 void playInvalid()
          Plays the sound for an invalid move.
 void playValid()
          Plays the sound for a valid move.
 void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
          Removes the property change listener.
 void resetBackgrounds()
          Resets the backgrounds and the mouse listeners.
 void setCurrentPlayer(java.lang.String currentPlayer)
          Sets the color of the current player.
 void setEnemyOver(java.awt.Point enemyOver, java.awt.Color enemyColor)
          Sets the color of the enemy over the cell specified.
 void setEnemyPlaced(java.awt.Point ep, java.awt.Color ec)
          Sets an enemy's piece on the board.
 void setMute(boolean mute)
          Sets the mute state.
 void setSounds()
          Sets up the sounds that are played.
 void setStart()
          Sets the initial pieces on the game board.
 void setTurn(java.lang.String iAmPlayer)
          Sets the correct players turn.
 void stopGame()
          Stops the game.
Stops each cell thread.
 void undoPlacement(java.awt.Point cp)
          Undo the placement if the move is not valid.
 boolean validate(java.awt.Point cp)
          Checks the point passed in to see if it is a valid move.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, 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
 

Constructor Detail

OthelloBoard

public OthelloBoard()
Creates a new instance of OthelloBoard

Method Detail

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Adds the property change listener.

Overrides:
addPropertyChangeListener in class java.awt.Container
Parameters:
listener - The new listener.

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Removes the property change listener.

Overrides:
removePropertyChangeListener in class java.awt.Component
Parameters:
listener - The listener to remove.

getPropertySupport

public java.beans.PropertyChangeSupport getPropertySupport()
Gets the property change support.

Returns:
The property change support.

initBoard

public void initBoard()
Initializes the cells on the board.
Then calls setStart to place the initial pieces.


setSounds

public void setSounds()
Sets up the sounds that are played.


setStart

public void setStart()
Sets the initial pieces on the game board.


stopGame

public void stopGame()
Stops the game.
Stops each cell thread.


getCurrentPlayer

public java.lang.String getCurrentPlayer()
Gets the current player color.

Returns:
The color of the current player.

setCurrentPlayer

public void setCurrentPlayer(java.lang.String currentPlayer)
Sets the color of the current player.

Parameters:
currentPlayer - The color of the current player.

pauseGame

public void pauseGame(boolean pg)
Changes the pause state of the game.

Parameters:
pg - The new pause state of the game.

setEnemyPlaced

public void setEnemyPlaced(java.awt.Point ep,
                           java.awt.Color ec)
Sets an enemy's piece on the board.

Parameters:
ep - The point representation of the enemy.
ec - The color of the enemy.

resetBackgrounds

public void resetBackgrounds()
Resets the backgrounds and the mouse listeners.


getCurrentPlayerString

public java.lang.String getCurrentPlayerString()
Gets a string representation of the current player.

Returns:
The string of the current player.

validate

public boolean validate(java.awt.Point cp)
Checks the point passed in to see if it is a valid move.

Parameters:
cp - The point to validate.
Returns:
True if valid, false if not valid.

setTurn

public void setTurn(java.lang.String iAmPlayer)
Sets the correct players turn.

Parameters:
iAmPlayer - the current player.

undoPlacement

public void undoPlacement(java.awt.Point cp)
Undo the placement if the move is not valid.

Parameters:
cp - The point of the pice to remove.

doPlacement

public void doPlacement(java.awt.Point cp)
Used for temporary placement of a piece on the board.

Parameters:
cp - The point on the board to place a piece.

flipCells

public void flipCells(java.awt.Point cp)
Flips cells adjacent to the point passed in if the meet the rules for being flipped.

Parameters:
cp - The point of the piece placed to flip against.

checkListener

public boolean checkListener(int x,
                             int y)
Checks to see if there is a mouse listener attached to the specified othellco cell in the board.

Parameters:
x - The x position of the cell to check.
y - The y position of the cell to check.
Returns:
True if there is a moust listner attached, false otherwise.

countCells

public int countCells(java.lang.String countColor)
Counts the number of cells that are the given color/player.

Parameters:
countColor - The player color to count.
Returns:
The count of pieces on the game board.

playValid

public void playValid()
Plays the sound for a valid move.


playInvalid

public void playInvalid()
Plays the sound for an invalid move.


over

public void over(java.awt.Point po)
Used to set the cell the currently over.
Typically used when recieving an enemies position.

Parameters:
po - The point currently over.

getEnemyOver

public java.awt.Point getEnemyOver()
Gets the point the enemy is over.

Returns:
The point representing the cell the enemy is over.

setEnemyOver

public void setEnemyOver(java.awt.Point enemyOver,
                         java.awt.Color enemyColor)
Sets the color of the enemy over the cell specified.

Parameters:
enemyOver - The point of the cell the enemy is over.
enemyColor - The color of the enemy.

isMute

public boolean isMute()
The current mute state.

Returns:
True if muted, false if not.

setMute

public void setMute(boolean mute)
Sets the mute state.

Parameters:
mute - The new mute state, true if muted, false if not.