Programowanie WEB Lista nr 10 (termin 26.05.2015) mgr inż. Adam Dudek



Podobne dokumenty
Super farmer to gra, która powstała w Warszawie w 1943 roku. Nosiła

Autor gry: Karol Borsuk Projekt graficzny i ilustracje: Piotr Socha

od 6 lat Gra towarzyska dla 2-6 graczy

Superfarmer to gra, która powstała w Warszawie w 1943 roku. Nosiła wtedy

Superfarmer to gra, która powstała w Warszawie w 1943 roku. Nosiła wtedy

PHP 5 język obiektowy

Kurs WWW. Paweł Rajba.

Gra dla 2-6 graczy w wieku od 7 lat autorzy gry: Michał Stajszczak wg Karola Borsuka projekt graficzny i ilustracje: Piotr Socha

10. Programowanie obiektowe w PHP5

GRA RODZINNA dla 2-6 osób w wieku powy ej 7 lat. Hodujesz zwierz ta, chronisz przed niebezpiecze stwem, pomna asz swój zysk!

Programowanie obiektowe

Programowanie obiektowe

Instrukcja 3 PROGRAMOWANIE OBIEKTOWE

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Aplikacje w środowisku Java

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

OBIEKTY PHP. G. Panuś

Enkapsulacja, dziedziczenie, polimorfizm

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Programowanie obiektowe

Aplikacje w środowisku Java

Wstęp. Ale po co? Implementacja

Polimorfizm, metody wirtualne i klasy abstrakcyjne

INSTRUKCJA. Zdobyte punkty gracz zaznacza na torze punktów (na swojej planszy gospodarstwa). Przesuwa do przodu pionek o tyle pól, ile zdobył punktów.

Jaką liczbę należy wpisać w miejsce znaku zapytania?

Podstawy programowania III

Materiały do zajęć VII

Programowanie obiektowe

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Klasy i obiekty cz II

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Rozdział 4 KLASY, OBIEKTY, METODY

Wykład 4: Klasy i Metody

TEMAT : KLASY DZIEDZICZENIE

Wykład 8: klasy cz. 4

III. Przebieg rozgrywki

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Mechanizm dziedziczenia

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

POLITECHNIKA POZNAŃSKA. Programowanie systemów informatycznych LAB 30h

Klasy abstrakcyjne, interfejsy i polimorfizm

Programowanie obiektowe. Wykład 4

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie Obiektowe Ćwiczenie 4

Wykład 5: Klasy cz. 3

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

SUKNIE ŚLUBNE - MODA I MODELKI

Gra planszowa dla 2 5 graczy w wieku powyżej 4 lat

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Programowanie i struktury danych. Wykład 4 Dr Piotr Cybula

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Konstruktor kopiujacy

Programowanie obiektowe

Oracle PL/SQL. Paweł Rajba.

Programowanie obiektowe

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

INSTRUKCJA. Gra dla 2-4 graczy w wieku lat

INSTRUKCJA. gra edukacyjna dla 3 osób - od 8 lat

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Java: interfejsy i klasy wewnętrzne

Mechanizm dziedziczenia

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Dokumentacja do API Javy.

Dziedziczenie. dr Jarosław Skaruz

Multimedia JAVA. Historia

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Dziedziczenie. Tomasz Borzyszkowski

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Programowanie obiektowe

35 żetonów Leukocyt, 35 żetonów Lekarstwa, 84 żetony Globinka, 30 żetonów Hemo, 4 detektory odpowiedzi, 4 karty przelicznik, instrukcja gry.

MVC w praktyce tworzymy system artykułów. cz. 2

PHP: bloki kodu, tablice, obiekty i formularze

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Laboratorium 1 - Programowanie proceduralne i obiektowe

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

Przypomnienie o klasach i obiektach

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Klasy abstrakcyjne i interfejsy

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Programowanie obiektowe w języku

2 gry planszowe. rekomendowany wiek: od lat 4 dla 2 4 osób

Listy powiązane zorientowane obiektowo

Gra dla 2 4 graczy w wieku lat. ZAWARTOŚĆ PUDEŁKA PRZYGOTOWANIE DO GRY

Arka Noego. Ptaki Polski 33

rekomendowany wiek: od lat 5 dla 2 4 osób

INSTRUKCJA. gra edukacyjna dla 2 6 graczy rekomendowany wiek: od lat 10 WARIANT I

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Transkrypt:

1. Konstruktor class TStudent public $wiek; Programowanie WEB Lista nr 10 (termin 26.05.2015) mgr inż. Adam Dudek function przedstaw_sie() echo 'Nazywam się :<br>'; echo 'Imie - '.$this->imie.'<br>'; echo 'Nazwisko - '.$this->nazwisko.'<br>'; echo 'Wiek - '.$this->wiek.'<br>'; function TStudent($p1,$p2,$p3) //konstruktor echo 'To ja - konstruktor parametrowy<br>'; $this->imie=$p1; $this->nazwisko=$p2; $this->wiek=$p3; $Janek = new TStudent(1,2,3); $Janek->imie='Nazwisko'; $Janek->wiek=22; $Janek->przedstaw_sie();?> 2. Kopiowanie obiektów class TOsoba public $id; function TOsoba($im,$nazw) $this->imie=$im; $this->nazwisko=$nazw; $this->id=10; function przedstaw_sie() echo $this->imie.'<br>'; echo $this->nazwisko.'<br>'; echo $this->id.'<br>';

public function clone() //samodzielna obsluga klonowania $this->id=0; $Janek = new TOsoba("Janko","Muzykant"); $Janek->id=100; $Janek->przedstaw_sie(); $klon_janka = clone $Janek; //klonujemy $klon_janka->przedstaw_sie(); 3. Metody magiczne class JakasKlasa public $JakiesPole; public function get($name) echo "Obiekt nie posiada właściwości $name"; public function set($name, $value) echo "<br>obiekt nie posiada właściwości $name, nie można więc przypisać wartości $value</br>"; public function call($name, $params) echo "<br>metoda $name nie istnieje. Przekazane parametry:"; print_r($params); echo '<br>'; $ObiektKlasy=new JakasKlasa(); $ObiektKlasy->JakiesPole=100; echo $ObiektKlasy->JakiesPole; $ObiektKlasy->JakiesInnePole=120; echo $ObiektKlasy->JakiesInnePole; $ObiektKlasy->JakasMetoda(5,'6','7'); Są to metody wywoływane w momencie, gdy następuje próba dostępu do nieistniejącej właściwości obiektu. Metoda get() zostanie wykonana, gdy będziemy pobierali taką właściwość. Posiada ona jeden parametr, do którego zostaje przypisana nazwa wywoływanej właściwości. Analogicznie metoda set() wywoła się, gdy będziemy chcieli ustawić nieistniejącą właściwość obiektu. Przyjmuje ona dwa parametry, kolejno: nazwa oraz wartość.

Należy pamiętać, że gdy nie zdefiniujemy powyższych metod, to w przypadku odczytu nieistniejącej właściwości otrzymamy null, natomiast gdy będziemy chcieli do takiej przypisać wartość, zostanie ona w tym momencie utworzona. Metoda call() działa analogicznie do poprzednich, dotyczy jednak metod obiektu. W przypadku, gdy nie zdefiniujemy cal() i wywołujemy nieistniejącą metodę, zostanie wyświetlony odpowiedni błąd, a działanie skryptu zatrzymane. 3. Dziedziczenie class osoba public function przedstaw_sie() return $this -> imie.' '.$this -> nazwisko; public function construct($imie, $nazwisko) // to też jest konstruktor $this -> imie = $imie; $this -> nazwisko = $nazwisko; class pracownik extends osoba public $zarobki; public function construct($imie, $nazwisko, $wynagrodzenie) parent:: construct($imie, $nazwisko); //konstruktor klasy nadrzędnej $this -> zarobki = $wynagrodzenie; public function przedstaw_sie() return parent::przedstaw_sie().' (wynagrodzenie '.$this->zarobki.')'; //wywołanie metody z klasy nadrzędnej 5. Dynamiczne tworzenie pól class magazyn private $pole_pryw = 24; public function dodaj_pole($nazwa, $wartosc) // dynamiczne tworzenie pola - jak zwykla zmienna $this -> $nazwa = $wartosc; $magazyn = new magazyn; $magazyn -> dodaj_pole('pole1', time()); $magazyn -> dodaj_pole('pole2', rand(0,100)); $magazyn -> dodaj_pole('pole3', 13);

foreach($magazyn as $nazwa => $wartosc) echo $nazwa.' => '.$wartosc.'<br/>'; Zadanie 1 (40 pkt) Zasady gry super farmer ra jest przeznaczona dla 2,3 lub 4 graczy. Wszyscy gracze rozpoczynają grę z pustymi zagrodami. Gracz, na którego przypada kolejka, rzuca dwiema dwunastościennymiymi kostkami. Gdy gracz nie ma jeszcze żadnych zwierząt w swojej zagrodzie, a na kostkach wypadną różne obrazki, to nic się nie dzieje. Jeżeli jednak na obu kostkach wypadnie obrazek takiego samego zwierzęcia, gracz dostaje to zwierzę z banku, a właściwie ze stada, bo takiej nazwy używa się w grze. Gdy gracz ma już jakieś zwierzęta, dodaje się ich liczbę do tego co wypadło na kostkach i wynik dzieli przez dwa (z ewentualnym zaokrągleniem w dół). Jeżeli gracz ma na przykład 5 królików, 3 owce i 2 świnie, a na kostkach wypadł królik i owca, to dostaje 3 króliki i 2 owce. Może się jednak zdarzyć, że w stadzie jest mniej zwierząt, niz graczowi należy sie w wyniku rzutu. W takiej sytuacji gracz otrzymuje tylko tyle, ile jest w stadzie, a reszta przepada. Przed rzutem kostkami można dokonać jednej wymiany ze stadem, po kursie podanym w specjalnej tabeli. Jedna owca jest warta 6 królików, jedną świnię można wymienić na dwie owce itd. Można albo wymienić jedno cenniejsze zwierzę na odpowiednią liczbę tańszych (np. jedną świnię ma owcę i 6 królików), albo złożyć kilka mniej cennych na jedno droższe (np. jedną krowę, dwie świnie i dwie owce na jednego konia). Gra trwa do chwili, gdy jeden z graczy zbierze przynajmniej po jednym przedstawicielu każdego z pięciu gatunków zwierząt: królika, owcę, świnię, krowę i konia. Gra nie byłaby specjalnie ciekawa, gdyby nie element ryzyka. Na kostkach jest także lis i wilk. Co się dzieje, gdy gracz wylosuje jednego z drapieżników? Jeżeli na kostce wypadnie lis, gracz traci wszystkie króliki. Inne zwierzęta nie są przez lisa zagrożone. Gorzej jest wtedy, gdy wypadnie wilk. Gracz traci wówczas wszystkie zwierzęta z wyjątkiem konia. Ale przed zagrożeniem ze strony lisa i wilka można się zabezpieczyć, kupując psy. Mały pies, który jest wart tyle co owca, czyli 6 królików, chroni przed atakiem lisa. Gdy gracz ma małego psa, a na kostce wypadnie lis, gracz oddaje do stada małego psa, a króliki pozostają w jego zagrodzie. Analogicznie duży pies, stanowiący równowartość krowy, chroni przed wilkiem. Rekwizyty w grze: - kostka zielona (wilk, krowa, świnia, 3 owce, 6 królików), - kostka czerwona (lis, koń, 2 świnie, 2 owce, 6 królików), - 60 królików, - 24 owce, - 20 świń, - 12 krów, - 6 koni, - 4 małe psy, - 2 duże psy, Tabela wymiany 1 owca = 6 królików 1 świnia = 2 owce = 12 królików = 1 owca + 6 królików 1 krowa = 3 świnie = 6 owiec = 36 królików 1 koń = 2 krowy = 6 świń = 12 owiec = 1 krowa + 1 świnia + 1 owca + 18 królików 1 mały pies = 1 owca = 6 królików 1 duży pies = 1 krowa = 3 świnie = 6 owiec = 36 królików

Jak wygrać? Superfarmer jest grą z dużym udziałem losu i dlatego zdarza się, że osoba grająca pierwszy raz, dzięki szczęśliwym rzutom, pokonuje doświadczonych graczy. Niemniej jednak warto zapamiętać kilka wskazówek, pozwalających zwiekszyć swoje szanse na zwycięstwo. 1. Sprawdzaj przed rzutem, czy w stadzie jest wystarczająca liczba zwierząt. Jeżeli masz np. 15 królików, a w stadzie zostały 3, to dostaniesz tylko 3 króliki, a nie 8. 2. Staraj się jak najszybciej wymienic posiadane zwierzęta na konia. 3. Gdy masz dużo królików, weź ze stada małego psa. 4. W stadzie są tylko dwa duże psy. Gdy gra więcej osób, nie dla wszystkich wystarczy. Bazując na powyższych przykładach oraz zasadach gry, proszę zaproponować rozwiązanie, które pozwoli przeprowadzić rozgrywkę w grę super farmer dla 2,3 lub 4 graczy przy wykorzystaniu przeglądarki internetowej. Oczywiście jest to gra "turowa" czyli ci sami gracze korzystają z jednej przeglądarki, realizując poszczególne kroki gry "na zmianę". Aplikacja musi być zrealizowana "obiektowo" przy wykorzystaniu również wiedzy z poprzednich list zadań. Ponadto jest to gra, zatem "atrakcyjność wizualna" będzie istotnym elementem oceny. Rozwiązanie ma być w pełni obiektowe.