Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] zmiana parametrów, klasy lub metody
Mimi
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.11.2015

Ostrzeżenie: (0%)
-----


Dostałam za zadanie napisanie programu, większosć zrobiłąm ale została mi jeszcze jedna metoda i nie bardo wiem nawet jak się za nią zabrać
Mamy napisac funkcję, żeby można było zmieniać materiał z którego tarcza jest wykonana ( np. drewno, złoto, mosiądz) Materiały mają różnić się między sobą wagą i wytrzymałością

Problem mam w tym, że nie wiem jakiej funkcji do tego użyć

mosiądz +300

złoto +500

naprawa

złoto ­ 1/2 punktow naprawy

mosiądz ­ 1/3 punktow naprawy

Klasy które posiadam (były potrzebne do poprzenich metod)
public $nazwa;
public $material = 'drewno';
public $wytrzymalosc;
public $waga;
public $maksymalnaWytrzymalosc;
A tutaj funkcję
function setDane($nazwa, $material, $wytrzymalosc, $waga, $maksymalnaWytrzymalosc)
{
$this -> nazwa = $nazwa;
$this -> material = $material;
$this -> wytrzymalosc = $wytrzymalosc;
$this -> waga = $waga;
$this -> maksymalnaWytrzymalosc = $maksymalnaWytrzymalosc;
}
Proszę o pomoc smile.gif

Ten post edytował Mimi 30.11.2015, 20:56:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


używaj bbcode wink.gif
Przykład
  1. class material
  2. {
  3. private $material;
  4.  
  5. public function setMaterial($material)
  6. {
  7. $this->material = $material;
  8. }
  9.  
  10. public function getMaterial()
  11. {
  12. return $this->material;
  13. }
  14. }
  15.  
  16. $m = new material();
  17. $m->setMaterial('drewno');
  18.  
  19. echo $m->getMaterial().PHP_EOL; // drewno
  20.  
  21. $m->setMaterial('mosiądz');
  22.  
  23. echo $m->getMaterial(); // mosiądz


http://ideone.com/bEeHu1

Ten post edytował com 1.12.2015, 01:14:36
Go to the top of the page
+Quote Post
Mimi
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.11.2015

Ostrzeżenie: (0%)
-----


To mój cały kod. To znaczy, że musze zrobić dodatkową klasę ?
Jak interpretowac .PHP_EOL ? czy to służy do przesyłania? Jeśli tak, to czy nie można by zastąpić czymś innym ?


  1. <?php
  2.  
  3. class tarcza
  4. {
  5. public $nazwa;
  6. public $material = 'drewno';
  7. public $wytrzymalosc;
  8. public $waga;
  9. public $maksymalnaWytrzymalosc;
  10.  
  11.  
  12. function setDane($nazwa, $material, $wytrzymalosc, $waga, $maksymalnaWytrzymalosc)
  13. {
  14. $this -> nazwa = $nazwa;
  15. $this -> material = $material;
  16. $this -> wytrzymalosc = $wytrzymalosc;
  17. $this -> waga = $waga;
  18. $this -> maksymalnaWytrzymalosc = $maksymalnaWytrzymalosc;
  19. }
  20.  
  21.  
  22. function getDane()
  23.  
  24. {
  25. return $this-> nazwa.','.$this-> material.','.$this-> wytrzymalosc.','.$this-> waga.','.$this-> maksymalnaWytrzymalosc;
  26. }
  27.  
  28. function zmianaNazwy($nazwa)
  29.  
  30. {
  31. $this -> nazwa = $nazwa;
  32. }
  33.  
  34. function cios($sila)
  35.  
  36. {
  37. if($sila < $this -> wytrzymalosc)
  38. {
  39. $this -> wytrzymalosc -= sila;
  40. echo 'obecna wytrzymalosc'.$this -> $wytrzymalosc;
  41. }
  42. else
  43. {
  44. echo 'tarcza zostala zniszczona';
  45. }
  46. }
  47. function naprawa($wartoscNaprawy)
  48. {
  49. if($wartoscNaprawy + $this -> wytrzymalosc < $this -> maksymalnaWytrzymalosc) // ten fragment jest razem " $this -> maksymalnaWytrzymalosc " " $this -> wytrzymalosc "
  50. {
  51. $this -> wytrzymalosc = $wartoscNaprawy + $this -> wytrzymalosc;
  52. echo 'obecna wytrzymalosc'.$this -> wytrzymalosc;
  53. }
  54. else
  55. {
  56. echo 'wytrzymalosc dodana wieksza od maksymalnej';
  57. }
  58. }
  59. function zmianaMaterialu($nowyMaterial)
  60. {
  61. if
  62.  
  63.  
  64.  
  65. $this -> material = $nowyMaterial;
  66.  
  67.  
  68.  
  69. }
  70. }
  71. $tarcza = new tarcza;
  72. $tarcza -> setDane('pierwsza tarcza','srebro',600,10,800);
  73. echo $tarcza -> getDane();
  74.  
  75. $tarcza -> zmianaNazwy('tarcza druga');
  76. echo $tarcza -> getDane();
  77.  
  78. $tarcza -> naprawa(50);
  79. $tarcza -> zmianaMaterialu('guma');
  80. echo $tarcza -> getDane();
  81. ?>

Dziękuję smile.gif

Ten post edytował Mimi 1.12.2015, 20:26:07
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


.PHP_EOL to dodaje po prostu koniec linii, żeby się pojawił tekst w nowej a nie obok siebie, nie musisz robić nowej klasy, ja dałem tylko przykład jak to zrobić, żeby zmieniać te wartości wink.gif

możesz przy zmianie po prostu jako kolejne parametry przekazywać nową wagą i wytrzymałością, albo jeśli jest to stała poprostu zrobić jakiegoś switch który odpowiednio je ustawi

Ten post edytował com 1.12.2015, 21:10:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:25