[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

Platforma JetSys-2010 SFF do wysokowydajnych obliczeń AI-at-the-EDGE w aplikacjach high-end
Hahn EI30 ErP – transformatory sieciowe o niskich stratach mocy
Grzegorz Kamiński: Co nowego na rynku podzespołów półprzewodnikowych GaN? 


![https://www.youtube.com/watch?v=kmvM5hVSzCM Piata już edycja konferencji Hardware Design Masterclasses dla elektroników zaskoczyła frekwencją, tym bardziej, że spotkanie było dwudniowe. Film jest krótką relacją z wydarzenia, bazującą na wypowiedziach prelegentów. [materiał redakcyjny] Zapraszamy do obejrzenia!](https://mikrokontroler.pl/wp-content/uploads/2026/01/Rafal-tytulowe.png)

