Bueno, aquí mi primera solución parcial:
http://jsfiddle.net/jefebrondem/7ZQcT/2/
Recorre todas las casillas cuando almenos uno de los lados del tablero es par. En caso contrario aún no hay algoritmo implementado( puede petar, no lo he probado ).
El caso en que ambos lados del tablero sea impar tengo que pensarlo un poco más. Pues habrá casos en que no se podrán recorrer todas las casillas.
Por cierto marlanga, al copy-past tal cual de tu código inicial en un nuevo proyecto:
http://jsfiddle.net/jefebrondem/2mt8q/, no sé porque no se muestra el tablero. He tenido que actualizar directamente de tu proyecto para que pudiera verse. Por eso el /2/ final.
Un saludo!