home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 14 / IOPROG_14.ISO / soft / sdkjava / dxma.exe / DXMA05.cab / samples / da / java / apps / chess / King.java < prev    next >
Encoding:
Java Source  |  1997-11-13  |  1.7 KB  |  58 lines

  1. import java.util.Vector;
  2. import Board;
  3. import Piece;
  4.  
  5. // class: King
  6. // This class is used to provide the chess logic needed to parse the PGN file. This
  7. // class is only utilized suring the parsing of the file, and is not used while
  8. // running the animation.
  9.  
  10. public class King extends Piece {
  11.     King(int myColor, int xPos, int yPos) {
  12.         super(myColor,xPos,yPos);
  13.         m_type = KING;        
  14.     }
  15.     
  16.     Vector GetLegalMoves() {
  17.         
  18.         Vector result = new Vector();
  19.             
  20.         int dx, dy;
  21.         
  22.         // just check to see if we can move to all the 8 possible locations
  23.         dx = 1; dy = 0;
  24.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  25.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  26.         
  27.         dx = 1; dy = -1;
  28.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  29.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  30.         
  31.         dx = 0; dy = -1;
  32.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  33.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  34.         
  35.         dx = -1; dy = -1;
  36.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  37.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  38.         
  39.         dx = -1; dy = 0;
  40.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  41.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  42.         
  43.         dx = -1; dy = 1;
  44.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  45.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  46.         
  47.         dx = 0; dy = 1;
  48.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  49.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  50.         
  51.         dx = 1; dy = 1;
  52.         if (IsOccupiable(m_xPos + dx, m_yPos + dy))
  53.             result.insertElementAt(Board.CoordToString(m_xPos + dx, m_yPos + dy), 0);
  54.         
  55.         return result;
  56.     }
  57.     
  58. }