home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 July
/
Chip_1998-07_cd.bin
/
tema
/
sgp
/
vyber
/
hodiny
/
HODINY.SGP
< prev
next >
Wrap
Text File
|
1997-10-28
|
8KB
|
208 lines
SGPC 5.00 S#000000 11.05.1997 10:29:58 StructNo 0 0
# include <sgpbalt.h>
//////////////////////
// Globální prom╪nné
//
// prom╪nné celoƒíselné:
int gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ, // rozsah -32768..32767
gI¼íslo1,gI¼íslo2,gI¼íslo3,gPàvBarvy;
// gKlávesa je souƒástí knihovny Baltazara
// prom╪nné reálné:
double gD¼íslo1,gD¼íslo2,gD¼íslo3; // rozsah 5.0E-324..1.7E308
// prom╪nná znak:
char gZnak;
// prom╪nná ²et╪zec:
string gⁿet╪zec;
///////////////////
// 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á/sτedá*/
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()
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
VyprázdniFrontuKláves();
MyτVyprázdniFrontuUdálostí();
¼ekej(NaKlávesu|NaMyτ);
VyprázdniFrontuKláves();
MyτVyprázdniFrontuUdálostí();
z ;ƒelem vzad
VlevoVbok(); VlevoVbok();
B NastavBarvu¼arování /* B:(barva)! 0-15 */
C ¼aruj /* C:(p²edm╪t)! 1-150 */
L NaƒtiScénu /* L:("soubor")! "c:\\pavel\\soubor.s00" */
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í, <, >, <= ,>= */
#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 )
/*-hf)*/;
;-h---------------------------------------------------------------------------
void main( void )
-s--HODINY ■ 2 -2 -10 3
HODINY
A!Z
*1
OPAKUJ
B!K
│
________________│_________________
____________________│_____________________ │
│ │ │ ____│____ ____│____ │
/2 /3 /4 /5 /6 /7 /8 #9
│ │ │ │ │ │ │ │
C! D! E! F!Y G!Y H!X I!X J!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
A ; DEFINICE PROM╖NNφCH ...
struct FA {TypAnimP²edm╪t NUM ;
int x, z;
}FA[8];
int Klávesa, i, yy, xx;
string NS = "HODINY.S00";
int Sx = 1, Sy = 1, n = 8;
Vytvo²Prostor();
NaƒtiScénu(NS);
FA[0].NUM = AnimP²edm╪tVytvo²(1031,03,0,1);
FA[1].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
FA[2].NUM = AnimP²edm╪tVytvo²(1031,06,0,1);
FA[3].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
FA[4].NUM = AnimP²edm╪tVytvo²(1010,03,0,1);
FA[5].NUM = AnimP²edm╪tVytvo²(1031,06,0,1);
FA[6].NUM = AnimP²edm╪tVytvo²(1031,10,0,1);
FA[7].NUM = AnimP²edm╪tVytvo²(1010,03,0,1);
AnimNastavGrV∞stup(GrV∞stupOkno);
GrNastavV∞stup(GrV∞stupOkno);
int MaxX= GrMaxX()-Grµí²kaPolíƒka, MaxY= GrMaxY()-GrV∞τkaPolíƒka;
VyprázdniFrontuKláves();
B ; ¼TI SYSTÉMOVφ ¼AS ...
Typ¼as ¼as;
Systémov∞¼as(¼as);
FA[1].z = ¼as.Hodiny % 10;
FA[0].z = (¼as.Hodiny - FA[1].z)/10;
FA[3].z = ¼as.Minuty % 10;
FA[2].z = (¼as.Minuty - FA[3].z)/10;
FA[4].z = ¼as.Sekundy & 1;
FA[6].z = ¼as.Sekundy % 10;
FA[5].z = (¼as.Sekundy - FA[6].z)/10;
FA[7].z = !(¼as.Sekundy & 1);
yy=yy+Sy;
xx=xx+Sx;
FA[0].x = Grµí²kaPolíƒka*0+xx;
FA[1].x = Grµí²kaPolíƒka*1+xx;
FA[4].x = Grµí²kaPolíƒka*2+xx;
FA[2].x = Grµí²kaPolíƒka*3+xx;
FA[3].x = Grµí²kaPolíƒka*4+xx;
FA[7].x = Grµí²kaPolíƒka*5+xx;
FA[5].x = Grµí²kaPolíƒka*6+xx;
FA[6].x = Grµí²kaPolíƒka*7+xx;
C ; POSA╥ LEVOU OPICI
FA[4].z = 2;
D ; POSA╥ PRAVOU OPICI
FA[7].z = 2;
E ; POSA╥ OB╖ OPICE
FA[4].z = 2;
FA[7].z = 2;
F ; PⁿESTA╒ STOUPAT
yy = 0;
G ; PⁿESTA╒ KLESAT
yy = MaxY;
H ; ZASTAV POSUN V LEVO
xx = -2*Grµí²kaPolíƒka;
I ; ZASTAV POSUN V PRAVO
xx = MaxX-5*Grµí²kaPolíƒka;
J ; VYPIµ NA OBRAZOVKU ¼AS (HO:MI:SE)
AnimP²edm╪tAnimuj( FA[i].NUM, FA[i].x, yy, FA[i].z);
K ; PⁿE¼TI KL╡VESU Z FRONTY
Klávesa = ¼tiKlávesuZFronty();
X ; ZM╖╒ SM╖R ODRAZU (L/P)
Sx = -Sx;
Y ; ZM╖╒ SM╖R ODRAZU (N/D)
Sy = -Sy;
Z ; KONEC
ZruτProstor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
*1 ; KL╡VESA NEN╓ ENTER
Klávesa != KlEnter
/2 ; N╡RAZ DO LEVÉ ZDI
FA[4].x <= 0
/3 ; N╡RAZ DO PRAVÉ ZDI
FA[7].x >= MaxX
/4 ; N╡RAZ DO STROPU NEBO DO PODLAHY
(yy<=0) || (yy>=MaxY)
/5 ; N╡RAZ DO STROPU
yy < 0
/6 ; N╡RAZ DO PODLAHY
yy > MaxY
/7 ; N╡RAZ DO LEVÉ ZDI
xx < -2*Grµí²kaPolíƒka
/8 ; N╡RAZ DO PRAVÉ ZDI
xx > MaxX-5*Grµí²kaPolíƒka
#9 ; OPAKUJ
i=0; i < n; ++i
=SP---------------------------------------------------------------------------
//
// Konec souboru
//////////////////