public boolean inBetween(Point start, Point end, int direction) {
		int startX = start.getRow();
		int startY = start.getCol();
		
		int endX = end.getRow();
		int endY = end.getCol();
		
		int d = DIRECTION[direction];
		
		int dx = LayoutImpl.DELTA[d][0];
		int dy = LayoutImpl.DELTA[d][1];
		
		int jumpLength;
		
		if (dx != 0) {
			jumpLength = (endX - startX) / dx;
		} else {
			jumpLength = (endY - startY) / dy;
		}
		
		if (jumpLength < 0) {
			dx *= -1;
			dy *= -1;
			jumpLength *= -1;
		}
		
		int color = getPieceColor(start), badcolor;
		
		if (color == Checker.WHITE) {
			badcolor = Checker.BLACK;
		} else {
			badcolor = Checker.WHITE;
		}
		
		for (int q = 1; q < jumpLength; q++) {
			int newX = startX + dx * q;
			int newY = startY + dy * q;
			if (sameColor(new Point(newY, newX), badcolor)) {
				return false;
			}
		}
		
		return true;
	}