@Override public Move getNextMove(PlayerInfo mappings, IBoard board) { Move move = Move.STAY; Unicorn me = board.getCurrentUnicorn(); switch (state) { case SEARCH: move = searchNextCloud(me, board); if (move == Move.STAY) { state = State.SPAWN; } break; case SPAWN: move = Move.SPAWN; state = State.RUN; break; case RUN: move = searchSafeSpot(me, board); if (move == Move.STAY) { state = State.SEARCH; } break; } return move; }