Game tower of Hanoi

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Category: Source in Pascal
hanojvez.pngProgram: Hanojvez.pas
File exe: Hanojvez.exe
File ubuntu: Hanojvez
Example: Hanojvez.txt

Game tower of Hanoi. The challenge is to move the rings from the left column to the right. It must not, however, put more into smaller ring. It is always possible to take only one ring.
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