Easy Tetris podle Soutěž v programování (talentovani.cz)

https://talentovani.cz/souteze/soutez-v-programovani/archive#tasks137

2023

Úloha 4 – Easy Tetris (koeficient 3)
Naprogramuj zjednodušenou počítačovou hru Tetris, ve které hráč skládá shora padající kostičky do
úhledných řad, které posléze zmizí, a snaží se vydržet ve hře co nejdéle, než kostičky zaplní celou
hrací plochu. Hru si můžete zahrát na https://tetris.com/play-tetris.
V této úloze konkrétně:

  • Zobrazení plochy. Zobrazte hrací plochu 10×20 čtverečků (s viditelnou mřížkou).
  • Nové kostičky. Ve vrchní dvou řadách plochy vygenerujte (horizontálně zhruba uprostřed
    hracího pole) žlutou kostičku sestávající z 2×2 čtverečků.
    o Pokud by se měla vygenerovat kostička tak, že by byla na stejném místě jako už
    vyplněný čtvereček, tak hra končí. Pogratulujte hráči a řekněte mu, kolik za hru získal
    bodů.
  • Ovládání. Umožněte hráči kurzorovými klávesami:
    o šipkou vlevo posunout kostičku o políčko doleva;
    o šipkou vpravo posunout kostičku o políčko doprava;
    o šipkou dolů kostičku „shodit až dolů“, dokud nenarazí na spodní hranu hracího pole
    nebo už spadlý čtvereček;
  • Shození až dolů.
    o Když hráč shodí kostičku až dolů, tak spadlá kostička okamžitě „přimrzne“ tam, kde
    spadla. Současně s tím se stanou dvě věci:
    ▪ Pokud se tímto vytvořila 1 nebo více horizontálních souvislých řad 10
    vyplněných čtverečků, tak všechny tyto řady zmizí, a všechny vyplněné
    čtverečky nad nimi se posunou o tolik čtverečků dolů. Hráči připište 1 bod za
    každou takto zmizelou řadu.
    ▪ Okamžitě vygenerujte další kostičku ve vrchní části obrazovky, se kterou hráč
    může dále pohybovat.
  • Bonusový úkol: Modrá kostička. Místo toho, aby vždy padala 2×2 žlutá kostička, tak
    v polovině případů místo toho vygenerujte horizontální modrou kostičku 4×1. Umožněte
    navíc hráči šipkou nahoru otočit takovou kostičkou o 90 stupňů doprava. Pokud by v hracím
    poli na takovou změnu nebyl prostor, tak povel hráče ignorujte a kostičku neotáčejte