Problemas con las BGI

Gracias de antemano, tengo un problema, estoy haciendo un parchís entonces quiero comprobar las posiciones de las fichas en el tablero, pero al hacer un bucle para comprobarlo, solo me deja comprobar 12 o 13 posiciones, cuando llego a esta ultima me dice que inicialice las BGI (cosa que es absurda porque en las 11 anteriores no me ha dado error)... Os pongo el código por si os sirve de ayuda, MUCHÍSIMAS GRACIAS :D:D
Este seria el código:
#include<ficha.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int pos[]={347,353,347,340,347,329,347,318,347,307,347,296,347,285,347,274, 354,268, 365,268, 376,268, 387,268, 398,268, 409,268, 420,268, 433,268, 433,213, 420,213, 409,213, 398,213, 387,213, 376,213, 365,213, 355,213, 348,206, 348,195, 348,184, 348,173, 348,162, 348,151, 348,140, 348,127, 293,127, 293,140, 293,151, 293,162, 293,173, 293,184, 293,195, 293,206, 286,212, 275,212, 264,212, 253,212, 242,212, 231,212, 220,212, 207,212, 207,267, 220,267, 231,267, 242,267, 253,267, 264,267, 275,267, 286,267, 292,274, 292,285, 292,296, 292,307, 292,318, 292,329, 292,340, 292,353};
void main(void)
{
int x,y;
x=0;
y=0;
for( ; ; )
{
y=x+1;
ficha_azul(pos[x],pos[y]);
getch();
x=x+2;
}
}
//funcion ficha azul dentro de FICHA.H
void ficha_azul(int x, int y)
{
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,"c:\\tc\\bgi");
setcolor(WHITE);
setfillstyle(INTERLEAVE_FILL,BLUE);
circle(x,y,5);
floodfill(x,y,WHITE);
}

2 Respuestas

Respuesta
1
No tengo idea cual puede ser el problema. Ahora estoy en el laburo y no tengo el C++. Pero me llevo el código a casa y luego te respondo.
De todas formas fíjate de ponerle variables al bucle.
Si como pusiste anda, no sabia que podía hacerse así. Y pone el procedimiento arriba del main.
Ni bien llego a casa me fijo de todas formas.
Respuesta
1
El problema que yo veo es que por cada llamada a la función ficha_azul, inicializas las BGI.
Solución:
Las siguientes líneas:
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,"c:\\tc\\bgi");
Ponelas en una parte inicial como puede ser al comienzo del main. Después de int x,y.
Cuidate.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas