Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zmiana parametrów, klasy lub metody
Forum PHP.pl > Forum > Przedszkole
Mimi
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
com
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
Mimi
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
com
.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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.