Do spisu
modułów
2.2. Moduł
Interfejs
-
- 2.2.3.1. Interfejs
- 2.2.3.2. GuzikGra
- 2.2.3.3. Guzik
- 2.2.3.4. GuzikPocz
- 2.2.3.5. GuzikEtap
- 2.2.3.6. OknoGry
- 2.2.3.7. OknoInformacyjne
- 2.2.3.8. StatystykaEtapu
- 2.2.3.9. StatystykaGry
-
Osoby pracujące
nad modułem
|
Autor: |
Anna Doroś |
|
|
Weryfikator: |
Damian Wójtowicz |
|
|
Tester: |
Michał Wiktor Żmijewski |
|
Poczatek
Opis stałych i
typów nieobiektowych
patrz:
#include <stale_Interfejs.h>
#include <sciezki.h>
#include <stale_StatystykaGry.h>
#include <stale_StatystykaEtapu.h>
Poczatek
Klasa Interfejs
Klasa ta służy do komunikacji z użytkownikiem i
odpowiednim interpretowaniem jego żądań oraz do
sterowania grą.
Nadklasa: QWiget
-
- Funkcje
publiczne
- Interfejs(QWidget *parent=0,const char
*name=0)
- ~Interfejs()
Atrybuty
prywatne
|
-
wskaźnik na obiekt klasy QTimer służy do
sterowania grą |
|
-
wskaźnik na obiekt klasy QTimer służy do
odmierzania czasu trwania gry |
|
-
wskaźnik na obiekt klasy QTimer służy do
wypuszczania lemingów z wejścia |
|
- opisuje
skrót klawiszowy do robienia zdjęcia
planszy |
|
- mówi ile lemingów
należy wypuścić z wejścia |
|
- mówi ile lemingów
znajduje sie na planszy |
|
- opisuje stan pauzy (
aktywna lub nie ) |
|
- informuje czy etap
jeszcze trwa (nie jest kończony) |
|
- jaki jest odstep
między wychodzącymi z wejścia lemingami -
aby zachować jednolity odstęp mimo
używania pauzy |
|
- aby
zachować prawidłowe odmierzanie czasu mimo
używania pauzy |
|
- rodzej nowego
elementu -wstawianego komandosa |
|
- informuje czy
wczytane zostały parametry kolejnego etapu |
- Param_etap
parametry_etapu
|
- są to parametry
aktualnego etapu |
- StatystykaEtapu *
stat_etap
|
- wskaźnik na
statystykę etapu |
|
- wskaźnik na
statystykę gry |
|
- obiekt klasy Okno
gry , w jego skład wchodzą : guziki oraz
pasek informacyjny |
- Guzik *
guziki[ILE_GUZIKOW]
|
- wskaźniki
na guziki okien :początkowego
międzetapowego oraz końcowego. |
- char *
sloty[ILE_DODATKOW]
|
- tablica slotów
wykorzystywana przy dodawaniu komandosów |
- QList<ElementSwiata>
lista_elem
|
- lista elementów
świata |
|
- czas trwania etapu |
|
- liczba lemingow do
przeprowadzenia |
- int
dodatkowi[ILE_DODATKOW]
|
- tablica zawierajaca
informacje o liczbie dodatkowych komandosow i
bomb |
Funkcje
prywatne
- void
pokazOknoPoczatkowe()
- void
pokazOknoWejsciaDoEtapu()
- void
pokazOknoWyjsciaZEtapu()
- void
rozpocznijKolejnyEtap()
- void
dodaj(int)
- void
podsumujEtap()
- void
zakonczEtap()
Sloty prywatne
- void nowaBomba(Para,int)
- void nowyBloker(Para,int),
void nowyKopaczDolny(Para,int),
void nowyKopaczPoziomy(Para,int),
void nowyKopaczPionowy(Para,int),
void nowyKopaczGorny(Para,int),
void nowySchodkarzGorny(Para,int),void
nowySchodkarzDolny(Para,int),
void nowySchodkarzPoziomy(Para,int)
- void dodajBlokera(),
void dodajBombe(),
void dodajKopaczaDolnego(),
void dodajKopaczaPoziomego(),
void dodajKopaczaPionowego(),
void dodajKopaczaGornego(),
void dodajSchodkarzaGornego(),
void dodajSchodkarzaDolnego(),
void dodajSchodkarzaPoziomego()
- void obsluzGre()
- void wypuscLeminga()
- void pauza()
- void aktualizujCzas()
- void jakiOdstep()
- void mouseMoveEvent(QMouseEvent*
m)
- void nowaGra()
- void gramyOdPoczatku()
- void kolejnyEtap()
- void przygotuj()
- void pokazZasadyGry()
- void pokazInformacje()
- void zaglada()
- void zakonczenie()
Sygnaly
- void nowy(Wejscie*), void nowy(Wyjscie*),
void nowy(Leming*), void nowy(Bloker*), void
nowy(Bomba*), void nowy(SchodkarzGorny*),
void nowy(SchodkarzPoziomy*), void
nowy(SchodkarzDolny*), void
nowy(KopaczSkosnyWGore*), void
nowy(KopaczPoziomy*),void
nowy(KopaczPionowy*), void
nowy(KopaczSkosnyWDol*)
- void usun(ElementSwiata*)
- void kursor(typ_rodzaj)
- void jestMysz()
- void rusz()
- void ruszPauza()
void nowaBomba(Para,int)
Tworzy nową bombę i wstawia
ją na listę elementów świata. Bomba
umieszczona zostaje na planszy na pozycji
określonej przez zmienną typu Para , o ile
istnieje taka możliwość. Jeśli taka
możliwość nie istnieje - gracz musi ponownie
spróbować wstawić bombę lub zmienić wybór
wstawianego elementu.
void nowyBloker(Para,int), void
nowyKopaczDolny(Para,int), void
nowyKopaczPoziomy(Para,int), void
nowyKopaczPionowy(Para,int), void
nowyKopaczGorny(Para,int), void
nowySchodkarzGorny(Para,int),void
nowySchodkarzDolny(Para,int), void
nowySchodkarzPoziomy(Para,int)
Metody te tworzą nowego
komandosa (odpowiedniego typu -patrz nazwa
metody) i wstawia go na liste elementów świata.
Komandosumieszczony zostaje na planszy na pozycji
określonej przez zmienną typu Para i zwrotem
określonym przez zmienną typu int, o ile
istnieje taka możliwość. Jeśli taka
możliwość nie istnieje - gracz musi ponownie
sprobować wstawić schodkarza poziomego lub
zmienić wybór wstawianego elementu.
void dodajBlokera(), void dodajBombe(),
void dodajKopaczaDolnego(), void
dodajKopaczaPoziomego(), void
dodajKopaczaPionowego(), void dodajKopaczaGornego(),
void dodajSchodkarzaGornego(), void
dodajSchodkarzaDolnego(), void
dodajSchodkarzaPoziomego()
Próba wstawienia komandosa odpowiedniego typu
(patrz nazwa).
void obsluzGre()
Powodeje wyslanie do
obrazu_planszy oraz do wszystkich elementów
świata impulsu pobudzającego do dzialania.
void wypuscLeminga()
Powoduje stworzenie nowego
leminga i wypuszczenie go z wejścia.
void pauza()
Powoduje zatrzymanie gry aż do
wciśnięcia przez użytkownika dowolnego innego
klawisza.
void aktualizujCzas()
Aktualizuja czasu trwania gry.
void jakiOdstep()
Obliczenie odstepu między
wypuszczeniem kolejnych lemingwi odliczaniem
kolejnych sekund trwania gry
void
mouseMoveEvent(QMouseEvent* m)
Kontrola położenia myszy.
void nowaGra()
Odebranie żądania
użytkownika rozpoczęcia nowej gry.
void gramyOdPoczatku()
Odebranie żądania
użytkownika rozpoczęcia gry od początku.
void kolejnyEtap()
Funkcja jest odpowiedzialna za
przejście do kolejnego etapu.
void przygotuj()
Funkcja jest wywoływana, gdy
ma się rozpocząć kolejny etap.
void pokazZasadyGry()
Pokazanie okna zasad gry.
void pokazInformacje()
Pokazanie okna informacji o
grze.
void zaglada()
Niszczenie wszystkich lemingów
znajdujących się na planszy: (gdy etap
kończony jest inaczej niż z powodu braku
czasu).
void zakonczenie()
Powoduje zakończenie gry i
powrót do okna początkowego.
void nowy(Wejscie*), void
nowy(Wyjscie*), void nowy(Leming*), void
nowy(Bloker*), void nowy(Bomba*), void
nowy(SchodkarzGorny*), void nowy(SchodkarzPoziomy*),
void nowy(SchodkarzDolny*), void
nowy(KopaczSkosnyWGore*), void
nowy(KopaczPoziomy*),void nowy(KopaczPionowy*), void
nowy(KopaczSkosnyWDol*)
Są to sygnały wysłane do
ObrazuPlanszy i oznaczają powstanie nowego
elementu świata odpowiedniego typu.
void usun(ElementSwiata*)
Jest to sygnał wysyłany do
ObrazuPlanszy i oznacza "usuń podany
element świata".
void kursor(typ_rodzaj)
Jest to sygnał wysyłany do
obrazu planszy i oznacza żądanie zmiany
wyglądu kursora.
void jestMysz()
Sygnał ten służy do
przesyłania informacji do ObrazuPlanszy o
położeniu myszy.
void rusz()
Aktywowanie odświeżania
obrazu planszy w trybie normalnym.
void ruszPauza()
Aktywowanie odświeżania
obrazu planszy podczas pauzy.
Poczatek
Klasa GuzikGra
Opisuje obiekty składające się z
przycisku oraz z pola w którym może (ale nie musi!)
być wyświetlana liczba.
Nadklasa: QWiget
-
-
Atrybuty
|
- przyjmuje
wartość liczby istniejących obiektów tej
klasy. Jest to pomocne przy identyfikacji
miejsca wstawienia przycisku |
|
- liczba (w
tym przypadku liczba komandosów)
wyświetlana w polu numerek |
|
- rodzaj czcionki |
|
- pole
wyświetlające cyfrę |
|
- przycisk |
- Funkcje
publiczne
- GuzikGra(const char *
maska,const char * obrazek,QWidget*
parent=0,const char * name=0)
- ~GuzikGra()
- void nowyNumerek(int nowy)
- void ukryjNumerek()
- void odejmij()
- Sygnały
void nowyNumerek(int nowy)
Inicjalizacja zmiennej
ilu_komandosów.
void ukryjNumerek()
Funkcja ukrywająca numerek -
guziki nie będą go pokazywać.
void odejmij()
Funkcja powoduje zmianę
wartości zmiennej ilu_komandosów.
void clicked()
Funkcja ta służy do
przekazywania ojcu obiektu informacji o
kliknięciu na przycisku.
Poczatek
Klasa Guzik
Klasa ta jest klasą podstawową
dla klas GuzikPocz oraz GuzikEtap.Obiekty tej klasy
są zwykłymi przyciskami, z tym że wstawiają sie
do okna-ojca zgodnie z pewnym schematem określonym
stałymi. Przyciski nie posiadają napisów, ale
obrazki różnych kształtów.
Nadklasa: QPushButton
-
- Funkcje
publiczne
Poczatek
Klasa GuzikPocz
Jest to klasa opisująca guzik okna
początkowego.
Nadklasa: Guzik
-
- Atrybuty
- Funkcje
publiczne
Poczatek
Klasa GuzikEtap
Jest to klasa opisująca guzik okna
międzyetapowego oraz końcowego.
Nadklasa: Guzik
-
- Atrybuty
- static int ile_guzikow -
określa liczbę istniejących już obiektow
klasy, między innymi na podstawie tej
zmiennej wybierabe jest położnie przycisku
w oknie - ojcu.
- Funkcje
publiczne
Poczatek
Klasa OknoGry
Jest to klasa opisująca fragment
oka gry: wszystkie przyciski(są to obiekty klasy
GuzikGra) oraz pasek informacyjny. Obiekty tej klasy
odbierają wszelkie żadania użytkownika i
przekazują je do realizacji obiektowi klasy
Interfejs.
Nadklasa: QWidget
-
- Atrybuty
- GuzikGra *
guziki[ILE_GUZIKOW_GRY]
|
- przyciski do
komunikacji z użytkownikiem |
- char *
teksty_help[ILE_GUZIKOW_GRY]
|
- tablica
napisów wyświetlanych na pasku
informacyjnym w razie potrzeby |
|
- pasek
informacyjny |
- QLabel *
teksty[ILE_TEKSTOW_NA_PASKU]
|
- napisy
znajdujące się na pasku |
- QLabel *
liczby[ILE_LICZB_NA_PASKU]
|
- liczby znajdujące się
na pasku |
|
- krój czcinki |
- Funkcje
publiczne
- OknoGry(QWidget
*parent=0,const char *name=0)
Stworzenie obiektu,wszystkich guzikow oraz
paska informacyjnego.
- ~OknoGry()
- void
mouseMoveEvent(QMouseEvent*)
Kontrola ruchu myszki
- void wstawNumerki(Param_etap
parametry)
Funkcja ta inicjalizuje wartosci które
będą wyświetlane wraz z przyciskami.
- void odejmij(int i)
Funkcja powoduje zmniejszenia o 1 cyfry
wyświetlanej przy guziku wyznaczonym przez i
(odpowiednia stała).
- void zmianaCzas(int ile)
zmiana wartosci liczby opisującej
czas,która jest wyświetlana na pasku
informacyjnym
- void zmianaLeming(int ile)
zmiana wartosci liczby opisującej liczbę
lemingów na planszy (wyświetlanej na pasku
informacyjnym)
- void zmianaPrzeprowadz(int
ile)
zmiana wartosci liczby opisującej liczbę
lemingów do przeprowadzenia(wyświetlanej na
pasku informacyjnym)
Poczatek
Klasa OknoInformacyjne
Obiekty tej klasy są oknami
dialogowymi wyświetlającymi informacje taki jak
zasady gry.
Nadklasa: QDialog
-
- Atrybuty
|
- określa
rozmiar okna (okno jest kwadratowe) |
|
- przycisk
odpowiedzialny za wychodzenie z okna
informacyjnego |
|
- obiekt odpowiedzialny za
wyświetlanie tekstu |
- Funkcje
publiczne
Poczatek
Klasa StatystykaEtapu
Jest ona odpowiedzialna za
wypisywanie informacji o najbliższym etapie oraz o o
etapie ostatnio zakończonym.
Nadklasa: QWidget
-
- Atrybuty
|
- krój
czcionki |
|
- obiekt
odpowiedzialny za wyświetlanie tekstu
wejściowego |
|
- obiekt odpowiedzialny za
wyświetlanie tekstu wyjściowego |
- QLabel *
num_we[ILE_PARAMETROW]
|
- tablica obiektów
odpowiedzialnych za wyświetlanie liczb
wejściowych |
- QLabel *
num_wy[ILE_PARAMETROW]
|
- tablica obiektów
odpowiedzialnych za wyświetlanie liczb
wyjściowych |
|
- obiekt odpowiedzialny za
wyświetlanie napisu o liczbie zdobytych
punktów |
|
obiekt odpowiedzialny za
wyświetlanie napisu o liczbie prób
przejścia danego etapu; |
- QLabel * punkty_num,
QLabel * proba_numQLabel * etap_num,
QLabel * puenta
|
-obiekt odpowiedzialny za
wyświetlanie odpowiednio liczby: punktów,
prób, numeru etapu, treści puenty |
- Funkcje
publiczne
Wstawienie wartości danych
wyjściowych przekazanych w tablicy param.
- void ukryjKoncoweParametry()
Ukrycie parametrow końcowych .
Obliczenie liczby punktów
zdobytych przez użytkownika w danym etapie.
Obliczenie maksymalnej liczby
punktow, jaką można było zdobyć w danym
etapie.
Poczatek
Klasa StatystykaGry
Jest ona odpowiedzialna za wypisywanie informacji
całej grze (gdy użytkownik przejdzie przez
wszystkie etapy).
Nadklasa: QWidget
-
- Atrybuty
|
- krój
czcionki |
|
- wartości wyświetlanych
liczb |
|
- treść tekstu
końcowego |
|
- treść pozostałych
tekstów |
- QLabel *
teksty[ILE_LICZB]
|
- tablica obiektów
odpowiedzialnych za wyświetlanie tekstów |
- QLabel *
numerki[ILE_LICZB]
|
- tablica obiektów
odpowiedzialnych za wyświetlanie liczb |
|
- obiekt odpowiedzialny za
wyświetlanie tekstu końcowego |
- Funkcje
publiczne
- StatystykaGry(QWidget
*parent=0,const char *name=0)
Stworzenie statystyki gry.
- ~StatystykaGry()
- void dodajPunkty(int ile)
Funkcja ta dodaje wartość 'ile'
do sumy liczby punktow zdobytych do tej pory w
grze.
Poczatek
|