package two func neighbours(n node) [3]node { switch n.direction { case N: return [3]node{ newNode(n.x, n.y-1, N), newNode(n.x-1, n.y, W), newNode(n.x+1, n.y, E), } case E: return [3]node{ newNode(n.x+1, n.y, E), newNode(n.x, n.y-1, N), newNode(n.x, n.y+1, S), } case S: return [3]node{ newNode(n.x, n.y+1, S), newNode(n.x-1, n.y, W), newNode(n.x+1, n.y, E), } case W: return [3]node{ newNode(n.x-1, n.y, W), newNode(n.x, n.y+1, S), newNode(n.x, n.y-1, N), } default: return [3]node{} } }