SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: morpheus117 en Lunes 29 de Julio de 2002, 21:50
-
Gracias de antemano, tengo un problema, estoy haciendo un parchis 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 codigo por si os sirve de ayuda, MUCHISIMAS GRACIAS:D:D
Este seria el codigo:
#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
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:tcbgi");
setcolor(WHITE);
setfillstyle(INTERLEAVE_FILL,BLUE);
circle(x,y,5);
floodfill(x,y,WHITE);
}
-
Por lo que he visto y probado el problema que tenés es que inicializás el modo gráfico cada vez que llamás a la función "ficha_azul".
Yo haría esto:
- Enseguida de main, inicializo el modo gráfico (y no dentro de ficha_azul).
- Dentro de ficha azul antes de dibujar nada borro todo (con cleardevice())
- Antes de terminar el programa cierro el modo gráfico con closegraph().
Suerte, ojala logres tu objetivo.
-
hola morpheus
estoy de acuerdo con compilerman,
estas inicilaizando el modo grafico en cada iteracion del ciclo for y esto corrompe la memoria por eso te sale el mensaje de inicializar BGI.
usa initgraph antes del ciclo para, que venido al caso no entiendo cuando termina, no usas ninguna sentencia de control, cuando acaven con el vector de posiciones se te va a embobar el programa. tampoco olvides cerrar el modo grafico.
adios(http://gusanito.com/imagenes/logo.gif)