domingo, 13 de octubre de 2013

Triangulos en CPP

Que tal amig@s nuevamente les traigo un código CPP para recordar viejos tiempos, se trata de un proyecto escolar el cual consistia en crear una imagen en el centro de la pantalla y que dicha imagen pudiera crecer y decrecer al pulsar determinadas teclas sin que la imagen se distorcione, asi como tambien poder moverse el las direcciones izquierda, derecha, arriba y abajo utilizando las teclas de direccionamiento.

Un proyecto donde aprendi que cuando se realiza un buen analisis para solucionar un problema, la programacion resulta más facil.


Resultado de ejecutar el codigo CPP.


Aqui les dejo un segmento del archivo de codigo fuente, el archovo fuente completo lo podran descargar aqui triangulos.cpp.

#include "conio.h"
#include "stdio.h"
#include "graphics.h"
#include "math.h"
#include "dos.h"
#include "stdlib.h"

 void graficos(void);
 void menu(void);
 void rombos(int x,int y,int inc);
 void ayuda(void);

 void tecla(char *asci,char *exa);
 
void main(void){
  char asci,exa,hay;
  int x,y,inc;

 graficos();
 menu();

  x=getmaxx()/2-50;
  y=getmaxy()/2+50;
  inc=0;
  rombos(x,y,0);

  tecla(&asci,&exa);

 while(exa!=68){

     switch (exa){

       //escalaminento decreciente F3
       case 61:if(inc>-14){
        setfillstyle(1,3);
        bar(getmaxx()-96,310,getmaxx()-6,350);//F3
        outtextxy(getmaxx()-94,320," F3 ESCALA");
        outtextxy(getmaxx()-94,330,"DECRECIENTE");
        delay(250);
        cleardevice();
        menu();
        inc=inc-14;
        rombos(x,y,inc);
        }
        break;//F3

       //escalamiento creciente F2
       case 60:setfillstyle(1,3);
        bar(getmaxx()-96,265,getmaxx()-6,305);//F2
        outtextxy(getmaxx()-93,275," F2 ESCALA");
        outtextxy(getmaxx()-93,285," CRECIENTE");
        delay(250);
        cleardevice();
        menu();
        inc=inc+14;
        rombos(x,y,inc);
        break;//F2

       //mover a la izquierda <- data-blogger-escaped--="" data-blogger-escaped-75:setfillstyle="" data-blogger-escaped-a="" data-blogger-escaped-bar="" data-blogger-escaped-break="" data-blogger-escaped-case="" data-blogger-escaped-cleardevice="" data-blogger-escaped-delay="" data-blogger-escaped-derecha="" data-blogger-escaped-getmaxx="" data-blogger-escaped-inc="" data-blogger-escaped-la="" data-blogger-escaped-menu="" data-blogger-escaped-mover="" data-blogger-escaped-outtextxy="" data-blogger-escaped-rombos="" data-blogger-escaped-x="" data-blogger-escaped-y="">
       case 77:setfillstyle(1,3);
        bar(getmaxx()-96,40,getmaxx()-6,80);//->
        outtextxy(getmaxx()-90,50,"MOVER A LA");
        outtextxy(getmaxx()-90,60," DERECHA");
        delay(250);
        cleardevice();
        menu();
        x=x+14;
        rombos(x,y,inc);
        break;

       //mover hacia arriba ^
       case 72:setfillstyle(1,3);
        bar(getmaxx()-96,130,getmaxx()-6,170);//up
        outtextxy(getmaxx()-94,140,"MOVER HACIA");
        outtextxy(getmaxx()-94,150,"  ARRIBA");
        delay(250);
        cleardevice();
        menu();
        y=y-14;
        rombos(x,y,inc);
        break;

       //mover hacia abajo v
       case 80:setfillstyle(1,3);
        bar(getmaxx()-96,175,getmaxx()-6,215);//down
        outtextxy(getmaxx()-94,185,"MOVER HACIA");
        outtextxy(getmaxx()-94,195,"   ABAJO");
        delay(250);
        cleardevice();
        menu();
        y=y+14;
        rombos(x,y,inc);
        break;

       case 59:setfillstyle(1,3);
        bar(getmaxx()-96,220,getmaxx()-6,260);//F1
        outtextxy(getmaxx()-90,240," AYUDA F1");
        delay(350);
        cleardevice();
        ayuda();
        break;//F1
     }/

   tecla(&asci,&exa);
  }

}

void rombos(int x, int y,int inc){
 setcolor(4);
  line(x,y,x-10-inc/2,y-20-inc);
  line(x-10-inc/2,y-20-inc,x,y-40-inc*2);
  line(x,y-40-inc*2,x+10+inc/2,y-20-inc);
  line(x+10+inc/2,y-20-inc,x,y);

  line(x,y,x-20-inc,y);
  line(x-20-inc,y,x-30-inc-inc/2,y+20+inc);
  line(x-30-inc-inc/2,y+20+inc,x-10-inc+inc/2,y+20+inc);
  line(x-10-inc+inc/2,y+20+inc,x,y);

  line(x,y,x+20+inc,y);
  line(x+20+inc,y,x+30+inc+inc/2,y+20+inc);
  line(x+30+inc+inc/2,y+20+inc,x+10+inc-inc/2,y+20+inc);
  line(x+10+inc-inc/2,y+20+inc,x,y);

  setfillstyle(1,4);
  floodfill(x,y-4,4);//arriba
  floodfill(x-4,y+4,4);//izq
  floodfill(x+4,y+4,4);//der
  setfillstyle(1,15);
  setcolor(15);
}

...
Segmento del archivo de codigo fuente .CPP

No hay comentarios:

Publicar un comentario

Deja tu Comentario