fork download
  1. <?php
  2. /*С крипа берет начало каждый класс. Надо ли делать его абстрактным
  3. если там нет ни одного абстрактного метода?*/
  4. abstract class Creep
  5. {
  6. //Базовые данные. потом стоит изменить к ним доступ
  7. protected $salary;
  8. protected $thirst;
  9. protected $output;
  10. private $tier;
  11. private $isBig;
  12.  
  13. //Давать доступ только через конструктор
  14. public function __construct($tier, $isBig){
  15. $this->tier = $tier;
  16. $this->isBig = $isBig;
  17. }
  18.  
  19. //Выводит зарплату
  20. public function countTierSalary(){
  21. switch($this->tier){
  22. case 2 :
  23. $this->salary += $this->salary * 0.25;
  24. break;
  25. case 3 :
  26. $this->salary += $this->salary * 0.5;
  27. break;
  28. }
  29. //Если крип- босс, то поднимаем оплату
  30. if($this->isBig == 1){
  31. $this->salary += $this->salary * 0.5;
  32. }
  33. return $this->salary;
  34. }
  35.  
  36. //Выводит потребление
  37. public function countCreepThirst(){
  38. if($this->isBig == 1){
  39. $this->thirst += $this->thirst * 0.5;
  40. }
  41. return $this->thirst;
  42. }
  43.  
  44. //Выводит выхлоп
  45. public function countCreepOutput(){
  46. if($this->isBig == 1){
  47. $this->output = 0;
  48. }
  49. return $this->output;
  50. }
  51. }
  52.  
  53. //Менеджеры
  54. class Manager extends Creep
  55. {
  56. protected $salary = 500;
  57. protected $thirst = 20;
  58. protected $output = 200;
  59. }
  60.  
  61. //Маркетологи
  62. class Marketer extends Creep
  63. {
  64. protected $salary = 400;
  65. protected $thirst = 15;
  66. protected $output = 150;
  67. }
  68.  
  69. //Инженеры
  70. class Engeneer extends Creep
  71. {
  72. protected $salary = 200;
  73. protected $thirst = 5;
  74. protected $output = 15;
  75. }
  76.  
  77. //Аналитики
  78. class Analyst extends Creep
  79. {
  80. protected $salary = 800;
  81. protected $thirst = 50;
  82. protected $output = 5;
  83. }
  84.  
  85. //Запускаем тестового аналиста
  86. $bob = new Analyst(2, 1);
  87. print $bob->countTierSalary(). "\n".
  88. $bob->countCreepThirst(). "\n".
  89. $bob->countCreepOutput(). "\n";
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
1500
75
0