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

#include <Interfejs.h>
 
Funkcje publiczne
  • Interfejs(QWidget *parent=0,const char *name=0)
  • ~Interfejs()

Atrybuty prywatne

  • timer
- wskaźnik na obiekt klasy QTimer służy do sterowania grą
  • timer_czas
- wskaźnik na obiekt klasy QTimer służy do odmierzania czasu trwania gry
  • timer_wypusc
- wskaźnik na obiekt klasy QTimer służy do wypuszczania lemingów z wejścia
  • skrot
- opisuje skrót klawiszowy do robienia zdjęcia planszy
  • int ile_wypuscic
- mówi ile lemingów należy wypuścić z wejścia
  • int ile_na_planszy
- mówi ile lemingów znajduje sie na planszy
  • int czy_pauza
- opisuje stan pauzy ( aktywna lub nie )
  • int czy_zaglada
- informuje czy etap jeszcze trwa (nie jest kończony)
  • int odstep
- jaki jest odstep między wychodzącymi z wejścia lemingami - aby zachować jednolity odstęp mimo używania pauzy
  • int odstep_czas
- aby zachować prawidłowe odmierzanie czasu mimo używania pauzy
  • int nowy_element
- rodzej nowego elementu -wstawianego komandosa
  • int parametry_wczytane
- 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
  • StatystykaGry * stat_gra
- wskaźnik na statystykę gry
  • OknoGry * okno_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
  • int czas
- czas trwania etapu
  • int do_przeprowadzenia
- 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

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

 
#include <Guzik.h>
 

Atrybuty

  • static int ile_guzikow
- przyjmuje wartość liczby istniejących obiektów tej klasy. Jest to pomocne przy identyfikacji miejsca wstawienia przycisku
  • int ilu_komandosow
- liczba (w tym przypadku liczba komandosów) wyświetlana w polu numerek
  • QFont font
- rodzaj czcionki
  • QLabel * numerek
- pole wyświetlające cyfrę
  • QPushButton * przycisk
- 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

 

#include <Guzik.h>
 

 

Funkcje publiczne
  • Guzik(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0)

    Stworzenie guzika z bitmapą obrazek i maską maska.

Poczatek


Klasa GuzikPocz

Jest to klasa opisująca guzik okna początkowego.

 

Nadklasa: Guzik

 

#include <Guzik.h>
 

 

Atrybuty
  • static int ile_guzikow

    Określa liczbę istniejących już obiektow klasy,między innymi na podstawie tej zmiennej wybierane jest położnie przycisku w oknie - ojcu.

Funkcje publiczne
  • GuzikPocz(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0)

    Wywołuje konstruktor nadklasy, ustawia rozmiar i położenie przycisku.

  • ~GuzikPocz()

Poczatek


Klasa GuzikEtap

Jest to klasa opisująca guzik okna międzyetapowego oraz końcowego.

 

Nadklasa: Guzik

 

#include <Guzik.h>
 
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
  • GuzikEtap(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0)

    Wywołuje konstruktor nadklasy, ustawia rozmiar i położenie przycisku.

  • ~GuzikEtap()

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

 

#include <OknoGry.h>
 
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
  • QStatusBar * pasek
- 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
  • QFont font
- 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

 

#include <Informacje.h>
 
Atrybuty

 

  • int rozmiar
- określa rozmiar okna (okno jest kwadratowe)
  • QPushButton * guzik
- przycisk odpowiedzialny za wychodzenie z okna informacyjnego
  • QMultiLineEdit * tekst
- obiekt odpowiedzialny za wyświetlanie tekstu

 

Funkcje publiczne
  • OknoInformacyjne(int co_wypisac, int rozm,QWidget * parent=0, const char * name=0)

    Konstruuje kwadratowe okno informacyjne o boku rozm i treści zależnej od wartości parametru co_wypisać

  • ~OknoInformacyjne()

Poczatek


Klasa StatystykaEtapu

Jest ona odpowiedzialna za wypisywanie informacji o najbliższym etapie oraz o o etapie ostatnio zakończonym.

Nadklasa: QWidget

 

#include <StatystykaEtapu.h>
 
Atrybuty

 

  • QFont font
- krój czcionki
  • QLabel * tekst_we
- obiekt odpowiedzialny za wyświetlanie tekstu wejściowego
  • QLabel * tekst_wy
- 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
  • QLabel * punkty_tekst
- obiekt odpowiedzialny za wyświetlanie napisu o liczbie zdobytych punktów
  • QLabel * proba_tekst
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
  • StatystykaEtapu(int info[ILE_PARAMETROW],QWidget *parent=0,const char *name=0)

    Staworzenie statystyki etapu z danymi wejsciowymi przekzanymi w tablicy info.

  • ~StatystykaEtapu()
  • void wstawKoncoweParametry(int param[ILE_PARAMETROW])

Wstawienie wartości danych wyjściowych przekazanych w tablicy param.

  • void ukryjKoncoweParametry()

Ukrycie parametrow końcowych .

  • int ilePunktow()

Obliczenie liczby punktów zdobytych przez użytkownika w danym etapie.

  • int maxLiczbaPunktow()

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

 

#include <StatystykaGry.h>
 
Atrybuty

 

  • QFont font
- krój czcionki
  • int liczby[ILE_LICZB]
- wartości wyświetlanych liczb
  • char * tekst_koncowy
- treść tekstu końcowego
  • char * napisy[ILE_LICZB]
- 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
  • QLabel * koniec
- 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