Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
informatica - graful
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

1 Introducere c3o13og
2 Unitul GRAF
3 Initializarea modului grafic
4 Configuratia ecranului grafic
? Culori
? Desenarea punctelor si a segmentelor de dreapta
? Desenarea liniilor frante si a poligoanelor
? Desenarea cercurilor, arcelor de cerc si de elipsa
? Desenarea figurilor geometrice hasurate
? Afisarea textelor, ferestre de afisare
? Tehnici de animatie
? Modificarea paletei de culori
5 Programul propriu-zis
? Continutul lucrarii
? Scurta prezentare
6 Bibliografie

Grafica pe calculator -; ramura a informaticii care are ca obiect productia automata de desene si imagini. (Aceste termen desemneaza astazi aplicatii informatice legate de reprezentari grafice si prelucrari de imagine.) Grafica pe calculator interactiva -; utilizarea in mod dialog a tehnicilor grafice, pentru a concepe obiecte bi- sau tridimensionale.
Afisarea informatiilor pe ecranul unui calculator se realizeaza prin intermediul placii grafice si a driver-ului grafic asociat acesteia
Placa grafica sau adaptorul de ecran este componenta hard a calculatorului, care asigura gestiunea memoriei ecran si controlul monitorului video.
Driverul grafic este componenta software care comanda placa grafica
Memoria ecran apartine placii grafice, ea pastreaza informatiile care se afiseaza „instantaneu” pe ecran ( in realitate imaginea de pe ecran este generata de aproximativ 50 de ori pe secunda). Memoria ecran poate fi adresata ca o memorie obisnuita.
Placa grafica trateaza ecranul in doua moduri: text si grafic.
In modul text, fiecare caracter care urmeaza sa apara pe ecran este pastrat in memoria ecran pe doi octeti:
1 primul contine codul Ascii al caracterului;
2 al doilea cuprinde caracteristicile caracterului : culoare, iluminare, culoarea fondului, clipire.
In modul grafic, memoria ecran cuprinde pentru fiecare pixel (element de imagine) de pe ecran un cod reprezentat pe biti, prin care se determina culoarea pixelului. Datorita acestui mod de codificare, memoria ecran poate cuprinde imaginea codificata a mai multor ecrane. Zona din memoria ecran necesara pentru memorarea unui ecran se numeste pagina video. In Turbo Pascal, prin subprogramele unit-ului CRT ecranul este tratat in modul text, iar prin subprogramele unitului Graph el este tratat in modul grafic.




1 Initializarea modului grafic
Unitul GRAPH pune la dispozitia utilizatorului 79 de subprograme de grafica pastrate in fisierul GRAPH.TPU. Utilizarea lor este posibila, daca se declara in Uses unit-ul Graph.
Performantele programelor de grafica depind de cele ale placii grafice din componenta calculatorului cu care se lucreaza. Fiecarui mode grafic ii corespunde un driver grafic speci-fic.
Orice subprogram Turbo Pascal de grafica trebuie sa cuprinda:
1-initializarea unui mod grafic acceptat de placa grafica;
2-apelarea subprogramelor pentru realizarea graficii dorite;
3-revenirea la modul video initial.
Initializarea unui mod grafic se realizeaza prin apelul procedurii InitGraph. Apelul are forma: InitGraph ( driver, mod_grafic.cale) unde:
1 driver este o variabila de tip INTEGER ale carei valori reprezinta codul unui driver grafic;
2 mod_grafic este o variabila de tip INTEGER ale carei valori reprezinta codul unui mod grafic;
3 cale este o expresie de tip STRING ale carei valori reprezinta calea pentru fisierele cu extensia BGI, care contin driver-ele grafice (BGI = Borland Graphic Interface). Daca aceste fisiere se gasesc in fisierul curent, nu mai este necesara specificarea caii; in acest caz, valoarea parametrului cale este sirul vid : InitGraph( driver, mod_grafic,’’).

2 Configuratia modului grafic
Coltul stanga sus a ecranului are coordonatele (0,0). Coordonatele coltului din dreapta jos al ecranului depind de placa grafica si de modul grafic activat. Ele se pot obtine apeland functiile GetMaxX si GetMaxY de tip INTEGER, fara parametri. Utilizand aceste functii, se asigura independenta programului fata de placa grafica a calculatorului.
Pozitia unui pixel oarecare de pe ecran se specifica prin cele doua coordonate ale sale. Se pastreaza, fara sa fie vizibila pe ecran pozitia punctului curent, de obicei ultimul pixel aprins.
1 Culori
Procedura de initializare a modului grafic realizeaza si initializarea paletei de culori. In Turbo Pascal culorile se exprima prin constante definite in unitul GRAPH, sau prin valorile lor reprezentand indici din paleta
Culoarea fontului este intotdeauna culoarea din paleta cu indicele 0. Deci culoarea implicita a fondului este neagra. Culoarea fondului se poate schimba cu ajutorul procedurii SetBgColor (Background = fond). Apelul procedurii are forma: SetBkColor(culoare), culoare fiind o expresie de tip WORD cu valori apartinand intervalului a0,15i.
Culoarea cu care se deseneaza este culoarea din paleta cu indicele 15. Ea se poate modifica cu procedura SetColor. Apelul are forma: SetColor(culoare), unde culoare satisface aceleasi conditii ca mai sus.
Procedura ClearDevice, fara parametri, „sterge” ecranul (toata memoria ecran se initializeaza cu 0; toti pixelii au culoarea fondului).
1 Desenarea punctelor si a segmentelor de dreapta
Procedura PutPixel aprinde un pixel avand coordonatele (x,y) cu culoarea culoare. Apelul are forma: PutPixel (x, y, culoare), unde:
? x, y sunt expresii de tip INTEGER si reprezinta coordonatele pixelului;
? culoare este expresie de tip WORD cu valori cuprinse intre 0 si 15.

In Turbo Pascal segmentele de dreapta se pot trasa da linii de diverse tipuri si grosimi; caracteristicile liniei se fixeaza prin apelul procedurii SetLineStyle. Apelul are forma:
SetLineStyle(tip_linie, model, grosime), toti parametrii fiind expresii de tip WORD.
Exista trei proceduri care traseaza segmente de dreapta, de culori fixate prin procedura SetColor si caracteristici stabilite prin procedura SetLineStyle:
1- Procedura Line -; se apeleaza prin: Line(x1, y1, x2, y2). Parametrii x1, y1, x2, y2 sunt de tip INTEGER.
2- Procedura LineTo -; se apeleaza prin: LineTo(x, y). Parametri x, y sunt de tip
INTEGER.
3- Procedura LineRel -; se apeleaza prin: LineRel(dx, dy). Parametrii dx, dy sunt de tip INTEGER.
Pentru a schimba pozitia unui punct curent se utilizeaza urmatoarele proceduri:
1- Procedura MoveTo -; se apeleaza prin: MoveTo(x, y). Parametrii x, y sunt de tip
INTEGER.
2- Procedura MoveRel -; se apeleaza prin: MoveRel(dx, dy). Parametrii dx, dy sunt de tip INTEGER.
1 Desenarea liniilor frante si a poligoanelor
1- Desenarea dreptunghiurilor -; se realizeaza prin apelul procedurii Rectangle:
Rectangle(x1, y1, x2, y2).
2- Desenarea liniilor frante -; se realizeaza prin apelul procedurii DrawPoly:
DrawPoly(n ,varf), unde:
1 n este o expresie de tip WORD, care defineste numarul de puncte care vor fi unite de linia franta;
2 varf este o variabila de tip tablou cu tipul de baza PointType. Tipul
PointType este definit in unitul Graph astfel: Type PointType = Record x, y: integer end;
3- Desenarea poligoanelor cu n varfuri se realizeaza tot prin apelul procedurii DrawPoly, dar cu n+1 varfuri: DrawPoly(n+1,varf).
1 Desenarea cercurilor, arcelor de cerc si de elipsa
1- Desenarea cercurilor -; se realizeaza prin apelul procedurii Circle: Circle(x, y, raza). Parametrii x, y de tip INTEGER si raza de tip WORD.
2- Desenarea arcelor de cerc -; se realizeaza prin apelul procedurii Arc:
Arc(x, y, unghi_initial, unghi_final, raza). Parametrii x, y sunt de tip INTEGER, ceilalti sunt de tip WORD.
3- Desenarea arcelor de elipsa si a elipselor -; se realizeaza prin apelul procedurii Ellipse:
Ellipse(x, y, unghi_initial, unghi_final, raza_x, raza_y).
Observatie: Nici una din procedurile anterioare nu modifica pozitia punctului curent.
1 Desenarea figurilor geometrice hasurate
2 Procedura SetFillStyle se apeleaza prin: SetFillStyle(model, culoare). Parametrii sunt de tip WORD.
3 Procedura SetFillPattern se foloseste in locul procedurii SetFillStyle, daca se doreste o hasura definita de utilizator. Procedura se apeleza prin:
SetFillPattern(model_pers, culoare), unde model_pers este o variabila de tipul predefinit FillPatternType. Acest tip e definit in unit-ul Graph astfel:
Type FillPatternType = arraya1..8i of byte;
3- Procedura Bar -; deseneaza si hasureaza un dreptunghi: Bar(x1, y1, x2, y2)
4- Procedura Bar3D(x1, y1, x2, y2, adancime, capac) unde parametrii sunt expresii:
3 x1, y1, x2, y2 de tip INTEGER;
4 adancime de tip WORD;
5 capac de tip BOOLEAN; se poate exprima prin constantele predefinite:
- TopOn cu valoarea True
- TopOff cu valoarea False.
5- Procedura FillPoly -; deseneaza si hasureaza un poligon. Se apeleaza prin:
FillPoly(n, varf). Parametrii sunt aceiasi ca la procedura DrawPoly
6- Procedura FillEllipse deseneaza si hasureaza o elipsa: FillEllipse(x, y, raza_x, raza_y)

7- Procedura Sector -; deseneaza si hasureaza un sector de elipsa. Se apeleaza prin :
Sector(x, y, unghi_initial, unghi_final, raza_x, raza_y).
Parametrii coincid cu cei ai procedurii Ellipse.
8- Procedura PieSlice -; deseneaza si hasureaza un sector de cerc. Se apeleaza prin:
PieSlice(x, y, unghi_initial, unghi_final, raza).

Parametrii coincid cu cei ai procedurii Arc.
9- Procedura FloodFill-; deseneaza, cu modelul si culoarea curenta, o zona definita printr-un punct interior (x, y) si culoarea frontierei. Se determina prin:
FloodFill(x, y, culoare_margine). Parametrii sunt expresii: x, y de tip INTEGER si culoare_margine de tip WORD.
1 Afisarea textelor, ferestre de afisare
Pentru afisarea textelor trebuie alese atributele caracterelor cu care se va face afisarea si, apoi, apelate procedurile de afisare.
Pentru a stabili atribute asociate textelor se utilizeaza procedurile urmatoare:
1 Procedura SetTextStyle(tip_caractere, directie, marime)
Toti parametrii sunt de tip WORD. Parametrul tip_caractere determina forma caracterelor cu care se va face afisarea; parametrul directie determina directia de afisare(el se poate exprima prin constantele: HorizDir, VertDir); parametrul marime determina marimea caracterelor care se vor afisa.
Caracterele tipului DefaultFont sunt reprezentate in unit-ul Graph prin cate 8 octeti, in ordinea valorilor codului lor ASCII. Cei 8x8 biti asociati unui caracter, considerati ca o matrice de 8x8, definesc forma caracterului. Sirul format din toate grupurile de 8 octeti asociati caracterelor formeaza fontul raster. In celelalte tipuri de caractere sunt afisabile numai caracterele cu coduri ASCII intre 32 si 127. Fonturile corespunzatoare lor se numesc fonturi vectoriale.
Din cauza modului diferit de reprezentare interna, cand se maresc, caracterele fonturilor vectoriale arata mult mai bine decat cele ale fontului raster.
2 Procedura SetTextJustify(orizontal, vertical). Parametrii sunt de tip WORD.
Afisarea propriu-zisa a textelor se realizeaza cu ajutorul procedurilor OutTextXY si OutText.
1-Procedure OutText -; se apeleaza prin: Outtext(sir). Parametrul sir este o expresie de tip STRING.
2-Procedura OutTextXY -; se apeleaza prin: OutTextXY(x, y, sir). Parametrii x, y sunt de tip Integer.
O fereastra de afisare este o zona dreptunghiulara de pe ecran in care deseneaza procedurile apelate dupa executia procedurii SetViewPort. Procedura SetViewPort deschide o fereastra care ramane activa pana la deschiderea unei noi ferestre.
Procedura se apeleaza prin: SetViewPort(x1, y1, x2, y2, taiere). Parametrii x1, y1, x2, y2 sunt de tip INTEGER si definesc coordonatele stanga-sus si dreapta-jos ale ferestrei. Parametrul taiere este o expresie booleana; el se poate exprima prin constantele predefinite in unit-ul Graph:
ClipOn -; valoarea True
ClipOff -; valoarea False
Daca taiere = ClipOn, procedurile apelate dupa procedura SetViewPort vor desena numai in fereastra, desenul exterior ferestrei ramanand neschimbat.
Daca taiere = ClipOff, taierea nu se realizeaza si se va desena si in afara ferestrei.
1 Tehnici de animatie
Orice program de animatie trebuie sa cuprinda urmatorii pasi:
1 afisarea corpului sau figurii;
2 o pauza care sa permita perceptia imaginii afisate;
3 stergerea imaginii afisate la pasul 1;
4 modificarea pozitiei corpului sau figurii care se afiseaza si revenirea la pasul 1.
In Turbo Pascal exista urmatoarele tehnici simple de animatie:
? Pentru stergerea figurii se redeseneaza corpul(figura) cu culoarea fondului.

? Se apeleaza procedura SetWriteMode(XorPut) care fixeaza modul de scriere pe ecran pe Xor ( sau exclusiv). Acest mod permite ca la primul apel al uneia din procedurile Line, LineTo, LineRel, DrawPoly, Rectangle, OutText, OutTextXY ( numai pentru fonturile vectoriale ) sa se deseneze, iar la al doilea apel sa se stearga desenul afisat anterior.
? Se utilizeaza procedurile GetImage si PutImage.
Procedura GetImage se apeleaza prin: GetImage (x1, y1, x2, y2, memorie).
Ea realizeaza prelucrarea imaginii cuprinse in dreptunghiul de coordonate stanga-sus ( x1, y1), dreapta-jos ( x2, y2) si stocarea ei in variabila memorie. Pentru evitarea erorilor se recomanda ca variabila memorie sa fie dinamica, iar dimensiunea ei sa se determine cu functia ImageSize.
Functia se apeleaza prin: ImageSize( x1, y1, x2, y2 ). Parametrii x1, y1, x2, y2 sunt expresii de tip INTEGER, iar functia este de tip WORD.
Procedura PutImage se apeleaza prin: PutImage( x, y, memorie, XorPut ).
Ea realizeaza afisarea imaginii pastrate in variabila memorie intr-un dreptunghi al carui colt stanga-sus are coordonatele (x, y). Parametrul XorPut asigura mod de scriere XOR, deci la primul apel realizeaza scriere, iar la al doilea stergere.
? Se utilizeaza procedurile de manipulare a paginilor video. Aceasta tehnica este aplicabila numai modurilor grafice care utilizeaza mai multe pagini video. In aceste cazuri, memoria ecran cuprinde mai multe pagini. Pagina asupra careia actioneaza la un moment dat procedurile grafice se numeste pagina activa (curenta).
Animatia se obtine prin construirea imaginii urmatoare celei curente in pagina activa, in timp ce imaginea curenta este pastrata in pagina vizibila, si transformarea paginii active in pagina vizibila
Procedura SetActivePage stabileste pagina activa in care vor „scrie” procedurile grafice, apelate ulterior. Procedura se apeleaza prin: SetActivePage (pagina).
Procedura SetVisualPage stabileste pagina vizibila. Se apeleaza prin:
SetVisualPage(pagina). Cele mai rapide tehnici de animatie sunt ultimele doua.
? Modificarea paletei de culori
Exista posibilitatea modificarii paletei in intregime sau selectiv:
1- Procedura SetAllPalette modifica toata paleta; imagina de pe ecran isi modifica instantaneu culorile conform noii palete. Se apeleaza prin:SetAllPalette(paleta).
Parametrul paleta este o variabila de tip PaletteType care cuprinde codurile din noua paleta. Tipul PaletteType este definit in unit-ul Graph astfel:
Type PaletteType = Record size: byte; colors: arraya0..MaxColorsi of ShortInt; end;
2- Procedura SetPalette modifica numai valoarea din paleta al carei indice este specificat la apel. Se apeleaza prin: SetPalette(indice, cod_culoare). Parametrul indice este o expresie de tip WORD, iar cod_culoare este o expresie de tip ShortInt care defineste codul culorii.
Pe placile grafice VGA si IBM exista posibilitatea de a modifica nuantele culorilor, modificand proportiile culorilor primare, prin apelul procedurii SetRGBPalette.
Procedura se apeleaza prin: SetRGBPalette (cod_culoare, rosu, verde, albastru). Parametrii rosu, verde, albastru sunt expresii de tip INTEGER cu valori cuprinse intre 0 si 63, care exprima proportia in care apar culorile primare in componenta culorii cu codul cod_culoare.
Daca este afisat pe ecran un desen cu culoarea respectiva, acesta isi schimba instantaneu nuanta.
Se pot obtine efecte spectaculoase utilizand aceste proceduri, daca se aduce paleta la o singura culoare, se deseneaza diverse culori ( desenul nu va fi vizibil pe ecran) si apoi treptat se incarca paleta cu culorile initiale.
? Continutul lucrarii

Program Atestat_Potolica_Dragos_Florin;

Uses graph,crt;
Var gd,gm,n,i,a,b,c,d,x,y:integer; r,t:char; dd:string;
Procedure welcome;
Begin
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Writeln;
Textcolor(yellow);
Writeln(' PAC GAME');
Delay(1500);
Textcolor(9);
Write(' A');
Delay(130);
Write('u');
Delay(130);
Write('t');
Delay(130);
Write('h');
Delay(130);
Write('o');
Delay(130);
Write('r');
Delay(130);
Write(':');
Delay(130);
Write('P');
Delay(130);
Write('o');
Delay(130);
Write('s');
Delay(130);
Write('t');
Delay(130);
Write('o');
Delay(130);
Write('l');
Delay(130);
Write('i');
Delay(130);
Write('c');
Delay(130);
Write('a');
Delay(130);
Write(' ');
Delay(130);
Write('D');
Delay(130);
Write('r');
Delay(130);
Write('a');
Delay(130);
Write('g');
Delay(130);
Write('o');
Delay(130);
Write('s');
Delay(130);
Write('-');
Delay(130);
Write('F');
Delay(130);
Write('l');
Delay(130);
Write('o');
Delay(130);
Write('r');
Delay(130);
Write('i');
Delay(130);
Write('n');
End;
Begin
Repeat n:=0;
Clrscr; gd:=detect;
InitGraph(gd,gm,'c:\bp\bgi');
SetTextStyle(5,horizdir,4);
SetColor(11);
OutTextXY(60,160,'Acesta este proiectul meu de atestat');
Delay(4000);
CloseGraph;
Welcome;
Delay(1300); a:=30; b:=30; c:=47; d:=47; gd:=detect;
InitGraph(gd,gm,'c:\bp\bgi');
SetColor(yellow);
OutTextXY(575,3,'Esc:exit');
OutTextXY(10,3,'t:teleportare');
MoveTo(0,0);
SetColor(9);
OutTextXY(250,3,'Scorul este:');
SetColor(yellow);
Rectangle(0,15,639,479);
SetWriteMode(xorput);
Repeat n:=n+1;
Randomize;
Repeat x:=random(639); y:=random(479);
Until (x<>0) and (y>15);
SetColor(10);
Line(0,150,150,150);
Line(180,100,250,100);
Line(180,15,180,100);
Line(180,225,180,280);
Line(300,500,300,350);
Line(200,200,getmaxx,200);
Line(0,380,130,380);
Line(150,150,150,280);
Line(131,330,131,430);
Line(450,450,450,300);
Line(180,349,380,349);
Line(230,299,550,299);
Line(381,318,381,400);
Line(350,401,431,401);
Line(551,400,551,250);
Line(469,401,620,401);
Line(180,318,180,349);
Line(251,50,251,180);
Line(230,181,310,181);
Line(480,50,480,199);
Line(300,100,370,100);
Line(430,100,619,100);
Line(620,35,620,150);
Line(510,34,620,34);
Line(75,151,75,279);
Line(35,280,131,280);
Line(150,getmaxy,150,getmaxy-4);
Line(185,getmaxy,185,getmaxy-4);
Line(388,15,388,19);
Line(420,15,420,19);
Line(0,295,4,295);
Line(0,325,4,325);
Line(getmaxx-4,345,getmaxx,345);
Line(getmaxx-4,375,getmaxx,375);
SetColor(13);
OutTextXY(x,y,'_');
Repeat t:=readkey;
Case t of
AsusS
#72:Begin
Repeat
If (b=16)
Or ((b=151) and ( 0<a) and (a<151 ))
Or ((b=101) and (162<a) and (a<251))
Or ((b=15) and (178<a) and (a<182))
Or ((b=201) and(182<a) and (a<getmaxx))
Or ((b=381) and (0<a) and (a<131))
Or ((b=281) and (132<a) and (a<151))
Or ((b=431) and (113<a) and (a<132))
Or ((b=451) and (432<a) and (a<451))
Or ((b=350) and (162<a) and (a<380))
Or ((b=300) and (212<a) and (a<550))
Or ((b=401) and (369<a) and (a<382))
Or ((b=402) and (332<a) and (a<431))
Or ((b=401) and (532<a) and (a<552))
Or ((b=402) and (451<a) and (a<620))
Or ((b=281) and (162<a) and (a<181))
Or ((b=350) and (162<a) and (a<181))
Or ((b=180) and (234<a) and (a<252))
Or ((b=182) and (212<a) and (a<310))
Or ((b=101) and (282<a) and (a<370))
Or ((b=101) and (412<a) and (a<619))
Or ((b=151) and (603<a) and (a<621))
Or ((b=35) and (492<a) and (a<620))
Or ((b=280) and (58<a) and (a<75))
Or ((b=281) and (17<a) and (a<131))
Then begin
Rectangle(a,b,c,d);
Delay(10);
Rectangle(a,b,c,d);
End
Else Begin
SetColor(14);
Rectangle(a,b,c,d);
Delay(10);
SetColor(14);
Rectangle(a,b,c,d); b:=b-1; d:=d-1;
If (b=16)and(a>=388)and(c<=420) then
Begin a:=155; c:=172; b:=getmaxy; d:=getmaxy+17;
End;
End;
Until keypressed;
End;
#27:exit;
AjosS
#80:Begin
Repeat
If (d=getmaxy-1)
Or ((d=15) and (a<=180) and (c>=180))
Or ((d=149) and (0<c) and (c<168))
Or ((d=99) and (180<c) and (c<268))
Or ((d=199) and (200<c) and (c<getmaxx))
Or ((d=349) and (300<=c) and (c<=317))
Or ((d=379) and (0<c) and (c<148))
Or ((d=329) and (131<=c) and (c<=148))
Or ((d=299) and (450<=c) and (c<=467))
Or ((d=348) and (179<c) and (c<398))
Or ((d=298) and (229<c) and (c<568))
Or ((d=317) and (381<=c) and (c<=398))
Or ((d=400) and (349<c) and (c<449))
Or ((d=249) and (551<=c) and (c<=568))
Or ((d=400) and (468<c) and (c<638))
Or ((d=224) and (180<=c) and (c<=197))
Or ((d=317) and (180<=c) and (c<=197))
Or ((d=49) and (251<=c) and (c<=268))
Or ((d=180) and (229<c) and (c<328))
Or ((d=49) and (480<=c) and (c<=498))
Or ((d=99) and (299<c) and (c<388))
Or ((d=99) and (429<c) and (c<637))
Or ((d=34) and (620<=c) and (c<=637))
Or ((d=33) and (509<c) and (c<638))
Or ((d=150) and (75<=c) and (c<=92))
Or ((d=279) and (35<=c) and (c<=148))
Then Begin
Rectangle(a,b,c,d);
Delay(10);
Rectangle(a,b,c,d);
End
Else Begin
SetColor(14);
Rectangle(a,b,c,d);
Delay(10);
SetColor(14);
Rectangle(a,b,c,d); b:=b+1; d:=d+1;
If (d=getmaxy-1) and (a>=150) and (c<=186) then
Begin a:=400; c:=417; b:=16; d:=33;
End;
End;
Until keypressed;
End;
AstangaS
#75:Begin
Repeat
If (a=1)
Or ((a=151) and (b<=150) and (d>=151))
Or ((a=251) and (b<=100) and (d>=101))
Or ((c=198) and (b>=15) and (d<=100))
Or ((c=100) and (b>=200) and (d<=201))
Or ((c=318) and (b<=500) and (d>=350))
Or ((a=131) and (b<=380) and (d>=381))
Or ((c=168) and (b>=149) and (d<=297))
Or ((c=149) and (b>=315) and (d<=447))
Or ((c=468) and (b<=450) and (d>=300))
Or ((a=381) and (b<=349) and (d>=350))
Or ((a=551) and (b<=299) and (d>=300))
Or ((c=399) and (b<=400) and (d>=318))
Or ((a=432) and (b<=401) and (d>=402))
Or ((c=569) and (b<=400) and (d>=250))
Or ((a=621) and (b<=401) and (d>=402))
Or ((c=198) and (b<=280) and (d>=225))
Or ((c=198) and (b<=349) and (d>=318))
Or ((c=269) and (b<=180) and (d>=50))
Or ((a=311) and (b<=181) and (d>=182))
Or ((c=498) and (b<=199) and (d>=50))
Or ((a=371) and (b<=100) and (d>=101))
Or ((a=620) and (b<=100) and (d>=101))
Or ((c=638) and (b<=150) and (d>=35))
Or ((c=621) and (b<=34) and (d>=35))
Or ((a=76) and (b<=279) and (d>=151))
Or ((c=149) and (b<=280) and (d>=281))
Then Begin
Rectangle(a,b,c,d);
Delay(10);
Rectangle(a,b,c,d);
End
Else
Begin
Setcolor(14);
Rectangle(a,b,c,d);
Delay(10);
SetColor(14);
Rectangle(a,b,c,d); a:=a-1; c:=c-1;
If (a=1)and(b>=295)and(d<=325) then
Begin b:=350; d:=367; a:=getmaxx; c:=getmaxx+17;
End;
End;
Until keypressed;
End;
AdreaptaS
#77:Begin
Repeat
If(c=getmaxx-1)
Or ((a=162) and (b<=100) and (d>=100))
Or ((a<0) and (b<=150) and (d>=150))
Or ((c=179) and (b>=15) and (d<=100))
Or ((a=182) and (b<=198) and (d>=200))
Or ((c=299) and (b<=500) and (d>=350))
Or ((c=149) and (b>=149) and (d<=297))
Or ((c=130) and (b>=315) and (d<=447))
Or ((c=449) and (b<=450) and (d>=300))
Or ((a=162) and (b<=347) and (d>=348))
Or ((a=212) and (b<=298) and (d>=299))
Or ((c=380) and (b<=400) and (d>=318))
Or ((a=332) and (b<=399) and (d>=400))
Or ((c=550) and (b<=400) and (d>=250))
Or ((a=451) and (b<=399) and (d>=400))
Or ((c=179) and (b<=280) and (d>=225))
Or ((c=179) and (b<=349) and (d>=318))
Or ((c=250) and (b<=180) and (d>=50))
Or ((a=212) and (b<=179) and (d>=182))
Or ((c=479) and (b<=199) and (d>=50))
Or ((a=282) and (b<=98) and (d>=101))
Or ((a=412) and (b<=98) and(d>=101))
Or ((c=619) and (b<=150) and (d>=35))
Or ((a=492) and (b<=32) and (d>=35))
Or ((c=74) and (b<=279) and (d>=151))
Or ((a=17) and (b<=278) and (d>=280))
Then Begin
Rectangle(a,b,c,d);
Delay(10);
Rectangle(a,b,c,d);
End
Else Begin
Setcolor(14);
Rectangle(a,b,c,d);
Delay(10);
SetcolOr(14);
Rectangle(a,b,c,d); a:=a+1; c:=c+1;
If (c=getmaxx-1)and(b>=345)and(d<=376) then
Begin b:=300; d:=317; a:=-20; c:=-3;
End;
End;
Until keypressed;
End;
AteleportareS
't':Begin for i:=1 to 15 do
Begin
Rectangle(a+i,b+i,c,d);
Delay(15);
Rectangle(a+i,b+i,c,d);
End;
Randomize;
Repeat a:=random(500);c:=a+17; b:=random(300);d:=b+17;
Until (a<>0) and (b>15); for i:=1 to 15 do
Begin
Rectangle(a+15-i,b+15-i,c,d);
Delay(100);
Rectangle(a+15-i,b+15-i,c,d);
End;
Repeat
Rectangle(a,b,c,d);
Delay(100);
Rectangle(a,b,c,d);
Until keypressed;
End;
' ':Outtextxy(x+2,y,' ');
End;
Until (a<x) and (x<c) and (b<y) and (y<d);
For i:=0 to getmaxy-y do
Begin
SetColor(magenta);
OutTextXY(x,y+i,'_');
Ellipse(x+3,y+i-5,0,360,7,4);
Ellipse(x+15,y+i-20,0,360,20,10);
OutTextXY(x+1,y+i-22,'HELP');
Delay(7);
SetColor(0);
OutTextXY(x,y+i-1,'_');
Ellipse(x+3,y+i-5,0,360,7,4);
Ellipse(x+15,y+i-20,0,360,20,10);
OutTextXY(x+1,y+i-22,'HELP');
End;
OutTextXY(x,y,'_');
OutTextXY(347,3,dd);
Str(n,dd);
OutTextXY(347,3,dd);
ClearDevice;
MoveTo(0,0);
SetColor(9);
OutTextXY(250,3,'Scorul este:');
SetColor(yellow);
OutTextXY(575,3,'Esc:exit');
OutTextXY(10,3,'t:teleportare');
Rectangle(0,15,639,479);
OutTextXY(347,3,dd);
SetColor(0);
Line(0,150,150,150);
Line(180,100,250,100);
Line(180,15,180,100);
Line(180,225,180,280);
Line(300,500,300,350);
Line(200,200,getmaxx,200);
Line(0,380,130,380);
Line(150,150,150,280);
Line(131,330,131,430);
Line(450,450,450,300);
Line(180,349,380,349);
Line(230,299,550,299);
Line(381,318,381,400);
Line(350,401,431,401);
Line(551,400,551,250);
Line(469,401,620,401);
Line(180,318,180,349);
Line(251,50,251,180);
Line(230,181,310,181);
Line(480,50,480,199);
Line(300,100,370,100);
Line(430,100,619,100);
Line(620,35,620,150);
Line(510,34,620,34);
Line(75,151,75,279);
Line(35,280,131,280);
Line(150,getmaxy,150,getmaxy-4);
Line(185,getmaxy,185,getmaxy-4);
Line(388,15,388,19);
Line(420,15,420,19);
Line(0,295,4,295);
Line(0,325,4,325);
Line(getmaxx-4,345,getmaxx,345);
Line(getmaxx-4,375,getmaxx,375);
Until n=3;
For i:=1 to 19 do
If i mod 2 = 0 then Begin
Delay(80);
SetTextStyle(4,horizdir,6);
Delay(80);
SetColor(10);
Delay(80);
OutTextXY(60,160,'You are the WINNER!!!');
Delay(80);
End;
CloseGraph;
InitGraph(gd,gm,'c:\bp\bgi');
SetColor(yellow);
OutTextXY(100,250,'---Daca vrei sa mai JOCI apasa Y altfel apasa N---');
SetColor(red);
OutTextXY(100,265,' ???---apoi apasa tasta ENTER---???');
Textcolor(black);
Readln(r);
CloseGraph;
Until r='n';
End.
? Scurta prezentare
Acest program este o aplicatie a Unit-ului Graph din limbajul de programare
PASCAL. El reprezinta un „joculet” in care utilizatorul trebuie sa „manance” intr-un timp cat mai scurt „omuletii” de pe ecran, manevrand patratul prin intermediul sagetilor.
Prin intermediul portitelor „magice” utilizatorul poate ajunge intr-un timp foarte scurt dintr-o parte a ecranului in alta. Pentru a „manca” un „omulet”, utilizatorul trebuie sa apese tasta „SPACE” cand patratul se afla deasupra acestuia
Jocul continua pana cand utilizatorul distruge cinci omuleti . La sfarsitul jocului, utilizatorul poate opta pentru a iesi din joc sau pentru a reincepe jocul. Totodata jucatorul poate parasi jocul in orice moment apasand tasta ESC.
Programul foloseste majoritatea functiilor grafice din limbajul de programare Pascal si are o interfata placuta.

? Limbajul Turbo Pascal , Doina Rancea, Editura Libris, Cluj, 1994
? Turbo Pascal Help
? Dictionar de informatica, Editura Niculescu, Bucuresti, 1999


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta