Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował Mimi 30.11.2015, 20:56:46
Go to the top of the page
+Quote Post
com
post
Post #2





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

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


używaj bbcode (IMG:style_emoticons/default/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ę (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 18:11