Instrukcja: 1. Możecie pracować wykorzystując ikony albo widok C#, wybór nie będzie miał wpływu na ocenę pracy. 2. Rozwiązania zadań zapisujcie w folderze znajdującym się na pulpicie Waszego komputera. Jego nazwa jest identyczna jak przydzielony Wam kod (np. C05, D02 itp.). Rozwiązania zapisane w innym folderze nie będą brane pod uwagę. W przypadku problemów z zapisem plików poproście o pomoc nadzorującego nauczyciela. 3. Swoje rozwiązania zapisujcie pod nazwami zgodnymi z numerem zadania: 1.sgpbprj, 2.sgpbprj, 3.sgpbprj. 4. Regularnie zapisujcie swoje programy. Pozwoli to uniknąć niepotrzebnych strat w przypadku problemów z komputerem. 5. W programie nie wpisujcie nazwy swojego zespołu lub swoich imion i nazwisk. Rozwiązania zadań muszą pozostać anonimowe. 6. W przypadku jakichkolwiek problemów z komputerem, zgłoście to natychmiast nauczycielowi nadzorującemu. 7. Na pulpicie znajdziecie plik z zadaniami pod nazwą Baltie_2011_MK_CD_PL.pdf, gdzie będziecie mogli obejrzeć treść zadań w kolorze. 8. Podczas rozwiązywania zadań nie możecie korzystać z żadnych innych plików! Jako rozwiązanie będą oceniane tylko pliki 1.sgpbprj, 2.sgpbprj, 3.sgpbprj. Punktowanie: Punkty, które są widoczne w każdym z zadań możecie uzyskać realizując w swoim programie poszczególne części zadań. Tak uzyskana ocena będzie mnożona przez współczynnik z przedziału od 1 do 2, który będzie przyznany za efektywność rozwiązania i przejrzystość programu. Oznacza, to że liczba punktów za dane zadanie może się nawet podwoić. Współczynnik będzie oceniał efektywność programu (krótkość rozwiązania), czy skrócenie programu uzyskano przez użycie metod, czy były sensownie użyte bloki poleceń, cykle, instrukcje warunkowe, zmienne, tablice itp. oraz oczywiście całkowitą elegancję rozwiązania. Program musi także być przejrzysty, podzielony sensownie na wiersze, które w razie potrzeby powinny być poprzedzone wcięciami (np. wewnątrz metody lub cyklu). Dla więjszej przejrzystości możecie wykorzystać metody. Każda z części programu powinna być poprzedzona komentarzem.
Zadanie 1 Automat z napojami Łączna liczba punktów: 60 Pracujcie w trybie 3D z Baltiem. a) Baltie z nieskończoną prędkością wyczaruje pomieszczenie z automatem z napojami. Podłoga to powierzchnia w rozmiarze 3 x 3 z modeli SGP.7.sgpm, z tyłu jest ściana z modeli SGP.47.sgpm, na niej znajdują się dwie szafki model SGP.49.sgpm. Na górnej szafce umieście automat z napojami - model SGP.74.sgpm trzykrotnie powiększonyt. Pod ním wstawcie stół model.sgp.52.sgpm. Na automacie w jego dolnej lewej części wstawcie 4 kwadraty o boku 0,25 metrów w kolorach: czerwonym, zielonym, niebieskim i brązowym, jak to jest przedstawiona na obr. 1 2. (nie muszą być wstawione dokładnie na ścianie automatu) Baltie ma stać naprzeciw automatu na początku pomieszczenia i czekać na naciśnięcie klawisza. Obr. 1 1. 10 punktów Obr. 1 1 Obr. 1 2 b) Potem Baltie dojdzie przed automat, a nad automatem pojawi się jako teksty 3D dwa napisy wybierz kolor napoju i czerwony, zielony, niebieski, brazowy. Napisy umieść pierwszy nad drugim. Ustawcie wielkość czcionki 2, kolor biały i dowolny krój pisma. (Patrz obr. 1 4) W lewym górnym rogu ekranu pojawi się pole wejściowe, w którym będzie wpisywany wybrany kolor napoju. (Obr. 1 3) Gdy użytkownik poda właściwy kolor, z automatu z dowolną prędkością wyleci kubek w tym kolorze i zjedzie w dół do poziomu stołu. Kubek to walec o promieniu 0,1 metra i wysokości 0,2 metra. Kubek pozostanie na stole przez 1 sekundę, potem zniknie(obr. 1 5, obr. 1 6). Jeśli wpiszemy niewłaściwe słowo, pole wejściowe pojawi się ponownie. Sytuacja ma się powtarzać do momentu, gdy wpiszemy w polu słowo koniec. Wówczas teksty i Baltie znikną, a program będzie czekał na naciśnięcie klawisza. 18 punktów Obr. 1 3 Obr. 1-4
Obr. 1 5 Obr. 1-6 c) Baltie ponownie pojawi się na wyjściowej pozycji i podejdzie do automatu. Wówczas pojawią się napisy i pole wejściowe. Tym razem jednak po wpisaniu przez użytkonika koloru napoju nad automatem pojawi się kolejny tekst 3D: ZAPLATA 6 GULDENOW! w wielkości 2 i żółtym kolorze. W lewym górny rogu ekranu pod poprzednim polem wejściowym pojawi się napis: Wloz monety wpisz wartość 1 albo 5 albo 10 a pod nim kolejne pole wejściowe do wpisywania liczb. (obr. 1 7) Obr. 1-7 W polu wejściowym użytkownik może wpisać tylko liczby 1, 5 albo 10. Gdy poda coś innego w miejcu tekstu Wloz monety pojawi się: Zla moneta. Potem program poczeka pół sekundy i w tym samym miejscu pojawi się wysokość wkładu napis: Wklad = Goldenow (w miejsce kropek program wstawi sumę włożonych pieniędzy.) Po kolejnej pół sekundy program znowu napisze: Wloz monety wpisz wartość 1 albo 5 albo 10 a pod nim pojawi się pole liczbowe do wpisywanie liczb (Obr. 1 8 až 1 10) 13 punktów Obr 1 8 Obr. 1 9 Obr. 1-10 d) Jeśli użytkownik poda poprawną wartość, program ją zapamiętuje. Jeśli ich suma jest mniejsza niż potrzebne 6 GOLDENÓW, staje bedzie pojawiał się napis Wklad = Guldenow i Wloz monety
wpisz wartość 1 albo 5 albo 10. Patrz obr. 1 11 a 1 12. Obr. 1 11 Obr. 1 12 W chwili, gdy wkład będzie wyższy niż 6 GULDENÓW, program poczeka 5 sekund, zmaże teksty w lewym górnym rogu (teksty 3D pozostają) a automat wyda kubek jak w części b). Jeśli suma wartości monet będzie większa do 6, automat zwróci resztę. Może zwraca tylko monety 1 albo 5. Zwrot będzie polegał na wyświetleniu na ekranie tekstu: Zwrot - razy. Gulden. Patrz. obr. 1 13 a 1 14. Obr. 1 13 Obr. 1 14 Po zwrocie pieniędzy program poczeka 5 s, automat wyda kubek z napojem, zmazane zostaną teksty i znowu pojawi się możliwość wyboru koloru napoju. (Obr. 1 15) Program skończy się w chwili, gdy w górny polu wejściowym w miejsce koloru wpiszemy słowo koniec. 19 punktów Obr. 1 15
Zadanie 2 Gra tekstowa Łączna liczba punktów: 38 Pacujecie w trybie Consola. a) W tej grze tekstowej gracz porusza się po fikcyjnej mapie miasta Karlove Vary za pomocą liczb 1, 2, 3, 4 w kierunkach północ, południe, wschód i zachów. Gdy naciśnie liczbę 1, gracz przesunie się na mapie na północ (NORTH), liczbę 2 na południe (SOUTH), liczbę 3 na wschód (EAST) a liczbę 4 na zachód (WEST). Mapa przedstawiona jest na obrazku. Możecie wykorzystać warian mapy po angielsku lub w swoim języku. Patrz obr. 2 1 lub obr. 2 2. PÓŁNOC 1 LAS WIEZA LOTNISKO Opis: Gesty las Spa Opis: Widok okolicy Opis: Opcje podrozy WSCHÓD 3 KOLUMNADA Opis: Drewniana kolumnada ZRODLO TERMALNE Opis: Najcieplejsze zrodlo WYCIAG Opis: Wyciag wycieczkowy ZACHÓD 4 HOTEL PUPP ZRODLA TERMY Opis: Najlepszy hotel Opis: Zrodla lecznicze Opis: Basen POŁUDNIE 2 Obr 2-1 NORTH. 1 You are in area: FOREST You are in area: TOWER You are in area: AIRPORT EAST 3 Description: Thick forest Spa You are in area: COLONNADE Description: Wooden colonnade You are in areai: HOTEL PUPP Description: The best hotel Description: Views You are in area: THERMAL SPRING Description: The warmest spring You are in area: SPRINGS Description: Spa springs Description: Travel option You are in area: LIFT Description: Cruise lift You are in area: THERMAL Description: Swimming Pool WEST 4 SOUTH.2 Obr. 2-2
Program działa tak, że wypisuje w którym obszarze gracz się znajduje, wyświetla jego opis oraz możliwości, które ma gracz. Na początku znajdujemy się w obszarze LAS (FOREST). Wysztkie napisy będą jak na obrazku 2 3. 5 punktów Obr. 2 3 b) Następnie gra przebiega następująco: gracz naciska odpowiednią cyfrę na klawiaturze i po naciśnięciu klawisza ENTER liczba ta zostanie wyświetlona w następnych wierszu. Później wstawiony będzie pusty wiersz i dalej zostanie wstawiony opis obszaru, w którym znajduje się gracz i jakie ma możliwości dalszej gry. W przypadku, gdy w którymś kierunku mapa się kończy program wyświetli np.: Na zachod: Nie wolno ( Unavailable ). Wszystkie nazwy i opisy obszarów weźcie z tabeli znajdującej się na obr. 2 1 (albo obr. 2 2). Jeden z wariantów przebiegu gry jest na obr. 2 4 21 punktów Obr. 2 4 c) Jeżeli gracz wybierze kierunek, w którym ni może się poruszać, np. gdy w obszarze KOLUMNADA wybierze ruch na zachód program ma ponownie program ponownie wyświetli opis obszaru, w którym gracz się znajduje patrz obr. 2 5 Obr. 2 5 Gra się skończy, gdy w miejsce liczby wpiszemy słowo koniec ( exit ). 7 punktów
Zadanie 3 Oświetlenie placu Łączna liczba punktów: 55 Pracujcie w trybie 3D. a) Po uruchomieniu programu podamy liczbę N większą od 3, program wyświetli plac N x N metrów z szarych kwadratów w rozmiarze 1m x 1m. Nad placem na wysokości 2m losowo pojawi się dokładnie 6 lamp. Lampy to żółte kule o promieniu 0,2m (obr. 1). Środki żółtych kul są na wysokości 2m, nad środkami szarych kwadratów (obr. 2). Program czeka na naciśnięcie klawisza. 10 punktów Obr. 3 1 Obr. 3-2 b) Wszystkie lampy oświetlają szary plac (obr. 3) według następujących zasad: Intensywność oświetlenia pojedynczych kwadratów placu to podane w procentach nasycenie koloru żółtego. Kwadrat pod lampą będzie miał 50% nasycenia koloru żółtego, kwadraty dookoła niego 40% nasycenia koloru żółtego, w kolejnych intensywność zmniejsza się o 10% (obr. 3-4). Jeśli kwadrat oświetla więcej lamp procenty nasycenia koloru żółtego się sumują, nie mogą jednak przekraczać 100%. W przypadku, gdy suma jest większa od 100%, wartość intensywności oświetlenia będzie równa 100% (obr. 3-5). Program czeka na naciśnięcie klawisza. 15 punktów Obr. 3 3 Obr. 3-4 Obr. 3-5
c) Program znajduje najlepiej oświetlony kwadrat i zaznacza go czerwoną kulką o promieniu 0,1m na środku tego kwadratu. Jeśli takich kwadratów jest więcej, program musi zaznaczyć je wszystkie (patrz obr. 3-6). Program znowu czeka na naciśnięcie klawisza. 15 punktów Obr. 3-6 d) Zmieńcie cały program,by obejmował sytuację, gdy lampy nie znajdują na tej samej wysokości, ale losowo ustawiana im jest jedna z wysokości 2m, 3m, 4m, 5m (inne wartości nie są możliwe). Z wysokością lampy system oświetlenia zmieni się w następujący sposób: lampa na wysokości 2m pozostają zasady z punktu b) lampa na wysokości 3m kwadrat pod lampą ma intensywność 40% koloru żółtego, dalsze kolejno o 10% mniej lampa na wysokości 4m - kwadrat pod lampą ma intensywność 30% koloru żółtego, dalsze kolejno o 10% mniej lampa na wysokości 5m - kwadrat pod lampą ma intensywność 20% koloru żółtego, dalsze kolejno o 10% mniej Na obr. 3 7 przedstawiono intensywność oświetlenia dla lampy znajdującej się na wysokości 4m. Program znajduje najlepiej oświetlony kwadrat i zaznacza go czerwoną. Jeśli takich kwadratów jest więcej, program musi zaznaczyć je wszystkie. (obr..3-8). Program znowu czeka na naciśnięcie klawisza. 15 punktów Obr. 3 7 Obr. 3-8