Projekt edukacyjny: Termin realizacji: 09.2014 – 01.2015 Zespół projektowy: Dominik Grzybowski Michał Kozłowski.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Programowanie w PMC.
Egzamin.
Schemat blokowy M START KONIEC
Programowanie w języku Visual Basic
Język ANSI C Funkcje Wykład: Programowanie komputerów
Języki programowania C++
Interaktywna prezentacja użytkowa
MS Access 2003 Kwerendy Paweł Górczyński.
-Microsoft PowerPoint -Microsoft Word -Microsoft Excel
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Macierze Maria Guzik.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Support.ebsco.com EBSCOhost Wyszukiwanie złożone (z wieloma frazami) Szkolenie.
Tablice.
Tworzenie prezentacji w programie PowerPoint
Algorytmy.
Dr Anna Kwiatkowska Instytut Informatyki
The GAME. Ogólna hierarchia klas PLANSZA Hierarchia klas POLE TripBoxNormalBoxSpecialBox.
Schemat Hornera Mgr inż. Michał Szucki.
Podstawy programowania
ADRESOWANIE WZGLĘDNE I BEZWZGLĘDNE Ćwiczenia
Tworzenie prezentacji w programie PowerPoint
Programowanie strukturalne i obiektowe
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
TABLICE C++.
Wyrażenia w Turbo Pascalu.
Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
Program do tworzenia prezentacji - uruchamianie i opis okna programu
Andrzej Repak Nr albumu
Formatowanie tabel. Formatowanie warunkowe. Wstawianie funkcji.
Logomocja Polska edycja Imagine.
Tytuł:Poradnik do programu PowerPoint?
Tworzenie komiksu MS PowerPoint Beata Sanakiewicz.
MICROSOFT Access TWORZENIE MAKR
Wzorce slajdów programu microsoft powerpoint
Aplikacje internetowe
Temat 7: Instrukcje warunkowe
Algorytmika Iteracje autor: Tadeusz Lachawiec.
MS Office MS PowerPoint 2007
Temat 8: Pętle.
Formatowanie tabel. Formatowanie warunkowe. Wstawianie funkcji.
prezentacja multimedialna
Algorytmy- Wprowadzenie do programowania
PWSW Mechatronika Wykład 7 Matlab cd.
Wzorce slajdów, animacje, różne orientacje slajdów
JabTalk - instrukcja. Przyciski paska wypowiedzi – odtwarzanie i czyszczenie Pasek wypowiedzi – wyświetla wybrane symbole i pozwala na ich odtworzenie.
Opracowały: Katarzyna Celarek V b Natalia Celarek V a.
Typy liczbowe, zmienne, operatory Zajęcia 4. Zmienne Zmienna – to w programowaniu element programu, który może mieć przypisaną pewną wartość (wartość.
PRZYKŁAD ROZWIĄZANIA KRATOWNICY
Projektowanie postaci formularza:
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcja obsługi aplikacji „Wizualizacja produktów CRH Klinkier”
Microsoft® Office Word
T ABELE PRZESTAWNE Daniel Galion. C O TO SĄ TABELE PRZESTAWNE I W JAKIM CELU SIĘ ICH UŻYWA ? Normalna tabela często zbyt mało czytelna ciężej znaleźć.
Tabele Przestawne Adam Wójcik Tomasz Kowalski.  Czym Tabele Przestawne są?  Jak je używać?  Zadania.
Do czego służy arkusz kalkulacyjny, jego budowa
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
programów ochrony powietrza planów działań krótkoterminowych
Wprowadzenie do zmiennych
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Haskell Składnia funkcji.
Najważniejsze informacje dotyczące programu Sway.
Zapis prezentacji:

Projekt edukacyjny: Termin realizacji: – Zespół projektowy: Dominik Grzybowski Michał Kozłowski

Gra została przeze mnie napisana w języku C++, w programie Code::Blocks. Używałem następujących bibliotek (w tym autorskiej klasy SOUNDS.h, o której powiem coś później):

Jest ich 15 (bez funkcji ‘main’ i ‘gotoxy’): menu główne wypełnianie tabeli cyframi wybór trudności losowanie współrzędnych bomb oblicz bomby w otoczeniu strzelanie wypisywanie tabeli w programie wypisywanie tabeli po przegranej sprawdź pole sprawdzanie całej planszy ekran o grze napis wygrana przechowywacz hall of fame

W grze zastosowałem zapis wyniku w postaci cyfr. Ustalany jest on na podstawie poziomu trudności i czasu przejścia planszy. Znacznik rozpoczęcia pomiaru czasu gry umieściłem na początku funkcji ‘strzelanie’, a zakończenia na początku funkcji ‘wygrana’. Jeżeli chodzi o obliczanie wyniku to posłużę się przykładem: Czas: 15 Poziom trudności: Easy, czyli od czasu odejmuję 20 (próg punktowy, dla każdego poziomu inny) Różnicę czasu i progu punktowego mnożę x(-2) i dodaję do wyniku Wynik ostateczny = 5 Obliczenia: 15 – 20 = -5 ; (15 – 20) x -2 = 10 ; = 5

Klasa ta oprócz konstruktora posiada 6 funkcji: PLAY_SOUND, PAUSE, STEMPO, USTEMPO, SLIDE i REPEAT. Za pomocą tej pierwszej dźwięk o określonej długości (ustalanej z tempa i odpowiednich mnożników) i określonej wysokości. W klasie SOUNDS zdefiniowałem wysokości wszystkich dźwięków od C0 do B7, czyli 8 oktaw. Funkcja PAUSE powoduje wstawienie pauzy w wybrane miejsce, a jej długość również zależy od tempa. STEMPO ustawia tempo na żądaną wartość, a USTEMPO ustawia je na domyślną wartość (możliwą do zmiany) 150BPM. SLIDE powoduje ześlizgnięcie się lub podjazd z jednego do drugiego dźwięku w określonym czasie. REPEAT umożliwia powtórzenie sekwencji dźwięków (max 16) wybraną ilość razy oraz zezwala na określenie długości poszczególnych dźwięków składowych. Oto, jak wygląda w całości:

1. Lista dostępnych akcji 2. Wpisanie 4 = wywołanie funkcji ‘ekran o grze’ 3. Wpisanie 1 = rozpoczęcie gry; widać wywołanie wielu funkcji, które m.in. przygotowują tabele do gry 4. Wpisanie 5 = wyjście z gry 5. Wpisanie 2 = wywołanie funkcji ‘hall of fame’ 6. [niewidoczne na screenie] Wpisanie 3 = otworzenie instrukcji do gry

MINESWEEPER MENU GŁÓWNE

1. Dwie pętle ‘for’, odpowiadające za wstawienie cyfry określonej podczas wywoływania tej funkcji 2. Tutaj następuje owo przypisanie

1.Za pomocą funkcji ‘gotoxy’ (zielona strzałka) określiłem pole wpisywania poziomu trudności przez gracza w miejscu oznaczonym strzałką czerwoną 2.Po raz pierwszy pojawia się bardziej złożona melodia, którą napisałem z wykorzystaniem mojej autorskiej klasy (klasa – własny typ danych) SOUNDS.h. Jest ona odtwarzana, gdy gracz wybierze tryb Impossible

MINESWEEPER WYBÓR TRUDNOŚCI

MINESWEEPER PRZYKŁADOWY WYBÓR POZIOMU TRUDNOŚCI

1. Zmienna ‘liczba_bomb’ określa ile min ma się znajdować na planszy w określonym poziomie trudności, np. na poziomie Easy są tylko 3 miny, a na Impossible ‘rand()’ oznacza, że cyfra jest losowana (w tym przypadku współrzędne), ale zaraz obok widzimy ograniczenie w postaci wyrażenia ‘x %= 10’, czyli losowa zmienna x równa jest reszcie z dzielenia (operator ‘%’) x / 10; oznacza to, że x może wynosić od 0 do 9; instrukcja ‘if’ powoduje, że jak wylosowane współrzędne są współrzędnymi miny, obieg pętli wykonywany jest jeszcze raz

1. Obliczana jest suma wartości wszystkich bomb w otoczeniu konkretnego pola (tu: dla prawego górnego rogu) 2. Bomba (jak można było zauważyć w wcześniejszym slajdzie) ma wartość 9, więc suma jest dzielona przez 9, dzięki czemu wynikiem jest liczba bomb w otoczeniu 3. Wartość sumy jest przypisywana do tablicy ‘schowek’ 4. Zawartość ‘schowka’ jest przepisywana to tablicy ‘tab’, która pokazuje po tej operacji obraz planszy po wygranej

1. Wywołanie funkcji ‘napis’ 2. Informacje o wybranym trybie strzału (domyślne jest odkrywanie planszy) 3. Jeżeli gracz będzie chciał odkryć pole już wcześniej odkryte, zostanie wyświetlony stosowny komunikat 4. Wywołanie funkcji ‘sprawdź pole’ 5. Informacje o wybranym trybie (tym razem o flagowaniu) 6. Analogicznie do punktu 3 7. Jeżeli gracz postawi flagę na fladze, wówczas to pole stanie się polem nieodkrytym (ze znakiem ‘?’)

1. Wywołanie funkcji ‘sprawdzanie całej planszy’ 2. Jeżeli zmienna ‘czywygrana’ jest równa 1 to następuje wyjście z funkcji ‘strzelanie’ 3. Wywołanie funkcji ‘wypisywanie tabeli w programie’ 4. Jeżeli podając współrzędną ‘x’ gracz wpisze ‘e’ to będzie mógł wyjść z gry 5. Tak samo: jeżeli wpisze ‘A’, wywoła funkcję ‘ekran o grze’

1. Jeżeli podając zmienną ‘x’ gracz wpisze ‘f’, tryb strzelania zmieni się na flagowanie 2. Co się dzieje wewnątrz operacji flagowania

MINESWEEPER PRZYKŁADOWY EKRAN GRY

MINESWEEPER FLAGOWANIE

MINESWEEPER ALERT 1 I 2

MINESWEEPER RUCH TUŻ-TUŻ PRZED WYGRANĄ

MINESWEEPER EKRAN WYJŚCIA PODCZAS GRY

1. Wewnątrz funkcji ma miejsce narysowanie tabeli w oknie programu, dodając kolory do poszczególnych rodzajów pól, tutaj: mina 2. Tutaj: pole nieodkryte 3. Tutaj: flaga (kolory pól z liczą bomb w otoczeniu są niewidoczne screenie)

1. To samo, co w poprzedniej funkcji, ale jest dodane pole, które spowodowało przegraną oraz zmieniony jest znak bomby na ‘X’

MINESWEEPER PLANSZA PO PRZEGRANEJ I „GAME OVER”

1. Jeżeli wartość pola jest równa 0, to wykonywane są poniższe operacje 2. Odrębna operacja dla każdego pola na planszy (tu: dla pól środkowych) 3. Wywołanie funkcji przez samą siebie, ze zmodyfikowanymi argumentami; przypomina to pętlę, która kończy się w momencie, aż żaden warunek w instrukcjach ‘if’ nie został spełniony 4. Jeżeli gracz trafi w bombę, to wywoływana jest funkcja ‘wypisywanie tabeli po przegranej’ 5. Melodia (z wykorzystaniem SOUNDS.h) odtwarzana ekranowi przegranej

1. Następuje sprawdzenie całej planszy i zapisanie w zmiennych ilości pól: z minami, z flagami, z polami nieodkrytymi 2. Obliczana jest ilość flag, które można postawić (na podstawie liczby bomb i postawionych wcześniej flag) 3. Zaprezentowanie na ekranie wyników obliczeń 4. Jeżeli ilość dostępnych flag będzie wynosić 0, a wszystkie pola zostaną odkryte, zostaje wywołana funkcja ‘wygrana’

1. Zostaje wyświetlone logo gry 2. Tablice znakowe zawierające wyrażenia, które zostaną wypisane w punkcie 3 3. Pętla, która w sposób audio-wizualny wypisuje na ekran treść tablic znakowych

MINESWEEPER O GRZE

1. Wypisanie nagłówka na górze ekranu gry

1. Wypisanie dużego napisu w ASCII art. 2. Jeżeli wygrasz grę na poziomie wyższym niż Medium, zostaje odtworzona 40 sekundowa melodia (napisana za pomocą SOUNDS.h), której monstrualny kod nie zmieściłby się na jednym slajdzie(!) 3. Po tym wszystkim następuje wywołanie funkcji ‘przechowywacz’, która jest odpowiedzialna za zapis

MINESWEEPER WYGRANA

1. W tych zmiennych zapisane będą dane o aktualnej dacie i imię gracza 2. Pobór aktualnej daty i zapis jej do zmiennej ‘aktualnyczas’ 3. Definicja kilku operacji (dla wygody) 4. Napis podsumowanie 5. Ustalenie wartości kilku zmiennych na podstawie wybranego poziomu trudności 6. Obliczeni innych liczb składowych potrzebnych do określenia wyniku (jego zapis do pliku znajduje się poniżej, ale nie zmieściłby się nawet na dwóch slajdach, ze względu na dużą ilość operacji)

MINESWEEPER EKRAN PODSUMOWANIA I DWA ODMIENNE WYNIKI

1. Pobór danych z plików, zawierających zapisane informacje 2. Ładne zaprezentowanie ich na ekranie, z wyróżnieniem pierwszego miejsca

MINESWEEPER EKRAN ZAPISU I WIDOCZNE POTEM HALL OF FAME