func (f Face) Opposite() Face {
	switch f {
	default:
		return FaceUp
	case FaceUp:
		return FaceDown
	case FaceNorth:
		return FaceSouth
	case FaceSouth:
		return FaceNorth
	case FaceWest:
		return FaceEast
	case FaceEast:
		return FaceWest
	}
}
Opposite returns the opposite face. FaceDown will return up, north will return south and west will return east,
and vice versa.
package cube
import (
	"fmt"
)
const (
	FaceDown Face = iota
	FaceUp
	FaceNorth
	FaceSouth
	FaceWest
	FaceEast
)
type Face int
func (f Face) Direction() Direction {
	return Direction(f - 2)
}
func (f Face) FromString(s string) (interface{}, error) {
	switch s {
	case "down":
		return FaceDown, nil
	case "up":
		return FaceUp, nil
	case "north":
		return FaceNorth, nil
	case "south":
		return FaceSouth, nil
	case "west":
		return FaceWest, nil
	case "east":
		return FaceEast, nil
	}
	return nil, fmt.Errorf("unexpected facing '%v', expecting one of 'down', 'up', 'north', 'south', 'west' or 'east'", s)
}