Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:putty-tetris

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2015:putty-tetris [2015/12/27 16:26]
Egor Dulesov
2015:putty-tetris [2015/12/28 15:17] (aktuální)
Egor Dulesov
Řádek 28: Řádek 28:
  
 ===== Software ===== ===== Software =====
-Pro realizaci hry Tetris v tomto projektu je použit compiler na webu https://​developer.mbed.org/,​ ve kterém je možné vytvořit libovolný projekt na C/C++. Taky pro zobrazení hry je použit terminal PuTTY se standardem VT100, pracující na virtuálním sériovém portu COM4 (pro konkretní počítač).+Pro realizaci hry Tetris v tomto projektu je použit compiler na webu https://​developer.mbed.org/,​ ve kterém je možné vytvořit libovolný projekt na C++. Taky pro zobrazení hry je použit terminal PuTTY se standardem VT100, pracující na virtuálním sériovém portu COM4 (pro konkretní počítač).
  
 ---- ----
  
-===== Realizace programu hry pomocí jazyka C =====+===== Realizace programu hry pomocí jazyka C++ =====
 ==== Hlavní funkce ==== ==== Hlavní funkce ====
 Hlavní funkce MAIN je realizována pomocí několika jednodušších funkcí: Hlavní funkce MAIN je realizována pomocí několika jednodušších funkcí:
Řádek 57: Řádek 57:
 </​code>​ </​code>​
 Kratké vysvětlení funkcí: Kratké vysvětlení funkcí:
-  * **array()** je funkcí zápisu okna hry, ve kterém se pak pohybují prvky +  * **array()** je funkcí zápisu okna hry, ve kterém se pak pohybují prvky; 
-  * **Upgrade()** má jednoduchý smysl - obnovuje hodnoty některých proměnných,​ což je důležitým pro korektní práci programu +  * **Upgrade()** má jednoduchý smysl - obnovuje hodnoty některých proměnných,​ což je důležitým pro korektní práci programu; 
-  * **newFigure()** zapisuje do okna hry nový prvek (figuru), když prvek došel do konce okna nebo do nepradného elementu. newFigure taky odsahuje ​funkce ​**choise()**,​ která zapisuje do okna náhodně vybraný prvek +  * **newFigure()** zapisuje do okna hry nový prvek (figuru), když prvek došel do konce okna nebo do nepradného elementu. newFigure taky odsahuje ​funkci ​**choise()**,​ která zapisuje do okna náhodně vybraný prvek; 
-  * **move()** zajišťuje pohyb prvků vpravo a vlevo. Smyslem této funkce je přepočet pozice //s1// podle //Ox//, ze kterého ​se zapisuje prvek. Pohyb se realizuje pomocí rotace desky doleva a doprava (mění se jen souřadnice //y//), viz. video +  * **move()** zajišťuje pohyb prvků vpravo a vlevo. Smyslem této funkce je přepočet pozice //s1// podle //Ox//, ze které ​se zapisuje prvek. Pohyb se realizuje pomocí rotace desky doleva a doprava (mění se jen souřadnice //y//), viz. video; 
-  * **rotate()** má odpovědnost za rotaci prvků doprava a doleva. Smyslem funkce je změna řádového čísla prvku //n// na jiné přislušné, ​respekpektive ​jeho přezapis. Rotace se realizuje pomocí rotace desky směrem od sebe nebo na sebe +  * **rotate()** má odpovědnost za rotaci prvků doprava a doleva. Smyslem funkce je změna řádového čísla prvku //n// na jiné přislušné, ​respektive ​jeho přezapis. Rotace se realizuje pomocí rotace desky směrem od sebe nebo na sebe (mění se pouze souřadnice //x//); 
-  * **step()** - táto funkce je aktuálním zapisem prvku do masivu okna programu, tj. simulace pohybu prvků dolů +  * **step()** - táto funkce je aktuálním zapisem prvku do masivu okna programu, tj. simulace pohybu prvků dolů; 
-  * **display()** zobrazuje aktuální krok do konzoli +  * **display()** zobrazuje aktuální krok do konzoli; 
-  * **erase()** vymazá prvek pro zobrazení dalšího kroku hry +  * **erase()** vymazá prvek pro zobrazení dalšího kroku hry; 
-  * **collision()** je funkce, která říká o tom, že došlo ke kolizí prvků a je nutné zapsat další prvek do počateční pozice +  * **collision()** je funkce, která říká o tom, že došlo ke kolizí prvků a je nutné zapsat další prvek do počateční pozice; 
-  * **end()** zobrazuje klasický konec hry (nejdříj zaplnění okna neprazdnými prvky, pak jejich vymazání)+  * **end()** zobrazuje klasický konec hry (nejdříj zaplnění okna neprazdnými prvky, pak jejich vymazání).
 ==== Knihovny ==== ==== Knihovny ====
 Knihovny použité ve zdrojovém kódu jsou následující:​ Knihovny použité ve zdrojovém kódu jsou následující:​
-  * **stdio.h** - standardní knihovna jazyka C +  * **stdio.h** - standardní knihovna jazyka C; 
-  * **stdlib.h, time.h** - knihovny pro práci s funkcemi nahodných čísel //rand(), srand()// +  * **stdlib.h, time.h** - knihovny pro práci s funkcemi nahodných čísel //rand(), srand()//; 
-  * **mbed.h** - speciální knihovna mbed +  * **mbed.h** - speciální knihovna mbed; 
-  * **MMA8451Q.h** - knihovna pro akcelerometr+  * **MMA8451Q.h** - knihovna pro akcelerometr;
   * **USBSerial.h** - knihovna pro sériové rozhraní.   * **USBSerial.h** - knihovna pro sériové rozhraní.
  
 Stav hry se indikuje pomocí LEDek: Stav hry se indikuje pomocí LEDek:
-  * zelená LEDka označuje obecný normální stav hry +  * zelená LEDka označuje obecný normální stav hry; 
-  * modrá svití trikrát po sebe v případě, když došlo k odstranění plného řádku+  * modrá svití trikrát po sebe v případě, když došlo k odstranění plného řádku;
   * červená svití, když došlo ke konci hry.   * červená svití, když došlo ke konci hry.
  
-V každém kroku hry se taky zobrazuje počet bodů SCORE. Za odstanění ​jedného ​plného řádku hráč dostává 100 bodů. Plný zdrojový kód s podrobnějším popisem funkcí a proměnných je uveden níže.+V každém kroku hry se taky zobrazuje počet bodů SCORE. Za odstanění ​jednoho ​plného řádku hráč dostává 100 bodů. Plný zdrojový kód s podrobnějším popisem funkcí a proměnných je uveden níže.
 <code c> <code c>
 //​=======================Inkludovani vhodnych knihoven============================= //​=======================Inkludovani vhodnych knihoven=============================
Řádek 620: Řádek 620:
  
 ===== Video demostrace hry Tetris ===== ===== Video demostrace hry Tetris =====
 +{{youtube>​mkZBd6H2NT4?​medium}}
  
 ---- ----
  
 ===== Závěr ===== ===== Závěr =====
-Cílem tohoto individuálního projektu bylo realizovat ​pomocí jazyka C hru Tetris, která pro zobrazení používá terminál na sériové lince, přičemž stav hry se indikuje pomocí LEDek. Program funguje správně, zdrojový kód nemá žádnou chybu nebo upozornění. Minus realizovaného programu je v tom, že hráč může vidět v okně PuTTY přechod od jednoho kroku hry k dalšímu. Ale celkem je možné říct, že vsechny úkoly tohoto projektu jsou splněny.+Cílem tohoto individuálního projektu bylo realizovat hru Tetris, která pro zobrazení používá terminál na sériové lince, přičemž stav hry se indikuje pomocí LEDek. Program funguje správně, zdrojový kód nemá žádnou chybu nebo upozornění. Minus realizovaného programu je v tom, že hráč může vidět v okně PuTTY přechod od jednoho kroku hry k dalšímu. Ale celkem je možné říct, že vsechny úkoly tohoto projektu jsou splněny.
2015/putty-tetris.1451229961.txt.gz · Poslední úprava: 2015/12/27 16:26 autor: Egor Dulesov