System.err.println("Move " + moves[i].toString() + " failed" + " because " + ms.toString());
    public final MoveStatus doMove(World w, FreerailsPrincipal p) {        MoveStatus ms = MoveStatus.MOVE_OK;        for (int i = 0; i < moves.length; i++) {            ms = moves[i].doMove(w, p);            if (!ms.ok) {		System.err.println("Move " + moves[i].toString() + " failed" +		" because " + ms.toString());                //Undo any moves we have already done.                undoMoves(w, i - 1, p);                return ms;            }        }        return ms;    }