• Martes 5 de Noviembre de 2024, 17:44

Autor Tema:  Re: Problema con las BGI  (Leído 1505 veces)

morpheus117

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Problema con las BGI
« en: Lunes 29 de Julio de 2002, 21:50 »
0
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
  • ,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:tcbgi");
   setcolor(WHITE);
   setfillstyle(INTERLEAVE_FILL,BLUE);
   circle(x,y,5);
   floodfill(x,y,WHITE);
}

compilerman

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Problema con las BGI
« Respuesta #1 en: Miércoles 21 de Agosto de 2002, 00:39 »
0
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.

andress

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Problema con las BGI
« Respuesta #2 en: Lunes 7 de Octubre de 2002, 23:39 »
0
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