Algo de graficos con pascal
program graficos;
uses
crt, dos, graph; {llamamos a las unidades necesarias con graph solo
valdria}
const
cara : array[1..11] of string[11] = (
'00111111100',
'01000000010',
'01011011010',
'01000100010',
'01000100010',
'01001110010', {el dibujo de la cara}
'01000000010',
'01010001010',
'01001110010',
'00111111100',
'00000000000');
var
drive, mode : integer; {para los graficos}
x, y, i, a : integer; {para el dibujo}
tecla : char; {para el teclado}
procedure pondibujo(xd, yd, color : integer); {dibujo}
begin
for i := 1 to 11 do {para dibujar x}
for a := 1 to 11 do {para dibujar y}
begin
if cara[i][a] = '1' then
putpixel(xd + a, yd + i, color); {dibujamos la cara}
end;
end;
begin
drive := detect; {mandamos detectar la targeta grafica}
initgraph(drive, mode,'c:\tp\bgi'); {iniciamos los graficos}
{'c:\tp\bgi' direccion en
donde tenemos el driver
egavga.bgi }
x := getmaxx div 2; {iniciamos valores de posicion en pantalla de x}
y := getmaxy div 2; {iniciamos valores de posicion en pantalla de y}
setcolor(4); {color del texto solo disponemos de 16 colores 640X480X16}
{pero se puede dibujar asta 256 colores en modo 640X480X256}
{con otro driver el svga256.bgi}
outtextxy(100,getmaxy - 9,'Pulsar Flechas para mover cara ESC Termina');
setcolor(15);
repeat {iniciamos un una repeticion asta pulsar la teca ESC
que terminara el programa}
pondibujo(x,y,15); {dibujamos}
tecla := readkey; {esperamos a que se pulse una tecla}
pondibujo(x,y,0); {borramos}
if tecla = #77 then {tecla derecha flecha}
begin
x := x + 1;
if x > getmaxx - 2 then
x := getmaxx - 2;
end;
if tecla = #75 then {tecla izquierda flecha}
begin
x := x - 1;
if x < 1 then
x := 1;
end;
if tecla = #80 then {tecla abajo flecha}
begin
y := y + 1;
if y > getmaxy - 22 then
y := getmaxy - 22;
end;
if tecla = #72 then {tecla arriba flecha}
begin
y := y - 1;
if y < 1 then
y := 1;
end;
until tecla = #27;
closegraph; {cerramos el grafico antes de terminar}
end.