Hra Hanojské veže

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Kategória: Programy v Pascale
hanojvez.pngProgram: Hanojvez.pas
Súbor exe: Hanojvez.exe
Súbor ubuntu: Hanojvez
Príklady: Hanojvez.txt

Hra Hanojské veže. Úlohou je premiestniť krúžky z ľavého stĺpa na pravý. Nesmie sa však položiť väčší krúžok na menší. Vždy je možné vziať len jeden krúžok.
Program vykresli hanojske veze (procedura Podklad).
Nastavi vsetky portebne premena na default (akt, tah, fin).
 
A v cykle vycitava klavesnicu.
Ak stlaci 1 az 3 tak testuje ci nieje zdvihnuty kruzok (podmienka akt=0).
Ak nieje vykona sa nasledovne
  - Zmaze sa kruzok (procedura Kruzok)
  - do premenej akt sa da velkost kruzku
  - vykresli kruzok ako zdvihnuty (za procedura Kruzok)
  - zavola sa procedura Dalsi tak ktora zvacsi o 1 premenu tah a vypise na obrazovku
 
Ak je zdvihnuty kruzok znamena ze ho chce polozit a vtedy sa vykona nasledovne
  - otestuje sa ci je mozne kruzok polozit (funkcia Vyhovuje)
  - ak ano tak sa kruzok zapise do pola kruzkov (premena vez)
  - Vykresli sa takto polozeny kruzok (procedura Kruzok)
  - zavola sa procedura Dalsi tak ktora zvacsi o 1 premenu tah a vypise na obrazovku
 
Nakoniec sa v until testuje ci uz presunul vsetky kruzky (funkcia Koniec).
Ak su vsetky presunute alebo stlacil ESC program sa ukonci.
 
Popis globalnych premenych
 - vez - pole 3x8 v ktorom su ulozene pozicie kruzkov
 - poc - uchovava pocet kruzkov
 - tah - je v nej pocet tahov
 - ch  - znak na precitanie z klavesnice
 - poz - aktualna pozicia kruzku na stlpe
 - akt - sirka aktualneho kruzku
 - stl - cislo aktualneho stlpu
 - fin - ak je true znamena ze program konci