fork download
  1. <?php
  2.  
  3. class Engine {
  4.  
  5. const KILOMETERS_TO_MILES = 1.609344;
  6.  
  7. protected $mileage;
  8. protected $is_metric_system = true;
  9.  
  10. public function __construct(float $mileage = 0.0, bool $is_metric = true) {
  11. $this->mileage = $mileage;
  12. $this->is_metric_system = $is_metric;
  13. }
  14.  
  15. public function getMileage(): float {
  16. return $this->is_metric_system ? $this->mileage : $this->mileage * self::KILOMETERS_TO_MILES;
  17. }
  18.  
  19. public function getUnconvertedMileage(): float {
  20. return $this->mileage;
  21. }
  22.  
  23. public function getMileageUnit(): string {
  24. return $this->is_metric_system ? "km" : "mi";
  25. }
  26.  
  27. }
  28.  
  29. class Car {
  30.  
  31. protected $engine;
  32. protected $name;
  33.  
  34. public function __construct(Engine $engine, string $name) {
  35. $this->engine = $engine;
  36. $this->name = $name;
  37. }
  38.  
  39. public function getRealName(): string {
  40. return $this->name;
  41. }
  42.  
  43. public function getAdvertisementName(): string {
  44. $mileage = round($this->engine->getMileage() / 1000);
  45.  
  46. return self::getRandomAdvertisementPrefix() . " " . $this->name . " " . $mileage . "kkm";
  47. }
  48.  
  49. public function getRealMileage(): string {
  50. return round($this->engine->getUnconvertedMileage()) . " " . $this->engine->getMileageUnit();
  51. }
  52.  
  53. public function getConvertedMileage(): string {
  54. return round($this->engine->getMileage());
  55. }
  56.  
  57. private static function getRandomAdvertisementPrefix(): string {
  58. $prefixes = [
  59. "Niemiec płakał jak sprzedawał ",
  60. "Nowy, super stan, niebity ",
  61. "Nówka sztuka ",
  62. "OKAZJA ",
  63. "HIT ",
  64. "Stan perfekt "
  65. ];
  66.  
  67. return $prefixes[array_rand($prefixes)];
  68. }
  69.  
  70. public static function getRandomCarName(): string {
  71. $names = [
  72. "Audi A3",
  73. "Citroen C5",
  74. "Daewoo Lanos",
  75. "Ford Focus",
  76. "Kia Rio",
  77. "Mazda 3",
  78. "Nissan Qashqai",
  79. "Skoda Octavia ",
  80. "Volkswagen Passat",
  81. ];
  82.  
  83. return $names[array_rand($names)];
  84. }
  85.  
  86. }
  87.  
  88. $cars = [];
  89.  
  90. foreach(range(0, 10) as $car) {
  91. $engine = new Engine(rand(100000, 500000), rand(0, 10) > 1);
  92. $name = Car::getRandomCarName();
  93.  
  94. $cars[] = new Car($engine, $name);
  95. }
  96.  
  97. echo "<h1>Mirek Handlarz - your most trusted used car dealer</h1>";
  98.  
  99. echo "<h2>Lista aukcji na otomoto</h2>";
  100.  
  101. foreach($cars as $car) {
  102. echo $car->getAdvertisementName() . "<br>";
  103. }
  104.  
  105. echo "<h2>Lista magazynowa</h2>";
  106. echo "<table>";
  107.  
  108. foreach($cars as $car) {
  109. echo "<tr>";
  110. echo "<td>" . $car->getRealName() . "</td>";
  111. echo "<td>" . $car->getRealMileage() . "</td>";
  112. echo "<td>" . $car->getConvertedMileage() . " km</td>";
  113. echo "</tr>";
  114. }
  115.  
  116. echo "</table>";
Success #stdin #stdout 0.05s 82880KB
stdin
Standard input is empty
stdout
<h1>Mirek Handlarz - your most trusted used car dealer</h1><h2>Lista aukcji na otomoto</h2>HIT  Kia Rio 253kkm<br>Nówka sztuka  Nissan Qashqai 480kkm<br>Niemiec płakał jak sprzedawał  Nissan Qashqai 203kkm<br>HIT  Mazda 3 214kkm<br>Niemiec płakał jak sprzedawał  Daewoo Lanos 332kkm<br>Stan perfekt  Audi A3 303kkm<br>OKAZJA  Ford Focus 349kkm<br>Stan perfekt  Citroen C5 386kkm<br>OKAZJA  Nissan Qashqai 333kkm<br>Nówka sztuka  Daewoo Lanos 367kkm<br>HIT  Volkswagen Passat 249kkm<br><h2>Lista magazynowa</h2><table><tr><td>Kia Rio</td><td>252799 km</td><td>252799 km</td></tr><tr><td>Nissan Qashqai</td><td>297983 mi</td><td>479557 km</td></tr><tr><td>Nissan Qashqai</td><td>202563 km</td><td>202563 km</td></tr><tr><td>Mazda 3</td><td>213941 km</td><td>213941 km</td></tr><tr><td>Daewoo Lanos</td><td>332233 km</td><td>332233 km</td></tr><tr><td>Audi A3</td><td>303474 km</td><td>303474 km</td></tr><tr><td>Ford Focus</td><td>348583 km</td><td>348583 km</td></tr><tr><td>Citroen C5</td><td>386319 km</td><td>386319 km</td></tr><tr><td>Nissan Qashqai</td><td>333467 km</td><td>333467 km</td></tr><tr><td>Daewoo Lanos</td><td>366891 km</td><td>366891 km</td></tr><tr><td>Volkswagen Passat</td><td>249201 km</td><td>249201 km</td></tr></table>