Tetris a c érvényesíteni szabályok - emlékeztet
Tetris szabályok meglehetősen egyszerű:
- A játék akkor kezdődik a káresemény bekövetkezését véletlen elem felső részének közepén a játékteret. Ez az elem lehet szabályozni a játékos;
- Ha az aktív elem tekintetében alsó része vagy alja a játéktábla társasházban, több lépésben játék ez fix és pozícióját már nem feltétele, hogy a játékos;
- Ha a játék terén kialakított teljesen kitöltött sorok blokkok nem üres, aztán eltűnnek, és a felső sorok lefelé eltolt;
- Miután minden elemnek van egy új játék, mint az elején a játék;
- Ha az új elem jelenik meg azonnal egy ütközés, ami van, nem a megfelelő állapotban, a játéknak vége;
- Win Tetris, sajnos, nem lehet.
És most nézd meg, hogy minden ilyen teszteket lehet írni C ++ kódot.
A megjelenése az új elem
Amikor inicializálásakor a szerencsejáték-modell aktív elem semleges állapotban egy üres belső mátrix (lásd. Pattern NULL object). Ez az ellenőrzési végezzük IsNull () tagú funkció:
Kialakulását egy új tagja végeztük elején a tag függvény doStep (). amely az úgynevezett minden egyes szerencsejáték-lépésben (időzítő a vezérlő):
Megalakult a véletlen elem történik TetrisItem :: generateRandom () függvényt:
Ellenőrzés Game Over
A doStep () függvény kényelmes hozzáadni és ellenőrizze a játék végén:
Kérdezd meg a modellt, hogy a játéknak vége, akkor isGameOver ():
Az aktív elem alján
Amikor az alsó része az aktív elem valami nyugszik, lehetővé tesszük neki egy kis „csúszás”:
Hogy támogassa a lépés alján a funkciót, akkor kellett hozzá egy számlálót érinti. Minden alkalommal, amikor az elem aggályok nem üres blokk alsó részén, a számláló értéke növekszik. Ha a számláló értéke elér egy bizonyos határt, az elem van rögzítve (pontosabban addig, amíg csak el nem tűnik). Ha a játékos mozog a tag (balra vagy jobbra), úgy, hogy esni kezd újra, a számláló nullázódik.
Rögzítése a aktív elem
Nem vagyunk elégedettek azzal, amit most az aktív elem egyszerűen eltűnik bukása után. Mi mindent megteszünk azért, hogy az összes egység részévé vált a játéktábla:
A kód teljesen nyilvánvaló. Megjegyzem, csak azt, hogy úgy működik, hogy az aktív elem található, a garantált hálózati játék terén. Ennek eredményeként a szétválás az egyes koordináták alapján pontokon a blokk méretét a blokk, így a kívánt játék terén koordinátákat.
Tisztítás töltött sorok és összetettsége
Modell majdnem kész. Továbbra is hozzá néhány utolsó simításokat. Itt az algoritmus a játéktábla tisztító töltött sorok:
Calling tiszta () szükséges rögtön a kódot rögzítő elemek:
Minden élj számos pontok száma eggyel nő. Minden szerzett 10 pontot nehéz a játék megnő (növeli a sebességet egységenként):
Tény, incScore () függvény, hogy nem igazán sikeres (lásd az elvet egyetlen felelősséget.): Ez a mellékhatás (növekszik sebesség). Ahhoz azonban, hogy egy ilyen egyszerű játék ez nem volt kritikus. Elképzelhető, hogy ez kell feldolgozni összetettebb projektek.
Az utolsó változás
A sebesség változó elem eshet nemcsak hívás incSpeed (). de az lesz a játékos. Ebből a célból, mi foglalkoztunk az alábbiak szerint:
következtetés
Ez arra a következtetésre jutott a bevezetés a modell a játék Tetris. És a következő alkalommal megy az áttekintést végrehajtásának megtekintése és Controller.