
/**
 * An implementation of the old Lunar Lander game.
 * 
 * @author David Matuszek 
 * @version 1.0
 */
public class Game {
    
    /** No parameters required. */
    public static void main(String[] args) {
        IOFrame frame = new IOFrame("Lunar Lander");
        LunarLander lander;
        double safeLandingSpeed = 10.0;
        String again = "yes";
        
        while ("yes".equalsIgnoreCase(again)) {
            lander = new LunarLander(100, 0, 15);
            frame.clear();
            frame.displayLine("Altitude: " + lander.getAltitude());
            frame.displayLine("Velocity: " + lander.getVelocity());
            frame.displayLine("Fuel left: " + lander.getFuelRemaining());
            while (lander.getAltitude() > 0) {
                double amount = frame.getDouble("How much fuel should I burn?");
                lander.burn(amount);
                frame.displayLine("");
                frame.displayLine("Altitude: " + lander.getAltitude());
                frame.displayLine("Velocity: " + lander.getVelocity());
                frame.displayLine("Fuel left: " + lander.getFuelRemaining());
            }
            double finalVelocity = lander.getVelocity();
            if (finalVelocity > safeLandingSpeed) {
                frame.display("CRASH!");
            }
            else {
                frame.display("Congratulations! A safe landing!");
            }
            again = frame.getString("Would you like to play again (yes/no)?");
        }
        frame.exit();
    }
}
