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

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