public class FinalDotRace {
    private FinalDot redDot;
    private FinalDot blueDot;            
    
    public FinalDotRace() {
        this.redDot = new FinalDot("red");
        this.blueDot = new FinalDot("blue");
    }
    
    public void step() {
        this.redDot.step();
        this.blueDot.step();
    }
          
    public void showStatus() {
        this.redDot.showPosition();
        this.blueDot.showPosition();
    }
    
    public void reset() {
        this.redDot.reset();
        this.blueDot.reset();
    }
    
    public void runRace(int goalDistance) {
        this.reset();
        this.showStatus();
        while (this.redDot.getPosition() < goalDistance && 
                       this.blueDot.getPosition() < goalDistance) {
            this.step();
            this.showStatus();
        }
        if (this.redDot.getPosition() >= goalDistance &&
                this.blueDot.getPosition() >= goalDistance) {
            System.out.println("IT IS A TIE");
        }
        else if (this.redDot.getPosition() >= goalDistance) {
            System.out.println("RED WINS");
        }
        else {
            System.out.println("BLUE WINS");
        }
    }

}

