Source Code (Use browser search to find items of interest.)

Class Index

ksnake'Board (./kdegames/ksnake/board.h:32)

class Board : public QArray<int>
{
public:
  Board  (int s);
  ~Board() {};
  QRect  rect(int i);

  void   set(int i, Square sq);

  bool   isBrick(int i);
  bool   isEmpty(int i);
  bool   isApple(int i);
  bool   isHead(int i);
  bool   isSnake(int i);

  int    getNext(int, int);

private:
  void   index(int i);
  bool   inBounds(int i);
  int    row;
  int    col;
  int    sz;
};


ksnake'Board::Board() (./kdegames/ksnake/board.cpp:5)

Board::Board(int s)
  :QArray<int> (s)
{
  sz = s;
}


ksnake'Board::index() (./kdegames/ksnake/board.cpp:11)

void Board::index(int i)
{
  row = i/BoardWidth;
  col = i-(row*BoardWidth);
}


ksnake'Board::inBounds() (./kdegames/ksnake/board.cpp:17)

bool Board::inBounds(int i)
{
  return ( i < 0 || i > sz-1 ? FALSE : TRUE);
}


ksnake'Board::set() (./kdegames/ksnake/board.cpp:22)

void Board::set(int i, Square sq)
{
  if (inBounds(i))
    at(i) = sq;
}


ksnake'Board::rect() (./kdegames/ksnake/board.cpp:28)

QRect Board::rect(int i)
{
  index(i);
  return (QRect(col*BRICKSIZE, row*BRICKSIZE, BRICKSIZE, BRICKSIZE));
}


ksnake'Board::isEmpty() (./kdegames/ksnake/board.cpp:34)

bool Board::isEmpty(int i)
{
  if (inBounds(i))
    return (at(i) == empty ? TRUE : FALSE);
  return TRUE;
}


ksnake'Board::isBrick() (./kdegames/ksnake/board.cpp:41)

bool Board::isBrick(int i)
{
  if (inBounds(i))
    return (at(i) == brick ? TRUE : FALSE);
  return FALSE;
}


ksnake'Board::isApple() (./kdegames/ksnake/board.cpp:48)

bool Board::isApple(int i)
{
  if (inBounds(i))
    return (at(i) == Apple ? TRUE : FALSE);
  return FALSE;
}


ksnake'Board::isHead() (./kdegames/ksnake/board.cpp:55)

bool Board::isHead(int i)
{
  if (inBounds(i))
    return (at(i) == head ? TRUE : FALSE);
  return FALSE;
}


ksnake'Board::isSnake() (./kdegames/ksnake/board.cpp:62)

bool Board::isSnake(int i)
{
  if (inBounds(i))
    return (at(i) == snake ? TRUE : FALSE);
  return FALSE;
}


ksnake'Board::getNext() (./kdegames/ksnake/board.cpp:69)

int Board::getNext(int n, int i)
{
  index(i);

  switch(n)
    {
    case NW:
      return( i >= BoardWidth && col > 0 ? (i-BoardWidth)-1 : OUT);
    case N:
      return( i >= BoardWidth ? i-BoardWidth : OUT );
    case NE:
      return( i >= BoardWidth && col < BoardWidth-1 ? (i-BoardWidth)+1 : OUT);
    case W:
      return(col > 0 ? i-1 : OUT );
    case E:
      return(col < BoardWidth-1 ? i+1 : OUT );
    case SW:
      return( row < sz-BoardWidth && col > 0 ? (i+BoardWidth)-1 : OUT);
    case S:
      return( row < sz-BoardWidth ? i+BoardWidth : OUT );
    case SE:
      return( row < sz-BoardWidth && col < BoardWidth-1 ? (i+BoardWidth)+1 : OUT);
    default:
      return OUT;
    }
}