Strony

czwartek, 28 listopada 2019

Zabawki edukacyjne dla 3-latka – dlaczego warto je kupować?

Zabawki edukacyjne dla 3-latka – dlaczego warto je kupować?


Zabawki edukacyjne dla 3-latka mają w przyjazny sposób, czyli poprzez zabawę, wyrabiać pewne umiejętności oraz zdolności, a także przekazywać wiedzę o otoczeniu.

1. Na naukę nigdy nie jest za wcześnie.
2. Bezpieczeństwo podczas zabawy.
3. Zabawki edukacyjne dla 3-latka – sposób na nudę.

Człowiek uczy się całe życie – to prawda. Od pierwszych chwil ciekawi go najbliższe otoczenie, które poznaje, a przez to nabywa kolejnych umiejętności. Umysł dzieci jest bardzo chłonny, dlatego warto pomagać najmłodszym w poznawaniu świata i podsuwać im zabawki edukacyjne.

Na naukę nigdy nie jest za wcześnie


I nie chodzi tutaj o proces edukacyjny ujęty w sztywne ramy, ale raczej o rozwój i nabywanie nowych umiejętności poprzez zabawę. W przypadku dzieci dzieje się to bardzo naturalnie. Każdy etap dzieciństwa rządzi się swoimi prawami i w każdym uwaga najmłodszych jest skierowana na coś innego. Dlatego wybierając zabawki edukacyjne dla 3-latka z firm o sprawdzonej renomie, możemy mieć pewność, że są one dostosowane do poziomu umiejętności dziecka. To bardzo ważne, ponieważ dziecko nie będzie się zniechęcać przy wykonywaniu zadań. Jeśli zabawka edukacyjna nie byłaby odpowiednio dobrana i przewyższała możliwości malucha poziomem trudności, dziecko mogłoby się niecierpliwić, a zabawa nie sprawiałaby radości. 

zabawki edukacyjne

Bezpieczeństwo podczas zabawy


Zabawki dla dzieci powinny być bezpieczne – wyprodukowane z zachowaniem obowiązujących norm (zarówno jeśli chodzi o materiały, jak i zawartość różnych elementów). Wiadomo, że zabawki edukacyjne dla 3-latków będą wyglądać inaczej, niż te dla dzieci starszych. I jest to podyktowane także względami bezpieczeństwa. Czołowi producenci zabawek edukacyjnych dbają, żeby korzystanie z nich było beztroskie – mając na względzie dobro dzieci oraz ich opiekunów.

Zabawki edukacyjne dla 3-latka – sposób na nudę


Dzieci łakną nowości, dlatego zwykłe zabawki często się im nudzą. Inaczej jest z zabawkami edukacyjnymi – są one wyzwaniem, a osiągnięty sukces zachęca malucha do powtórnej zabawy. To, że dziecko często wraca do tego typu zabawek, spowodowane jest też ich ciekawą formą oraz tym, że działają na wszystkie zmysły. Na przykład kolorowe zabawki edukacyjne dla 3-latka mają postać różnych gier, kart, klocków czy puzzli http://ksiegarnia-edukacyjna.pl/pol_m_Zabawki-_Wiek_3-5-lat_-3-lata_Edukacyjne-10424.html.

Zabawki edukacyjne to inwestycja ułatwiająca dalszą naukę „na poważnie”. Oprócz nabywania umiejętności językowych, matematycznych czy też ruchowych, najmłodsi rozwijają się dzięki nauce przez zabawę także pod względem społecznym (uczą się zasad pracy w grupie). Poza tym, takie zabawki to dla dziecka bezcenny czas spędzony z rodzicem.
 
Artykuł sponsorowany






Ciekawe artykuły:

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

poniedziałek, 25 listopada 2019

Symulator automatu do gier w Delphi część 4

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

Po sprawdzeniu bonusów przystępujemy do sprawdzania poszczególnych układów. Ogólnie mamy trzy typy układów: złożone z trzech takich samych cyfr, złożone z czterech elementów i z pięciu. Każdy z nich może występować w różnych konfiguracjach i być ułożony na różnych bębnach.

Na początek sprawdzamy układy złożone z trzech elementów, począwszy od lewej górnej poziomej trójki, czyli pola Memo 1, 2 i 3:

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

if (M1=M2) and (M1=M3) then //jeżeli będą 3 takie same liczby obok siebie
begin
Memo1.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Memo2.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Memo3.Color:= clred; //zaznacz kolorem czerwonym trafione okno
Wynik:= StrToInt(Edit1.Text); //odczytaj wynik z pola Wyników
Wynik:= Wynik+(15*Stawka); //dodaj punkty za trafiony układ na tablicy Wygranych
Edit1.Text:= IntToStr(Wynik); //wyświetl wynik w polu Wyników
Konto:= StrToInt(Edit2.Text); //odczytaj Stan konta
Konto:= Konto+(15*Stawka); //dodaj punkty do konta za trafiony układ
Edit2.Text:= IntToStr(Konto); //wyświetl Stan konta
end;

Jak widzimy kod wykonujący ten warunek jest prawie identyczny z tym, którego używaliśmy do sprawdzania bonusów. Jedynymi zmianami są inne pokolorowanie pola (na czerwono) oraz przyznanie wyższej ilości punktów (15 pkt). W podobny sposób sprawdzamy układy złożone z większej ilości elementów, zawsze porównując, czy leżące obok siebie pola zawierają takie same cyfry.

Analizując kod programu, widzimy, iż znaczna jego część to tylko sprawdzanie kolejnych możliwych układów, jakie mogą wystąpić. Cały kod programu nie jest więc tyle skomplikowany, ile po prostu rozbudowany.

Na końcu warunków sprawdzających realizujemy nasze oczekiwanie, aby po wyświetleniu jednocześnie zer w środkowym i narożnych polach, program zamienił się w kapryśną fortunę i – w zależności od stanu naszego konta – uczynił nas bankrutem lub szczęśliwcem, któremu nie tylko umorzono dług, ale jeszcze dodano 50 punktów:

if (M1=0) and (M1=M5) and (M1=M8) and (M1=M11) and (M1=M15) then
begin
Memo1.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo5.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo8.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo11.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Memo15.Color:= clblue; //zaznacz kolorem niebieskim trafione okno
Konto:= StrToInt(Edit2.Text); //odczytaj Stan konta
if Konto > 0 then //jeżeli stan konta jest większy od zera
begin
Edit1.Text:= 'BANKRUT!!!'; //wyświetl napis 'BANKRUT' w polu Wygranych
Edit2.Text:= IntToStr(0) //wyświetl zero w polu Stan konta
end //bez średnika
else //jeżeli stan konta jest mniejszy od zera
begin
Edit1.Text:= 'BONUS!!!'; //wyświetl napis 'BONUS' w polu Wygranych
Edit2.Text:= IntToStr(50) //wyświetl 50 pkt w polu Stan konta
end;
end;

Na samym końcu procedury umieszczamy polecenie ograniczające nasze zadłużenie:

if Konto < (-200) then //jeżeli debet jest większy niż 200 pkt wtedy
begin
Button2.Enabled:=False; //...zablokuj przycisk Start
end;

Po przekroczeniu granicy długu ustalonej na 200 złotych program blokuje przycisk „START”, uniemożliwiając dalszą grę. Konstrukcja naszego kodu jest jednak tak zbudowana, iż w przypadku zablokowania konta możemy użyć przycisku „Zasil konto”, który doda nam 50 punktów i w ten sposób spłaci część długu, odblokowując przycisk „START”.

Polecenie sprawdzające wysokość długu i blokujące przycisk „START” musimy umieścić na samym końcu, gdyż może zaistnieć taka sytuacja, że w ostatniej chwili trafimy na układ, który spłaci część długu i stan naszego zadłużenia nie zostanie przekroczony. Musimy więc warunki sprawdzające poszczególne układy umieścić wcześniej, przed tym poleceniem.

Na podobnych zasadach, jakie użyliśmy w tym projekcie, możemy ustalać kolejne układy i bonusy, które nie zostały przez nas przewidziane. Z pewnością dużym uatrakcyjnieniem będzie także wymiana cyfr na obrazki oraz włączenie do projektu dźwięków towarzyszących kręceniu się bębnów i trafieniu bonusów czy układów. Nie jest to trudne zadanie, wystarczy tylko we właściwe miejsca dopisać jedną lub kilka (w zależności od użytych rozwiązań) linii kodu odtwarzającego dźwięk.

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

poradnik programowania Delphi





Ciekawe artykuły:

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

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: