home *** CD-ROM | disk | FTP | other *** search
- SGPC 5.05 034#000001035 3.09.2002 19:46:55 StructNo 0 0
-
- # include <sgpbalt.h>
-
- int i,ii; // pomocné
- struct {
- int R,G,B;
- } paleta[15]; // paleta pro úvodní rozsv╪tlení obrazu
- int R,G,B; // pomocné poloºky palety
- Typ¼as cas; // m╪²ení prodlevy pro samovolné ztmavení obrazovky
-
- /////////////////////
- // Pomocné definice
- //
-
- #define NE 0
- #define ANO 1
-
- #define ABS(x) ((x)>0?(x):-(x))
-
- #define __CYKLUS(N) __Cyklus(1,N);__Cyklus(0,N); //Hlava cyklu
- #define __MPVC_ 100 //Maximální poƒet vno²en∞ch cyklà
-
- int __Cyklus( int Nov∞, int Poƒet )
- //Nov∞ > 0: Otev²ení nového cyklu s N opakováními (vƒetn╪ 0)
- //Nov∞ = 0: Dalτí pràchod cyklem
- //Nov∞ < 0: P²edƒasné ukonƒení cyklu
- { static int I[__MPVC_];
- static int i = -1;
- if( Nov∞ > 0 )
- { if( ++i >= __MPVC_)
- { TxtPiτⁿet╪zec("P²íliτ mnoho vno²en∞ch cyklà");
- while(1) {Tón(1000);};
- }else I[i]=Poƒet;
- }else if( Nov∞ == 0 )
- { if(--I[i]<0){ i--; return(0);}
- else return(1);
- }else return(-(i--)); //Vrací zápornou aktuální hloubku vno²ení
- } //Cyklus
-
- void ¼ekejNaReakci(void)
- //¼eká na sitsk klávesy nebo tlaƒítka myτi
- { VyprázdniFrontuKláves();
- MyτVyprázdniFrontuUdálostí();
- ¼ekej(NaKlávesu|NaMyτ);
- VyprázdniFrontuKláves();
- MyτVyprázdniFrontuUdálostí();
- } //¼ekejNaReakci
-
- long ¥¼ti¼íslo ( char* Text )
- { long Vrátit = 0;
- GrNastavPozici(272, 0);
- Gr¼tiL¼íslo(Text,Vrátit,8,1,0xe);
- GrNastavPozici(272, 0);
- GrPiτⁿet╪zec( " " );
- return Vrátit;
- } //¥¼ti¼íslo
-
- long BaltEmuluj( char* Text )
- { long Vrátit = 0;
- int Klávesa;
- int Konec = 0;
- TypP²edm╪t P²edm╪t=1;
- VyprázdniFrontuKláves();
- GrNastavBarvy( 0x7 ); GrSmaºOkno();
- GrPiτⁿet╪zec( Text );
- Tón(1000); ¼ekej(10); VypniTón();
- while (!Konec)
- { int p;
- GrNastavPozici(0, GrV∞τkaZnaku);
- GrPiτⁿet╪zec( "ⁿá: "); GrPiτL¼íslo( PoziceBaltazaraY(), 2 );
- GrPiτⁿet╪zec( ", Sl: " ); GrPiτL¼íslo( PoziceBaltazaraX(), 2 );
- GrPiτⁿet╪zec( ", Sm: " );
- int s=Sm╪rBaltazara();
- GrPiτⁿet╪zec( s==V∞chod ? "V∞chod" :
- s==Jih ? "Jih " :
- s==Západ ? "Západ " :
- "Sever " );
- GrPiτⁿet╪zec( ", Ba: " ); NastavBarvu¼arování( p=NastavBarvu¼arování(0));
- GrPiτL¼íslo( p, 2 );
- GrPiτⁿet╪zec( ", Ry: " ); RychlostBaltazara(p = RychlostBaltazara(0));
- GrPiτL¼íslo( p, 2 );
- switch ¼tiKlávesuZFrontyS¼ekáním()
- { case KlDoleva: VlevoVbok(); break;
- case KlDoprava: VpravoVbok(); break;
- case KlNahoru: Popojdi(1); break;
- case KlDolà: ¼aruj(Baltedit()); break;
- case KlIns: Vrátit = ¥¼ti¼íslo( "¼íslo: " ); break;
- case 'B':
- case 'b': NastavBarvu¼arování( ¥¼ti¼íslo("Barva: ") ); break;
- case 'C':
- case 'c': ¼aruj(¼tverec); break;
- case 'R':
- case 'r': RychlostBaltazara( ¥¼ti¼íslo("Rychlost: ") ); break;
- case KlEnter: Konec = 1; break;
- } //switch
- } //while
- GrNastavBarvy( 0x77 ); GrSmaºOkno();
- return Vrátit;
- } //BaltEmuluj
-
-
- ///////////////////
- // Globální makra
- //
- -o1-Globals ----------------------------------------------------------------
- 0 ;prom╪nné
- ;globální prom╪nné (jsou definovány v globálních definicích Ctrl+G):
- ;prom╪nné celoƒíselné: gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gKlávesa;
- ;dalτí p²eddefinované globální prom╪nné mají vºdy p²edponu g..
- ;a jejich názvy jsou shodné s lokálními prom╪nn∞mi definovan∞mi níºe,
- ;nap². gD¼íslo1, gⁿet╪zec atd.
- ;lokální prom╪nné:
- ;prom╪nné celoƒíselné:
- int a,b,c,d,e,f,g,h,i,j,Klávesa, //rozsah -32768..32767
- I¼íslo1,I¼íslo2,I¼íslo3,PàvBarvy;
- ;prom╪nné reálné:
- double D¼íslo1,D¼íslo2,D¼íslo3; //rozsah 5.0E-324..1.7E308
- ;prom╪nná znak:
- char Znak;
- ;prom╪nná ²et╪zec:
- string ⁿet╪zec;
- [ ;vytvo² Baltazaràv grafick∞ prostor
- Vytvo²Prostor(); MyτZaƒátekObsluhy();
- ] ;zruτ Baltazaràv grafick∞ prostor
- MyτKonecObsluhy(); ZruτProstor();
- a Klávesa= ¼tiKlávesuZFronty();
- b P²epniNaBaltazara();
- c ¼aruj(¼tverec);
- d Gr¼tiZnak("?",Znak,1,0x07); /* edit ano, ƒerná/sv.τedá*/
- ╨ return BaltEmuluj("Hodnota?");
- e BezObláƒku();
- f VyprázdniFrontuKláves();
- g Gr¼tiSⁿet╪zec("?",ⁿet╪zec,40,1,0x3f); /*40zn, edit ano, modrá/bílá */
- h Gr¼tiI¼íslo("?",I¼íslo1,6,0,0x0e); /* 6zn, edit ne, ƒerná/ºlutá */
- i Gr¼tiD¼íslo("?",D¼íslo1,20,1,0x0f); /*20zn, edit ne, ƒerná/bílá */
- j GrPiτZnak(Znak);
- k Klávesa= ¼tiKlávesuZFrontyS¼ekáním();
- l VlevoVbok();
- ê BaltEmuluj("STOP");
- m ;vypiτ ⁿet╪zec do grafického okénka
- PàvBarvy=GrNastavBarvy(Modrá<<4|ªlutá); /*ºlutá na modré */
- GrPiτⁿet╪zec(ⁿet╪zec); /*vypíτe obsah prom╪nné ⁿet╪zec*/
- GrNastavBarvy(PàvBarvy); /*nastaví pàvodní barvy */
- n Neviditeln∞();
- o SObláƒkem();
- p Popojdi(1);
- q GrPiτL¼íslo(I¼íslo1,-1); /* -1 = nejkratτí v∞pis */
- r VpravoVbok();
- t P²epniNaText();
- u GrPiτD¼íslo(D¼íslo1,10,2); /*10 ƒíslic, z toho 2 desetinné*/
- v Viditeln∞();
- w ;ƒekej na stisk klávesy nebo tlaƒítka myτi
- ¼ekejNaReakci();
- x Skryj();
- y Odhal();
- z ;ƒelem vzad
- VlevoVbok(); VlevoVbok();
- B NastavBarvu¼arování /* B:(barva)! 0-15 */
- C ¼aruj /* C:(p²edm╪t)! 1-150 */
- ╤ return BaltEmuluj /* ╤:("Volno")! "Test" */
- L NaƒtiScénu /* L:("soubor")! "c:\\pavel\\soubor.s00" */
- ¥ BaltEmuluj /* ¥:("Text")! "Test" */
- N Náhodn╪¼aruj /* N:(p²edm╪t)! 1-150 */
- P Popojdi /* P:(poƒet_polí)! 0-14 */
- R RychlostBaltazara /* R:(rychlost)! 0-9 */
- S UloºScénu /* S:("soubor")! "c:\\pavel\\soubor.s00" */
- W ¼ekej /* W:(milisekund)! 0-32000 */
- X ¼arujNaPozici /* X:(p²edm╪t,x,y)! 1-150, 1-15, 1-10 */
- -c1-Globals ---- (? lze pouºít jako náhrada pouze pro /,*,+) -----------------
- ?n PràchodnostP²edm╪tuP²edB() Je 0
- ?p PràchodnostP²edm╪tuP²edB() Je 1
- ?B Barva¼tverceP²edB() /* Je, Není, <, >, <= ,>= */
- ?P P²edm╪tP²edB() /* Je, Není, <, >, <= ,>= */
- ?S Sm╪rBaltazara() /* Je, Není, <, >, <= ,>= */
- \b Barva¼tverceP²edB()??
- \p P²edm╪tP²edB()??
- \s Sm╪rBaltazara()??
- \C case
- #C ; n-krát #C:(5) 5₧
- __CYKLUS
- #A ;opakuj vzestupn╪ pro prom╪nnou od,do,krok #A:(i,2,10,2) i=2,4..10
- OdDoKrok
- #D ;opakuj sestupn╪ pro prom╪nnou od,do,krok #D:(i,10,2,2) i=10,8..2
- OdDolàDoKrok
- #M ;opakuj n-krát sestupn╪ pro prom╪nnou #M:(i,8) (8x) i=7,6..0
- DolàDo0
- #N ;opakuj n-krát vzestupn╪ pro prom╪nnou #N:(i,8) (8x) i=0,1..7
- Od0
- ===Globals ------------------------------------------------------------------
- /*-hf(*/
- /*-hf-*/
- void main( void ) // ░░▒▒▓▓██ PARTIE V1.00 INTRO (public domain) ██▓▓▒▒░░
- /*-hf)*/;
- ;-h---------------------------------------------------------------------------
- void main( void ) // ░░▒▒▓▓██ PARTIE V1.00 INTRO (public domain) ██▓▓▒▒░░
- -s--INTRO ■ 10 -2 -24 3
- INTRO
- :EscMínus()
- :GrNastavMód(2)
- :GrNastavV∞stup(2)
- :GrNastavPàvodníPaletu()
- :GrNastavBarvuPozadí(0)
- :GrSmaºOkno()
- O0w1!
- -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
- w ;ƒekání
- VyprázdniFrontuKláves();
- StopkyNuluj();StopkyStart();
- do Stopky(cas); while ((BylaStisknutaKlávesa()==0) && (cas.Sekundy<3));
- StopkyStop();
- VyprázdniFrontuKláves();
- O GrNaƒtiBMP(0,0,"*\\partie.bmp",0,0,-1,-1,1);
- 0 ;naƒtení palety ze souboru
- TypSoubor soubor=SouborOtev²i("*\\partie.pal",
- SouborP²ístup¼tení|SouborP²ístupBinární);
- for (i=0; i<=15; i++)
- {
- paleta[i].R=Soubor¼tiZnak(soubor);
- paleta[i].G=Soubor¼tiZnak(soubor);
- paleta[i].B=Soubor¼tiZnak(soubor);
- }
- SouborZav²i(soubor);
- for (i=1; i<=64; i++)
- for (ii=0; ii<=15; ii++)
- {
- GrBarvaPalety(ii,R,G,B);
- if (R<paleta[ii].R) R++;
- if (G<paleta[ii].G) G++;
- if (B<paleta[ii].B) B++;
- GrNastavBarvuPalety(ii,R,G,B);
- ¼ekej(2);
- }
- 1 ;ztmavení barvy
- for (i=1; i<=32; i++)
- for (ii=0; ii<=15; ii++)
- {
- GrBarvaPalety(ii,R,G,B);
- if (R>0) R--;
- if (G>0) G--;
- if (B>0) B--;
- GrNastavBarvuPalety(ii,R,G,B);
- ¼ekej(2);
- }
- -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
- =SP---------------------------------------------------------------------------
-
- //
- // Konec souboru
- //////////////////
-