Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Plane{
- public $name = NULL;
- public $flying_time = 0;
- public $flying_time_in_altitude = 0;
- public $maximum_altitude = 0;
- private $name_sum = 0;
- private $flying_map = NULL;
- public function __construct($name = NULL){
- $this->name = $name;
- $this->name_sum = 0;
- $this->name_sum = array();
- return $this;
- }
- public function fly(){
- $this->compute_name_value();
- $this->compute_flying_map();
- echo 'Avion : ' . $this->name . '<br/>';
- echo 'Temps de vol : ' . $this->flying_time. '<br/>';
- echo 'Temps de vol en altitude : ' . $this->flying_time_in_altitude. '<br/>';
- echo 'Altitude maximum : ' . $this->maximum_altitude . '<br/>';
- echo '<br/>';
- }
- private function compute_name_value(){
- $sum = 0;
- if(!empty($this->name)){
- $alpha = range('a','z');
- $arr_name = str_split(strtolower($this->name));
- foreach($arr_name as $char){
- $sum += 1+array_search($char,$alpha);
- }
- }
- $this->name_sum = $sum;
- }
- private function compute_flying_map(){
- $flying_map = array();
- $this->flying_time = 0;
- $this->flying_time_in_altitude = 0;
- $this->maximum_altitude = 0;
- $value = $this->name_sum;
- while($value>1){
- $flying_map[] = $value;
- if($value >= $this->name_sum){$this->flying_time_in_altitude++;}
- $this->maximum_altitude = max($this->maximum_altitude,$value);
- $value = $value%2 == 0 ? ceil($value/2) : 1+($value*3);
- }
- $flying_map[] = 1;
- $this->flying_map = $flying_map;
- $this->flying_time = count($this->flying_map);
- $this->flying_time_in_altitude = 0;
- }
- }
- $plane = new Plane('o');
- $plane->fly();
- $plane = new Plane('Enterprise');
- $plane->fly();
- $plane = new Plane('FauconMillenium');
- $plane->fly();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement