Problemas con las BGI
Hola, gracias de antemano, queria saber si me podriais decir otra forma de poner este codigo...se me ralentiza el programa e incluso se sale del bucle sin pulsar tecla alguna.
int dado(void)
{
int tirada;
int gdriver=VGA;
int gmode=VGAHI;
initgraph(&gdriver,&gmode,"c:\tc\bgi");
do{
clearviewport();
setcolor(WHITE);
rectangle(240,160,400,320);
setfillstyle(SOLID_FILL,WHITE);
floodfill(281,241,WHITE);
tirada=0;
tirada=(rand()%6)+1;
switch(tirada)
{
case 1:
{
setcolor(BLACK);
circle(320,240,15);
setfillstyle(SOLID_FILL,BLACK);
floodfill(320,240,BLACK);
break;
}
case 2:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
break;
}
case 3:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(320,240,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(320,240,BLACK);
break;
}
case 4:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 5:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(320,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(320,240,BLACK);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 6:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(280,240,15);
circle(360,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(280,240,BLACK);
floodfill(360,240,BLACK);
floodfill(360,280,BLACK);
break;
}
}
delay(300);
}while(!kbhit());
fflush(stdin); //no se si es necesario
delay(900);
closegraph();
return tirada;Hola, gracias de antemano, queria saber si me podriais decir otra forma de poner este codigo...
int dado(void)
{
int tirada;
int gdriver=VGA;
int gmode=VGAHI;
initgraph(&gdriver,&gmode,"c:\tc\bgi");
do{
clearviewport();
setcolor(WHITE);
rectangle(240,160,400,320);
setfillstyle(SOLID_FILL,WHITE);
floodfill(281,241,WHITE);
tirada=0;
tirada=(rand()%6)+1;
switch(tirada)
{
case 1:
{
setcolor(BLACK);
circle(320,240,15);
setfillstyle(SOLID_FILL,BLACK);
floodfill(320,240,BLACK);
break;
}
case 2:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
break;
}
case 3:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(320,240,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(320,240,BLACK);
break;
}
case 4:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 5:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(320,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(320,240,BLACK);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 6:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(280,240,15);
circle(360,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(280,240,BLACK);
floodfill(360,240,BLACK);
floodfill(360,280,BLACK);
break;
}
}
delay(300);
}while(!kbhit());
fflush(stdin); //no se si es necesario
delay(900);
closegraph();
return tirada;
}
int dado(void)
{
int tirada;
int gdriver=VGA;
int gmode=VGAHI;
initgraph(&gdriver,&gmode,"c:\tc\bgi");
do{
clearviewport();
setcolor(WHITE);
rectangle(240,160,400,320);
setfillstyle(SOLID_FILL,WHITE);
floodfill(281,241,WHITE);
tirada=0;
tirada=(rand()%6)+1;
switch(tirada)
{
case 1:
{
setcolor(BLACK);
circle(320,240,15);
setfillstyle(SOLID_FILL,BLACK);
floodfill(320,240,BLACK);
break;
}
case 2:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
break;
}
case 3:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(320,240,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(320,240,BLACK);
break;
}
case 4:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 5:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(320,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(320,240,BLACK);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 6:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(280,240,15);
circle(360,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(280,240,BLACK);
floodfill(360,240,BLACK);
floodfill(360,280,BLACK);
break;
}
}
delay(300);
}while(!kbhit());
fflush(stdin); //no se si es necesario
delay(900);
closegraph();
return tirada;Hola, gracias de antemano, queria saber si me podriais decir otra forma de poner este codigo...
int dado(void)
{
int tirada;
int gdriver=VGA;
int gmode=VGAHI;
initgraph(&gdriver,&gmode,"c:\tc\bgi");
do{
clearviewport();
setcolor(WHITE);
rectangle(240,160,400,320);
setfillstyle(SOLID_FILL,WHITE);
floodfill(281,241,WHITE);
tirada=0;
tirada=(rand()%6)+1;
switch(tirada)
{
case 1:
{
setcolor(BLACK);
circle(320,240,15);
setfillstyle(SOLID_FILL,BLACK);
floodfill(320,240,BLACK);
break;
}
case 2:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
break;
}
case 3:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(320,240,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(320,240,BLACK);
break;
}
case 4:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 5:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(320,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(320,240,BLACK);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(360,280,BLACK);
break;
}
case 6:
{
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(280,240,15);
circle(360,240,15);
circle(360,200,15);
circle(280,280,15);
circle(280,200,15);
circle(360,280,15);
floodfill(360,200,BLACK);
floodfill(280,280,BLACK);
floodfill(280,200,BLACK);
floodfill(280,240,BLACK);
floodfill(360,240,BLACK);
floodfill(360,280,BLACK);
break;
}
}
delay(300);
}while(!kbhit());
fflush(stdin); //no se si es necesario
delay(900);
closegraph();
return tirada;
}
