[CZĘŚĆ 1] STM32Butterfly2: Tetris na STM32 – wprowadzenie do mechanizmu gry
Kompletna funkcja będzie zatem wyglądała tak:
void Redukcja(void)
{
unsigned char x,y,k,yy;
for(y=0;y<20;y++) //pętla oblicza kolejne linie planszy
{
k=1;
for(x=0;x<10;x++) if(plansza[x][y] == 0) k=0; //pętla sprawdza każdy punkt danej linii
//jeżeli brakuje któregoś klocka to k=0;
if(k == 1) //jeżeli bieżąca linia jest kompletna
{
linie++; //zwiększ punkty
punkty+=10;
for(yy=y;yy>0;yy--) //pętla odlicza kolejne linie od bieżącej w górę
{
for(x=0;x<10;x++) //pętla kopiuje linię yy-1 do linii yy
plansza[x][yy]=plansza[x][yy-1]; //spowoduje to skasowanie pełnej linii
//i przesunięcie wszystkich linii ponad w dół
}
}
}
}
Kolejna nowa zmienna linie zlicza ilość ułożonych przez gracza linii poziomych, należy ją zadeklarować tak samo jak zmienną punkty.
Napisaliśmy wszystkie funkcje potrzebne podczas opuszczania klocka, więc czas na samą funcję KlocekDol:
void KlocekDol(void)
{
if(Kolizja(klocekx,kloceky+1,klocekr) == 0) //sprawdzenie czy przesunięty klocek
nie wywoła kolizji
{ //jeżeli nie to:
kloceky++; //zwiększ zmienną y położenia klocka
}else
{ //jeżeli wykryto kolizję:
KlocekWklej(); //skopiuj segmenty klocja na planszę
Redukcja(); //sprawdź czy nie ma pełnych linii
KlocekNowy(); //załaduj nowy klocek
}
}
Dzięki temu, że rozbiliśmy poszczególne czynności na odrębne kawałki kodu, cały program staje się bardzo czytelny i łatwo nam będzie w przyszłości dokonywać w nim zmian. Zapewne każdy z czytelników będzie chciał zmodyfikować grę po swojemu, dlatego starałem się pisać ją jak najprzejrzyściej, a zarazem „rozwojowo”.
Mamy więc komplet funkcji odpowiedzialnych za mechanikę gry, natomiast brakuje istotnego elementu jakim jest interfejs użytkownika - jak go przygotować pokażemy w kolejnym artykule.
Rafał Kędzierski


Projekty inteligentnych sterowników przetwornic z tranzystorami GaN — część 2: konfiguracja i optymalizacja
PM-3133-CPS – inteligentny trójfazowy licznik energii z CANopen
Czujnik drgań STMicroelectronics z wbudowaną AI alternatywą dla czujników piezoelektrycznych do monitorowania urządzeń przemysłowych 


![https://www.youtube.com/watch?v=gHcP8AajoN4 Szymon Robak oprowadza po katowickim Laboratorium Badań Kompatybilności Elektromagnetycznej w Sieć Badawcza Łukasiewicz - Instytucie Sztucznej Inteligencji i Cyberbezpieczeństwa. Zapraszamy na film! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/06/Szymon-Robak-tytulowe.png)
![https://www.youtube.com/watch?v=BgxJVTwYJ-s Zapraszamy do obejrzenia filmu i wysłuchania krótkich wypowiedzi prelegentów Hardware Forum 2026 i organizatorów majowej konferencji dla inżynierów z branży elektronicznej: Konrad Bruliński z Lemontech, prof. Krzysztof Kulpa z Politechniki Warszawskiej, Zbigniew Huber z FLC, Ewa Załupska z firmy KROK, Jerzy Kozieł z MPTECH, Grzegorz Potyralski z VIGO Photonics, dr Krzysztof Czuba z Politechniki Warszawskiej, Anna Beata Kalisz Hedegaard z Quantum Security Defence, Adrian Cichosz z Elhurt Dystrybucja Anna Kamińska z Creotech Quantum, oraz Łukasz Jaeszke i Adam Jaeszke z TEK.day [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/05/tytulowe-film-1.png)

