poniedziałek, 18 listopada 2019

Symulator automatu do gier w Delphi część 3

<<-- Przejdź do części 1

Efekt imitujący kręcenie się obiektu wykorzystaliśmy już w grze o nazwie „Gra w kości”. Użyjemy więc podobnego rozwiązania:

for i := 0 to 10 do //wykonaj poniższe instrukcje 10 razy
begin
sleep(30); //czekaj 30 ms
Memo1.Text:= IntToStr(i); //wyświetl wynik w oknie nr 1 planszy
Memo6.Text:= IntToStr(i);
Memo11.Text:= IntToStr(i);
Memo2.Text:= IntToStr(i);
Memo7.Text:= IntToStr(i);
Memo12.Text:= IntToStr(i);
Memo3.Text:= IntToStr(i);
Memo8.Text:= IntToStr(i);
Memo13.Text:= IntToStr(i);
Memo4.Text:= IntToStr(i);
Memo9.Text:= IntToStr(i);
Memo14.Text:= IntToStr(i);
Memo5.Text:= IntToStr(i);
Memo10.Text:= IntToStr(i);
Memo15.Text:= IntToStr(i); //wyświetl wynik w oknie nr 1 planszy
Memo1.Update; //uaktualnij komponent Memo1
Memo6.Update;
Memo11.Update;
Memo2.Update;
Memo7.Update;
Memo12.Update;
Memo3.Update;
Memo8.Update;
Memo13.Update;
Memo4.Update;
Memo9.Update;
Memo14.Update;
Memo5.Update;
Memo10.Update;
Memo15.Update; //uaktualnij komponent Memo15
end;


Jak widzimy, w każdym polu zostają wyświetlone po kolei cyfry, od zera do dziewięciu, a każda wyświetlana jest tylko przez 0,3 sekundy. Tak szybka zmiana wyświetlanych cyfr sprawia wrażenie kręcenia się bębna. Z uwagi na to, iż w komponentach Memo co rusz następuje wymiana cyfr na inne, musimy użyć polecenia update, aby za każdym razem aktualizować ten komponent. Po obrocie bębnów następuje wyświetlenie cyfr na pierwszym bębnie, złożonym z komponentów Memo 1, 6 i 11:

poniedziałek, 11 listopada 2019

Symulator automatu do gier w Delphi część 2

<<-- Przejdź do części 1

3. Gdy naciśniesz przycisk „START”


Aby móc operować na liczbach wyświetlanych w polach Memo, musimy dla nich przygotować piętnaście osobnych zmiennych (M1..M15), po jednej dla każdego pola Memo. Będziemy dzięki nim losować liczbę do wyświetlenia. Każda ze zmiennych „M” jest ściśle przyporządkowana do komponentu Memo o tym samym numerze. 
 
W naszym prostym przykładzie, zamiast obrazków wyświetlamy liczby, ale nic nie stoi na przeszkodzie, aby zmodyfikować kod w taki sposób, aby można było te obrazki wyświetlać. Nie jest to aż takie trudne. Pierwszą zmianą, jaką musielibyśmy wprowadzić, to wymiana komponentów Memo na Image, aby w polach można było wyświetlać obrazki. Ponadto, będziemy musieli do naszego kodu dodać instrukcje warunkowe if...then, do „tłumaczenia” wyników liczbowych na obrazki. Wprowadzane warunki będą proste:

M1:= Random (10) //wylosuj liczbę

if M1= 1 then //gdy wylosuje 1, wtedy
Image1.LoadFromFile('C:\Gry\1.jpg'); //wyświetl obrazek 1

if M1= 2 then //gdy wylosuje 2, wtedy
Image1.LoadFromFile('C:\Gry\2.jpg'); //wyświetl obrazek 2

(...)

if M1= 9 then //gdy wylosuje 9, wtedy
Image1.LoadFromFile('C:\Gry\9.jpg'); //wyświetl obrazek 9
Powyższą grupę warunków należy teraz powtórzyć dla każdej zmiennej „M”. Jak łatwo się domyślić, długość kodu jeszcze bardziej się wydłuży, ale pisząc programy komputerowe, musimy liczyć się z tym, że mogą one zawierać tysiące linii kodu.

wtorek, 5 listopada 2019

Symulator automatu do gier w Delphi część 1

Na zakończenie tematu poświęconego grom i zabawom wykonanych w środowisku Delphi, prezentujemy w pełni wykończony projekt, aby pokazać, jak odpowiednie zadbanie o estetykę interfejsu wpływa na atrakcyjność programu. Jako przykład wybraliśmy symulator automatu do gier. Będzie on oparty w większości na tych rozwiązaniach, które poznaliśmy do tej pory, choć nie brakuje też i nowych elementów.

symulator automatu do gier programowanie delpi
Automat do gier

Założenia i opis programu:


Naszym głównym założeniem jest chęć wykonania typowego automatu do gier, który będzie obracał bębnami i przyznawał punkty za trafiony układ. Wzorując się na oryginale, nie zabraknie także możliwości zmieniania stawki, za jaką w danej chwili chcemy zagrać oraz liczników obrazujących, ile otrzymaliśmy punktów za układ i jaki jest stan naszego konta.

Oczywiste jest, że nie zrobimy automatu na prawdziwe pieniądze, ale – nawiązując do prawdziwych automatów – będziemy posiadać przycisk, który będzie zasilać nasze konto w grze. Zachowując ten realizm, będziemy mieli rozeznanie, jak łatwo można stracić pieniądze, grając w prawdziwe automaty do gier.

Jako że jesteśmy twórcami naszego symulatora, nie musimy ograniczać się tylko do zgodności z oryginałem, możemy wprowadzić swoje dodatkowe założenia. Najważniejszym z nich będzie możliwość grania na debecie: Kiedy skończą się nam fundusze na koncie, będziemy mogli dalej grać, zaciągając pożyczkę. Stan naszego konta będzie wtedy ujemny do czasu, aż trafimy układ i program odliczy sobie przyznaną pożyczkę. Aby nie popaść w nadmierny hazard, założymy blokadę, abyśmy mogli zadłużać się tylko do kwoty 200 złotych. Powyżej tej granicy program uniemożliwi dalszą grę.

Wprowadzamy także bonusy za ustawienie niektórych symboli w określonym miejscu, mianowicie, będą nimi pola narożne oraz środkowe. Za każde takie trafienie będą przyznawane punkty, lecz nie o ściśle wyznaczonej wartości, tylko o wartości zmiennej, którą program przydzieli. Chcemy także, aby po umieszczeniu tych symboli we wszystkich tych miejscach naraz, program zachował się w sposób niezwykły, mianowicie chcemy, aby odwrócił nasz los o 180 stopni w ten sposób, że gdy będziemy mieli debet, anuluje go nam, natomiast w przypadku posiadania przez nas dodatniego stanu konta, po prostu wyzeruje go, wyświetlając napis „Bankrut”.

Aby ułatwić sobie zadanie, rezygnujemy z obrazków owoców widniejących na typowym automacie. Zamiast nich wyświetlać będziemy liczby, od zera do dziewięciu. Przyjmujemy, że elementem odpowiedzialnym za uzyskanie bonusu będzie cyfra zero. Wybieramy także najtrudniejszą wersję gry, czyli pięć bębnów. Za układy będziemy uważać te grupy liczb (minimum trzy), które są obok siebie w linii prostej: poziomej, pionowej lub ukośnej; są tego samego typu i mają swój początek w pierwszym lub ostatnim bębnie.

Zasada działania programu jest wbrew pozorom bardzo prosta. Po naciśnięciu przycisku „START” program losuje i wyświetla liczby na poszczególnych polach bębnów, a następnie sprawdza, czy ułożyły się jakieś układy. Jeżeli powstał układ lub bonus, przydziela za niego punkty pomnożone przez wybraną przez nas stawkę i wyświetla ją w polu wygranych. Jednocześnie, uzyskaną liczbę punktów dodaje także do naszego konta. Dla ułatwienia odczytywania układów program będzie zaznaczał układy na czerwono, a bonusy na zielono.

Potrzebne komponenty:


W tym projekcie używamy dużo komponentów. Wszystkie wstawiamy na formę główną. Oto wykaz potrzebnych komponentów:

Button1 – przycisk „Zasil konto”,
Button2 – przycisk „START”,
Panel1 – Ramka, na której znajdują się komponenty Memo,
Memo1..15 – Pola bębnów (3x5),
Edit1 – Pole do wyświetlania liczby punktów,
Edit2 – Pole do wyświetlania stanu konta,
Label1 – etykieta wyświetlająca napis „Wygrana”,
Label2 – etykieta wyświetlająca napis „Konto”,
RadioGroup1 – ramka do grupowania kontrolek RadioButton,
RadioButton1..6 – kontrolki do wybierania stawki.

Poszczególne komponenty rozmieszczamy i kształtujemy według poniższego wzoru:

automat do gier
Przykładowy wygląd symulatora automatu do gier

Rozkład komponentów Memo jest następujący:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

A oto pełny kod programu: Kod dostępny w książce pt. "Delphi w przykładach dla początkujących".

 

Komentarz:


1. Form Create


W procedurze tej zawieramy tylko jedno polecenie, odpowiedzialne za wyświetlenie zera w polu „Stan konta”. Jest to konieczny zabieg, aby program wiedział, jaki jest stan początkowy naszego portfela. Musi przecież wiedzieć, od jakiej wartości odjąć punkty za uruchomienie bębnów oraz do jakiej wartości ma dodać punkty za uzyskany układ.


2. Gdy naciśniesz przycisk „Zasil konto”


Button2.Enabled:= True; //odblokuj przycisk START
Konto:= StrToInt(Edit2.Text); //odczytaj stan konta
Konto:= Konto+50; //dodaj do konta 50 pkt
Edit2.Text:= IntToStr(Konto); //wyświetl stan konta

Pierwsza linia kodu odblokowuje przycisk „START” na wypadek, gdyby został on zablokowany z powodu zbytniego zadłużenia. W dalszej części, z pola „Stan konta” odczytujemy najpierw, ile punktów mamy zgromadzonych na swoim koncie, następnie dodajemy do tej wartości 50 punktów i tę powiększoną wartość wyświetlamy w tym samym polu.

Jak widzimy po kodzie, możemy w każdej chwili zasilić konto o dodatkowe 50 punktów. Jeżeli nie chcemy udostępniać takiej możliwości, będziemy musieli wprowadzić warunek sprawdzający (if...then), który według naszej woli oceni, czy przy takiej ilości punktów może zasilić konto. Załóżmy, że chcemy zasilać konto tylko w przypadku, gdy stan konta jest ujemny lub nie przekracza 100 punktów. Musimy więc wprowadzić warunek sprawdzający:

if Konto > 100 then

ShowMessage ('Nie mogę zasilić konta. Zbyt wysoki stan konta')

else

begin

Konto:= Konto + 50;
Edit2.Text:= IntToStr(Konto);

end;


Artykuł pochodzi z mojej książki pt. "Delphi w przykładach dla początkujących". Zapraszam na Stronę książki.

poradnik programowania Delphi




Polecane artykuły:


wtorek, 15 października 2019

Zabawa "Zgadnij słowo" w Delphi część 2

<<-- Przejdź do części 1

4. Gdy naciśniesz przycisk „Sprawdź”


Pierwsza część kodu procedury sprawdzającej jest identyczna z tymi rozwiązaniami, które stosowaliśmy już nie raz w poprzednich zabawach, pomijamy więc komentarz do niej.

Zupełnie nowym rozwiązaniem w naszych dotychczasowych projektach jest możliwość podpowiedzi, w przypadku udzielenia niepoprawnej odpowiedzi:

begin
ShowMessage('Niestety źle'); //wyświetl komunikat o złej odpowiedzi
Niepoprawne:=Niepoprawne + 1; //dodaj punkt do niepoprawnych odpowiedzi

ShowMessage(('Powtórzę jeszcze raz: Słowo ma ' + IntToStr(Ilosc_liter) + ' liter. Zaczyna się na literę ' + Litera1 + '. Druga litera to ' + Litera2 + ' , a kończy na literę ' + Litera3));

Po wyświetleniu komunikatu o złej odpowiedzi i zwiększeniu liczby niepoprawnych odpowiedzi w tabeli wyników wprowadzamy nasze nowe rozwiązanie, czyli podpowiedź.

Zgodnie z założeniem program zdradzi nam, jaka jest druga litera słowa. Razem z poprzednimi informacjami, czyli jaka jest pierwsza i ostatnia litera oraz, z ilu liter składa się słowo, zostaje ona podana w pojawiającym się komunikacie ShowMessage, który wyświetli ponowne zapytanie.

W podobny sposób możemy wprowadzać kolejne podpowiedzi, zdradzając, jakie są kolejne litery słowa. Aby zapanować nad tymi podpowiedziami, będziemy musieli stworzyć system liczenia, która to z kolei nieudana próba odpowiedzi. System taki możemy wykonać na przykład na bazie dodatkowej zmiennej, zliczającej próby i zespołu warunków, na przykład:

środa, 9 października 2019

Zabawa "Zgadnij słowo" w Delphi część 1

Proponujemy jedną z najciekawszych zabaw, jakie przygotowaliśmy w poradach programowania w języku Delphi. Będzie ona oparta na klasycznej zabawie dziecięcej typu: Zgadnij słowo, o którym pomyślałem. Słowo ma pięć liter. Zaczyna się na literę „A”, a kończy na literę „S”.

programy w delphi

Założenia i opis programu:




Po naciśnięciu przycisku START program losuje słowo do odgadnięcia, podając nam tylko, z ilu liter się składa oraz, jaka jest jego pierwsza i ostatnia litera.


W pole edycyjne wpisujemy słowo, które – jak przypuszczamy – jest tym słowem szukanym i naciskamy przycisk „Sprawdź”. Procedura sprawdzająca ocenia odpowiedź i wyświetla komunikat informujący nas o poprawności lub niepoprawności odpowiedzi oraz zlicza ilość odpowiedzi poprawnych i niepoprawnych.


Aby zabawę uczynić nieco łatwiejszą, wprowadzamy zasadę, że po udzieleniu niepoprawnej odpowiedzi, program powtórzy swoje podpowiedzi, tym razem jednak podając także informację o tym, jaka jest druga litera.


Słowo możemy odgadywać w dowolnej ilości prób, jednak po nieodgadnięciu słowa, program za każdym razem zwiększy w tabeli wyników ilość niepoprawnych odpowiedzi.


Kiedy stracimy już zaufanie do programu, że wybrał dla nas rzeczywiste słowo, będziemy mogli nacisnąć przycisk „Pokaż słowo”, aby program wyświetlił je nam.





Potrzebne komponenty:




Button1 – przycisk „Start”,

Button2 – przycisk „Sprawdź”,

Button3 – przycisk „Pokaż słowo”,

Edit1 – pole edycyjne do podawania odpowiedzi,

Label1 – etykieta wyświetlająca napis „Podaj słowo”,

Label2 – etykieta wyświetlająca napis „Wyniki”,

Label3 – etykieta wyświetlająca napis „Poprawne”,

Label4 – etykieta wyświetlająca napis „Niepoprawne”,

Label5 – etykieta wyświetlająca ilość poprawnych odpowiedzi

Label6 – etykieta wyświetlająca ilość niepoprawnych odpowiedzi



Przy pomocy Inspektora Obiektów zmieniamy nazwy komponentom, modyfikując właściwość Caption:



Komponent    Nazwa



Button1  START

Button2  Sprawdź

Button3  Pokaż słowo

Edit1    (kasujemy nazwę)

Label1   Podaj słowo

Label2   Wyniki

Label3   Poprawne

Label4  Niepoprawne

Label5   0

Label6   0





Oto wstępny wygląd programu:

nauka delphi
Okno programu "Zgadnij słowo"

Komentarz:



środa, 31 lipca 2019

Czym jest elektryczność trójfazowa - inaczej siła?

Postarajmy się syntetycznie opisać powstawanie i zastosowanie prądu trójfazowego w praktyce codziennej. Prąd jednofazowy wykorzystuje do przesyłu dwa kable, a jego napięcie wynosi 230 V. Prąd trójfazowy to rodzaj prądu przemiennego przesłanego linią trójfazową, która ma 4 przewody w tym trzy przewody fazowe i jeden przewód zerowy. Sieć trójfazowa jest jakby sumą trzech sieci jednofazowych.


Wartość napięcia w układzie trójfazowym wynosi 400 V, a w układzie jednofazowym 230 V. Przyłącze trójfazowe zapewnia, więc korzystanie z dużo większej mocy niż jednofazowe. Już w fazie wytwarzania energii elektrycznej powstaje przeważnie prąd w systemie trójfazowym. Powody są czysto techniczne. Agregaty używane do produkcji są proste i skuteczne, a efektywność transmisji i dystrybucji jest zaletą systemu trójfazowego, w którym możliwy jest przesył określonej ilości przy mniejszych nakładach i stratach w sieciach przemysłowych.

☛ Prowadzisz przedsiębiorstwo i planujesz obniżyć rachunki z prąd? Skontaktuj się z firmą Po Prostu Energia. Skomponuje ona ofertę idealnie dopasowaną do potrzeb Twojego biznesu. Zmiana sprzedawcy energii elektrycznej jest szybka i bezpieczna. Wybierając usługi firmy Po Prostu Energia wszystkie formalności zostaną załatwione za Ciebie. ☚

Główne zalety systemu trójfazowego

Prostsze wytwarzanie, efektywny przesył oraz rozpowszechnione zastosowanie w przemyśle silników i urządzeń prądu w systemie trójfazowym zadecydowało o jego powszedniości w codziennej praktyce.

Silniki to urządzenia, wykorzystujące wirujące pole magnetyczne do napędu innych urządzeń. W elektronicznej technice napędowej niekwestionowanym liderem zastosowań jest asynchroniczny silnik trójfazowy. Prosta, wytrzymała konstrukcja, nieskomplikowana konserwacja, bezpieczeństwo i niska cena to podstawy to podstawy jego popularności tego silnika. Prąd trójfazowy wykorzystywany jest do urządzeń, w których jest duże zapotrzebowanie na moc.

Odbiorcy przemysłowi pobierają prąd z sieci w systemie trójfazowym. Instalacja trójfazowa zwana także „siłą” ma w gniazdku napięcie 230/400 V i składa się z trzech obwodów elektrycznych prądu przemiennego, co umożliwia równomierne rozłożenie ładunku elektrycznego. W trosce o komfort użytkowania należy podjąć decyzję czy instalacja będzie jedno czy trójfazowa. Dla odbiorców przemysłowych sytuacja jest klarowna. Określony pobór mocy wskazuje na instalację w układzie trójfazowym.

Instalacja trójfazowa w gospodarstwie domowym

Przy ostatnich tendencjach wzrostu zapotrzebowania na różnego rodzaju odbiorniki energii elektrycznej i związanym z tym większym poborem mocy, zamiana instalacji na trójfazową staje się w wielu przypadków wskazana.

Sygnałem do zmiany instalacji jest częste wybijanie korków. Na ogół przyjmuje się, że instalacja jednofazowa umożliwia przesył do 6 Kw. mocy umownej. Przeważnie wzrost poboru mocy wiąże się z takimi urządzeniami, jak: ogrzewanie elektryczne, bojlery czy klimatyzatory. Zmiana układu na instalację trójfazową wiąże się wymianą licznika na urządzenie podające dodatkowo moc czynną.

Zamiana instalacji w minimalnym stopniu wpływa na wzrost opłat za prąd. Wzrasta jedynie o 2-3 zł opłata stała za przesył. Ze wzrostem komfortu życia przyłącze trójfazowe staje się coraz powszechniejsze. Możliwe jest podłączenie różnych urządzeń do oddzielnych faz a w razie awarii nie jesteśmy całkowicie pozbawieni prądu.

Artykuł sponsorowany






Ciekawe artykuły:

    
    Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.

czwartek, 18 lipca 2019

Przydatne książki część 1

W kilku kolejnych artykułach publikujemy pomocne materiały (książki, e-booki i audiobooki), które pomogą nam w odmienianiu swojego życia, zmiany siebie lub w szeroko rozumianym samorozwoju. Wszystkie one charakteryzują się dobrą opinią czytelników i przystępną ceną - niektóre z nich bowiem są nawet poniżej 10 zł.

    Nie podajemy tu opisów ani streszczeń, gdyż ich tytuły mówią same za siebie. Pod każdą fotografią znajduje się link odsyłający do strony książki, na której można przeczytać jej opis, opinie czytelników, a także można złożyć zamówienie, gdyby ktoś chciał je kupić.

    Większość książek można kupić w różnych wersjach, a więc zarówno jako e-book, jak i w wersji audio czy w wersji papierowej.










Ciekawe artykuły:

    
    Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.

czwartek, 27 czerwca 2019

Gdzie warto pójść z przyjaciółmi w trakcie tygodnia?

Spędzanie czasu ze znajomymi to niezwykły sposób na odstresowanie się po ciężkich dniach na uczelni czy w pracy i nabranie dystansu do rzeczywistości. W Warszawie nie brakuje miejsc, które kuszą różnymi rozrywkami, niekoniecznie z pierwszych stron gazet. Gdzie więc można wyjść z przyjaciółmi w trakcie tygodnia? 

Quiz w pubie

Coraz bardziej popularne zaczęły być ostatnio quizy organizowane w różnych pubach. To jeden ze sposobów spędzania wolnego czasu z przyjaciółmi. Kilka godzin intensywnej rozrywki, która i bawi, i uczy. To ciekawe połączenie nie tylko zabawy intelektualnej oraz spędzenia czasu przy dobrym trunku, ale i alternatywnego przeżycia drugiej części dnia. W sam raz na wyskoczenie po pracy!

Teatralne komedie

Nie ma sensu katować się ciężkimi przedstawieniami teatralnymi w tygodniu pełnym napięć w pracy. Tutaj liczy się przede wszystkim odpoczynek i relaks. Dlatego warto zerknąć na stronę https://teatrkomedia.pl/ i przekonać się, że oferta kulturalna Warszawy jest bardzo szeroka. Wyjście na spektakl ze znajomymi czy przyjaciółmi jest jednym z najlepszych rozwiązań, jeśli zależy nam na przyjemnym czasie spędzonym w kulturalny sposób.

Kino zawsze na plus

Jednak myli się ten, kto uważa, że warto wybrać się do kina sieciowego. Pewnie też, ale tak jak w przypadku teatru wybiera się zawsze na wysokim poziomie ofertę https://teatrkomedia.pl/, tak w tym wypadku lepiej poszukać kina studyjnego, peryferyjnego, które pokazuje kino inne niż wszystkie. Spędzenie czasu ze znajomymi na filmie w małym kinie, które na dodatek serwuje kawałek ciasta i kawę może być sposobem na niebanalne popołudnie po pracy.

Degustacja

Jeszcze innym sposobem na wyjście z domu po południu w Warszawie jest po prostu skorzystanie z oferty restauracji innej niż wszystkie. Jej poszukiwania warto wykonać samodzielnie, gdyż tylko w ten sposób dopasujecie coś do siebie spośród bogatej, bądź co bądź, oferty kulinarnej stolicy Polski. Warto szukać miejsc, które mają swoje tajemnice.

Artykuł sponsorowany







Ciekawe artykuły:

    
    Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.

poniedziałek, 3 czerwca 2019

Odczytywanie hieroglifów - aktualizacja

Pragnę poinformować Czytelników moich książek, iż właśnie pojawiła się do pobrania nowa wersja mojego darmowego e-booka pt. "Odczytywanie hieroglifów". Aktualne wydanie zostało poprawione i rozszerzone o nowe treści, głównie związane ze słowami hieroglificznymi. Poza wzbogaconym słownikiem, Czytelnik otrzymuje także ponad setkę nazw własnych zapisanych w hieroglifach, takich jak nazwy miast, krain czy imiona egipskich bogów wraz z ich krótką charakterystyką umożliwiającą identyfikację w inskrypcjach.
 
Sztuka odczytywania hieroglifów e-book
e-book "Odczytywanie hieroglifów"
Licencja e-booka to Creative Commons, czyli możliwe jest darmowe pobranie i rozpowszechnianie do celów niekomercyjnych. Można go pobrać z różnych serwisów takich jak Google Books czy Beezar. Polecam ten ostatni, bo najłatwiej się z niego ściąga. Oto bezpośredni link do pobrania e-booka: Odczytywanie hieroglifów.
 
Zachęcam także do odwiedzenia mojego repozytorium na Chomiku. Można z niego pobrać za darmo nie tylko moje książki, ale także inne. Większość z nich to pełne wersje. Zapraszam i życzę miłej lektury!






Ciekawe artykuły:

    
    Zapoznaj się z innymi artykułami. Przejdź do zakładki Spis artykułów.

Moje e-booki

Kliknij w okładkę, aby przejść do strony książki

Przejdź do strony książki Przejdź do strony książki