Created
March 26, 2017 01:11
-
-
Save lizixroy/41ad0e83f6ca238c5d5d6aa3602c4b1d to your computer and use it in GitHub Desktop.
examples for blog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func performPreflightCheck -> Bool { | |
guard let fuelTank = self.fuelTank else { return false } | |
guard fuelTank.fuel.type == .jetFuel else { return false } | |
let destination = self.flightPlan.dest | |
let origin = self.flightPlan.origin | |
let distance = origin.distanceFrom(destination) | |
let currentFuelLevel = fuelTank.level | |
let currentBodyWeight = hardwareService.currentWeight | |
let windSpeed = WeatherService.averageWindSpeed(forFlightPlan:flightPlan) | |
let supportedTravelDistance = fuelTank.calculateSupportedTravelDistance(withFuelLevel:currentFuelLevel, bodyWeight:currentBodyWeight, windSpeed:windSpeed) | |
guard (supportedTravelDistance - distance) > 1000 else { return false } | |
guard (Date.now - fuelTank.lastMaintenanceTime < TWO_DAYS) else { return false } | |
... | |
guard currentWeather = weatherService.currentWeather(onRoute:flightPlan.route) | |
guard hardwareService.lowestWorkingTemp < currentWeather.lowestTemp { return false } | |
guard hardwareService.highestWorkingTemp > currentWeather.highestTemp { return false } | |
guard currentWeather.stormProbability < 0.002 { return false } | |
guard destinationWeather = weatherService.weather(in:flightPlan.dest at:flightPlan.ETA) | |
... | |
let engines = hardwareService.engines | |
for engine in engines { | |
guard (Date.now - engine.maintenanceTime < TWO_DAYS) else { return fasle } | |
... | |
} | |
... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment