home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 July / Chip_1998-07_cd.bin / tema / sgp / vyber / hodiny / HODINY.SGP < prev    next >
Text File  |  1997-10-28  |  8KB  |  208 lines

  1. SGPC   5.00 S#000000 11.05.1997 10:29:58                                        StructNo 0   0
  2. # include <sgpbalt.h>
  3. //////////////////////
  4. // Globální prom╪nné
  5. //
  6. // prom╪nné celoƒíselné:
  7.      int     gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,       // rozsah -32768..32767
  8.              gI¼íslo1,gI¼íslo2,gI¼íslo3,gPàvBarvy;
  9.              // gKlávesa je souƒástí knihovny Baltazara
  10. // prom╪nné reálné:
  11.      double  gD¼íslo1,gD¼íslo2,gD¼íslo3;          // rozsah 5.0E-324..1.7E308
  12. // prom╪nná znak:
  13.      char    gZnak;
  14. // prom╪nná ²et╪zec:
  15.      string  gⁿet╪zec;
  16.  
  17. ///////////////////
  18. // Globální makra
  19. //
  20. -o1-Globals ----------------------------------------------------------------
  21. 0 ;prom╪nné
  22.   ;globální prom╪nné (jsou definovány v globálních definicích  Ctrl+G):
  23.     ;prom╪nné celoƒíselné: gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gKlávesa;
  24.        ;dalτí p²eddefinované globální prom╪nné mají vºdy p²edponu g..
  25.        ;a jejich názvy jsou shodné s lokálními prom╪nn∞mi definovan∞mi níºe,
  26.        ;nap². gD¼íslo1, gⁿet╪zec atd.
  27.   ;lokální prom╪nné:
  28.     ;prom╪nné celoƒíselné:
  29.        int     a,b,c,d,e,f,g,h,i,j,Klávesa,      // rozsah -32768..32767
  30.                I¼íslo1,I¼íslo2,I¼íslo3,PàvBarvy;
  31.     ;prom╪nné reálné:
  32.        double  D¼íslo1,D¼íslo2,D¼íslo3;          // rozsah 5.0E-324..1.7E308
  33.     ;prom╪nná znak:
  34.        char    Znak;
  35.     ;prom╪nná ²et╪zec:
  36.        string  ⁿet╪zec;
  37. [ ;vytvo² Baltazaràv grafick∞ prostor
  38.    Vytvo²Prostor(); MyτZaƒátekObsluhy();
  39. ] ;zruτ Baltazaràv grafick∞ prostor
  40.    MyτKonecObsluhy(); ZruτProstor();
  41. a Klávesa= ¼tiKlávesuZFronty()
  42. b P²epniNaBaltazara()
  43. c ¼aruj(¼tverec)
  44. d Gr¼tiZnak("?",Znak,1,0x07)             /*      edit ano, ƒerná/sτedá*/
  45. e BezObláƒku()
  46. f VyprázdniFrontuKláves()
  47. g Gr¼tiSⁿet╪zec("?",ⁿet╪zec,40,1,0x3f)   /*40zn, edit ano, modrá/bílá */
  48. h Gr¼tiI¼íslo("?",I¼íslo1,6,0,0x0e)      /* 6zn, edit  ne, ƒerná/ºlutá*/
  49. i Gr¼tiD¼íslo("?",D¼íslo1,20,1,0x0f)     /*20zn, edit  ne, ƒerná/bílá */
  50. j GrPiτZnak(Znak)
  51. k Klávesa= ¼tiKlávesuZFrontyS¼ekáním()
  52. l VlevoVbok()
  53. m ;vypiτ ⁿet╪zec do grafického okénka
  54.    PàvBarvy=GrNastavBarvy(Modrá<<4|ªlutá); /* ºlutá na modré          */
  55.    GrPiτⁿet╪zec(ⁿet╪zec);            /* vypíτe obsah prom╪nné ⁿet╪zec */
  56.    GrNastavBarvy(PàvBarvy);          /* nastaví pàvodní barvy         */
  57. n Neviditeln∞()
  58. o SObláƒkem()
  59. p Popojdi(1)
  60. q GrPiτL¼íslo(I¼íslo1,-1)             /* -1 = nejkratτí v∞pis          */
  61. r VpravoVbok()
  62. t P²epniNaText()
  63. u GrPiτD¼íslo(D¼íslo1,10,2)           /* 10 ƒíslic, z toho 2 desetinné */
  64. v Viditeln∞()
  65. w ;ƒekej na stisk klávesy nebo tlaƒítka myτi
  66.    VyprázdniFrontuKláves();
  67.    MyτVyprázdniFrontuUdálostí();
  68.    ¼ekej(NaKlávesu|NaMyτ);
  69.    VyprázdniFrontuKláves();
  70.    MyτVyprázdniFrontuUdálostí();
  71. z ;ƒelem vzad
  72.    VlevoVbok(); VlevoVbok();
  73. B NastavBarvu¼arování   /*       B:(barva)!   0-15                    */
  74. C ¼aruj                 /*     C:(p²edm╪t)!   1-150                   */
  75. L NaƒtiScénu            /*    L:("soubor")!   "c:\\pavel\\soubor.s00" */
  76. N Náhodn╪¼aruj          /*     N:(p²edm╪t)!   1-150                   */
  77. P Popojdi               /*  P:(poƒet_polí)!   0-14                    */
  78. R RychlostBaltazara     /*    R:(rychlost)!   0-9                     */
  79. S UloºScénu             /*    S:("soubor")!   "c:\\pavel\\soubor.s00" */
  80. W ¼ekej                 /*  W:(milisekund)!   0-32000                 */
  81. X ¼arujNaPozici         /* X:(p²edm╪t,x,y)!   1-150, 1-15, 1-10       */
  82. -c1-Globals ---- (? lze pouºít jako náhrada pouze pro /,*,+) -----------------
  83. ?n PràchodnostP²edm╪tuP²edB() Je 0
  84. ?p PràchodnostP²edm╪tuP²edB() Je 1
  85. ?B Barva¼tverceP²edB()  /* Je, Není, <, >, <= ,>= */
  86. ?P P²edm╪tP²edB()       /* Je, Není, <, >, <= ,>= */
  87. ?S Sm╪rBaltazara()      /* Je, Není, <, >, <= ,>= */
  88. #A ;opakuj vzestupn╪ pro prom╪nnou od,do,krok   #A:(i,2,10,2)  i=2,4..10
  89.     OdDoKrok
  90. #D ;opakuj sestupn╪  pro prom╪nnou od,do,krok   #D:(i,10,2,2)  i=10,8..2
  91.     OdDolàDoKrok
  92. #M ;opakuj n-krát sestupn╪  pro prom╪nnou       #M:(i,8)  (8x) i=7,6..0
  93.     DolàDo0
  94. #N ;opakuj n-krát vzestupn╪ pro prom╪nnou       #N:(i,8)  (8x) i=0,1..7
  95.     Od0
  96. ===Globals ------------------------------------------------------------------
  97. /*-hf(*/
  98. /*-hf-*/
  99. void main( void )
  100. /*-hf)*/;
  101. ;-h---------------------------------------------------------------------------
  102. void main( void )
  103. -s--HODINY                                                                      ■   2  -2 -10   3
  104.                                    HODINY
  105.                                     A!Z
  106.                                      *1
  107.                                    OPAKUJ
  108.                                     B!K
  109.                                      │
  110.                      ________________│_________________
  111.  ____________________│_____________________           │
  112.  │      │      │      ____│____       ____│____       │
  113.  /2     /3     /4     /5      /6      /7      /8      #9
  114.  │      │      │      │       │       │       │       │
  115. C!     D!     E!     F!Y     G!Y     H!X     I!X     J!
  116. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  117. A  ; DEFINICE PROM╖NNφCH ...
  118.    struct FA {TypAnimP²edm╪t NUM ;
  119.              int x, z;
  120.              }FA[8];
  121.    int Klávesa, i, yy, xx;
  122.    string NS = "HODINY.S00";
  123.    int Sx = 1, Sy = 1, n = 8;
  124.    Vytvo²Prostor();
  125.    NaƒtiScénu(NS);
  126.    FA[0].NUM = AnimP²edm╪tVytvo²(1031,03,0,1);
  127.    FA[1].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
  128.    FA[2].NUM = AnimP²edm╪tVytvo²(1031,06,0,1);
  129.    FA[3].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
  130.    FA[4].NUM = AnimP²edm╪tVytvo²(1010,03,0,1);
  131.    FA[5].NUM = AnimP²edm╪tVytvo²(1031,06,0,1);
  132.    FA[6].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
  133.    FA[7].NUM = AnimP²edm╪tVytvo²(1010,03,0,1);
  134.    AnimNastavGrV∞stup(GrV∞stupOkno);
  135.    GrNastavV∞stup(GrV∞stupOkno);
  136.    int MaxX= GrMaxX()-Grµí²kaPolíƒka, MaxY= GrMaxY()-GrV∞τkaPolíƒka;
  137.    VyprázdniFrontuKláves();
  138. B  ; ¼TI SYSTÉMOVφ ¼AS ...
  139.    Typ¼as ¼as;
  140.    Systémov∞¼as(¼as);
  141.    FA[1].z = ¼as.Hodiny % 10;
  142.    FA[0].z = (¼as.Hodiny - FA[1].z)/10;
  143.    FA[3].z = ¼as.Minuty % 10;
  144.    FA[2].z = (¼as.Minuty - FA[3].z)/10;
  145.    FA[4].z = ¼as.Sekundy & 1;
  146.    FA[6].z = ¼as.Sekundy % 10;
  147.    FA[5].z = (¼as.Sekundy - FA[6].z)/10;
  148.    FA[7].z = !(¼as.Sekundy & 1);
  149.    yy=yy+Sy;
  150.    xx=xx+Sx;
  151.    FA[0].x = Grµí²kaPolíƒka*0+xx;
  152.    FA[1].x = Grµí²kaPolíƒka*1+xx;
  153.    FA[4].x = Grµí²kaPolíƒka*2+xx;
  154.    FA[2].x = Grµí²kaPolíƒka*3+xx;
  155.    FA[3].x = Grµí²kaPolíƒka*4+xx;
  156.    FA[7].x = Grµí²kaPolíƒka*5+xx;
  157.    FA[5].x = Grµí²kaPolíƒka*6+xx;
  158.    FA[6].x = Grµí²kaPolíƒka*7+xx;
  159. C  ; POSA╥ LEVOU OPICI
  160.    FA[4].z = 2;
  161. D  ; POSA╥ PRAVOU OPICI
  162.    FA[7].z = 2;
  163. E  ; POSA╥ OB╖ OPICE
  164.    FA[4].z = 2;
  165.    FA[7].z = 2;
  166. F  ; PⁿESTA╒ STOUPAT
  167.    yy = 0;
  168. G  ; PⁿESTA╒ KLESAT
  169.    yy = MaxY;
  170. H  ; ZASTAV POSUN V LEVO
  171.    xx = -2*Grµí²kaPolíƒka;
  172. I  ; ZASTAV POSUN V PRAVO
  173.    xx = MaxX-5*Grµí²kaPolíƒka;
  174. J  ; VYPIµ NA OBRAZOVKU ¼AS (HO:MI:SE)
  175.    AnimP²edm╪tAnimuj( FA[i].NUM, FA[i].x, yy, FA[i].z);
  176. K  ; PⁿE¼TI KL╡VESU Z FRONTY
  177.    Klávesa = ¼tiKlávesuZFronty();
  178. X  ; ZM╖╒ SM╖R ODRAZU (L/P)
  179.    Sx = -Sx;
  180. Y  ; ZM╖╒ SM╖R ODRAZU (N/D)
  181.    Sy = -Sy;
  182. Z  ; KONEC
  183.    ZruτProstor();
  184. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  185. *1 ; KL╡VESA NEN╓ ENTER
  186.    Klávesa != KlEnter
  187. /2 ; N╡RAZ DO LEVÉ ZDI
  188.    FA[4].x <= 0
  189. /3 ; N╡RAZ DO PRAVÉ ZDI
  190.    FA[7].x >= MaxX
  191. /4 ; N╡RAZ DO STROPU NEBO DO PODLAHY
  192.    (yy<=0) || (yy>=MaxY)
  193. /5 ; N╡RAZ DO STROPU
  194.    yy      <  0
  195. /6 ; N╡RAZ DO PODLAHY
  196.    yy      >  MaxY
  197. /7 ; N╡RAZ DO LEVÉ ZDI
  198.    xx      <  -2*Grµí²kaPolíƒka
  199. /8 ; N╡RAZ DO PRAVÉ ZDI
  200.    xx      >  MaxX-5*Grµí²kaPolíƒka
  201. #9 ; OPAKUJ
  202.    i=0;  i <  n; ++i
  203. =SP---------------------------------------------------------------------------
  204.  
  205. //
  206. // Konec souboru
  207. //////////////////
  208.