Constructing snake-in-the-box codes and families of such codes covering the hypercube