static void ExpandStateOneBlank(int boxSize, byte[] state, SuccessorList successors) { int e = 0; while (state[e] != 0) { e += 1; } if (e < (state.Length - boxSize)) { CreateSuccessor(state, successors.Push(), e, e + boxSize); // down } if (e % boxSize < (boxSize - 1)) { CreateSuccessor(state, successors.Push(), e, e + 1); // right } if (e % boxSize > 0) { CreateSuccessor(state, successors.Push(), e, e - 1); // left } if (e > (boxSize - 1)) { CreateSuccessor(state, successors.Push(), e, e - boxSize); // up } }