while( true ){
        if( worker.moveState() ){
            worker.move();
        } else if( worker.workState() ) {
            worker.work();
        }
        
        if( solder.moveState() ){
            solder.move();
        } else if( solder.fightState() ){
            solder.fight;
        }
        
    }
    class worker{
    boolean move = true;
    int moveDir = 1;
    Pos pos = new Pos();
    int workTime = 0;
    int needWorkTime = 10;
    boolean work = false;
        boolean moveState(){
        return move;
    }
        void move(){
            Pos.move( moveDir );
            if( isWorkPos( Pos ) ){
                move = false;
                work = true;
            }
        }
        
        void work(){
            workTime++;
            if( workTime >= needWorkTime ){
                workTime = 0;
                move = true;
                work = false;
            }
        }
    }
    
    class solder{
    boolean move = true;
    int moveDir = 1;
    Pos pos = new Pos();
    boolean live = true;
    boolean fight = false;
        boolean moveState(){
        return move;
    }
        void move(){
            Pos.move( moveDir );
            if( isFightPos( Pos ) ){
                move = false;
                fight = true;
            }
        }
        
        void fight(){
            if( live ){
                fight;
                if( notLive() ){
                    live = false;
                    fight = false;
                }
            }else{
                fight = false; 
            }
        }
    }

解决方案 »

  1.   

    void fight(){
                if( live ){
                    doFight();//比如[blood--]之类的做一点点就闪
                    if( notLive() ){
                        live = false;
                        fight = false;
                    }
                }else{
                    fight = false; 
                }
            }
      

  2.   

    bluesmile979(笑着)厉害,佩服.可以是还有点不明白,如果worker.move()执行,程序会一直继续执行下去,还是等待move()执行结束?