int colOffset = (Math.abs(row) % 2 == 1) ? -1 : 0;
Location nbrLoc = null;
switch (direction) {
case 0 : nbrLoc = new IntLocation(row, col + 1); break;
case 1 : nbrLoc = new IntLocation(row - 1, col + colOffset + 1); break;
case 2 : nbrLoc = new IntLocation(row - 1, col + colOffset); break;
case 3 : nbrLoc = new IntLocation(row, col - 1); break;
case 4 : nbrLoc = new IntLocation(row + 1, col + colOffset); break;
case 5 : nbrLoc = new IntLocation(row + 1, col + colOffset + 1); break;
default : assert false;
}
return nbrLoc;
}