/*--------------------------------------------------------------------
 * FICHERO:  Vmen.c
 * OBJETIVO: Probar el objeto Menu
 * AUTOR:    Pedro Reina
 * FECHA:    V.26.5.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Menu.h"

/*--------------------------------------------------------------------
 * Declaracin de macros constantes
 *------------------------------------------------------------------*/

#define MAX 81

/*--------------------------------------------------------------------
 * Declaracin de funciones
 *------------------------------------------------------------------*/

void P_Men_Crea();
void P_Men_CreaHorizontal();
void P_Men_CreaVerticalVector();
void P_Men_CreaVerticalLista();
void P_Men_CreaVerticalPropio();
void P_Men_Texto();
void P_Men_Escribe();
void P_Men_Muestra();
void P_Men_Disponible();
void P_Men_Color();
void P_Men_TeclaSiNo();
void P_Men_Tecla();
void P_Men_Ejecuta();
void P_Men_Destruye();
void P_Men_Horizontal();
void P_Men_VerticalFijo();
void P_Men_VerticalMovil();

logico Funcion();

/*--------------------------------------------------------------------
 * Definicin de variables globales
 *------------------------------------------------------------------*/

menu  Menu;
lista Lista;
tecla VectorTeclaSi[] = { TEC_F1, TEC_TAB, NIL };
tecla VectorTeclaNo[] = { TEC_F4, NIL };

/*--------------------------------------------------------------------
 * Programa principal
 *------------------------------------------------------------------*/
void main()
  {
  int Opcion, Sigue=1;
  contador Fil, Col;

  Pan_Define (PAN_TEXTO);
  while ( Sigue )
    {
    Pan_Limpia();
    Pan_Color (NEGRO,BLANCO);
    Fil = 0, Col = 3;
    Pan_PonTexto (Fil++,Col,"Prueba del objeto Men" );
    Pan_PonTexto (Fil++,Col,"======================" );
    Fil++;
    Pan_PonTexto (Fil++,Col,"0. Fin del programa" );
    Pan_PonTexto (Fil++,Col,"1. Paso a grfico" );
    Pan_PonTexto (Fil++,Col,"2. Paso a texto" );
    Pan_PonTexto (Fil++,Col,"3. Men_Crea()" );
    Pan_PonTexto (Fil++,Col,"4. Men_Texto()" );
    Pan_PonTexto (Fil++,Col,"5. Men_Escribe()" );
    Pan_PonTexto (Fil++,Col,"6. Men_Muestra()" );
    Pan_PonTexto (Fil++,Col,"7. Men_Disponible()" );
    Pan_PonTexto (Fil++,Col,"8. Men_Color()" );
    Pan_PonTexto (Fil++,Col,"9. Men_TeclaSiNo()" );
    Col--;
    Pan_PonTexto (Fil++,Col,"10. Men_Tecla()" );
    Pan_PonTexto (Fil++,Col,"11. Men_Ejecuta()" );
    Pan_PonTexto (Fil++,Col,"12. Men_Destruye()" );
    Pan_PonTexto (Fil++,Col,"13. Men_Horizontal()" );
    Pan_PonTexto (Fil++,Col,"14. Men_Vertical() Fijo" );
    Pan_PonTexto (Fil++,Col,"15. Men_Vertical() Movil" );
    Fil++;
    Pan_PonTexto (Fil++,Col,"Introduce nmero de opcin: " );
    scanf ( "%d", &Opcion );
    getchar();

    switch ( Opcion )
      {
      case 0:   Sigue = 0;               break;
      case 1:   Pan_Cierra();
                Pan_Define (PAN_GRAFICO);
                break;
      case 2:   Pan_Cierra();
                Pan_Define (PAN_TEXTO);
                break;
      case 3:   P_Men_Crea();          break;
      case 4:   P_Men_Texto();         break;
      case 5:   P_Men_Escribe();       break;
      case 6:   P_Men_Muestra();       break;
      case 7:   P_Men_Disponible();    break;
      case 8:   P_Men_Color();         break;
      case 9:   P_Men_TeclaSiNo();     break;
      case 10:  P_Men_Tecla();         break;
      case 11:  P_Men_Ejecuta();       break;
      case 12:  P_Men_Destruye();      break;
      case 13:  P_Men_Horizontal();    break;
      case 14:  P_Men_VerticalFijo();  break;
      case 15:  P_Men_VerticalMovil(); break;
      }
    }
  Pan_Cierra();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Crea()
 *------------------------------------------------------------------*/
void P_Men_Crea()
  {
  int Opcion;
  contador Fil, Col;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Fil = 0, Col = 3;
  Pan_PonTexto (Fil++,Col,"Prueba de Men_Crea()" );
  Pan_PonTexto (Fil++,Col,"--------------------" );
  Fil++;
  Pan_PonTexto (Fil++,Col,"0. Men anterior" );
  Pan_PonTexto (Fil++,Col,"1. Men_Crea() Horizontal" );
  Pan_PonTexto (Fil++,Col,"2. Men_Crea() Vertical Vector Fijo" );
  Pan_PonTexto (Fil++,Col,"3. Men_Crea() Vertical Vector Mvil" );
  Pan_PonTexto (Fil++,Col,"4. Men_Crea() Vertical Lista Fijo" );
  Pan_PonTexto (Fil++,Col,"5. Men_Crea() Vertical Lista Mvil" );
  Pan_PonTexto (Fil++,Col,"6. Men_Crea() Vertical Propio Fijo" );
  Pan_PonTexto (Fil++,Col,"7. Men_Crea() Vertical Propio Mvil" );
  Fil++;
  Pan_PonTexto (Fil++,Col,"Introduce nmero de opcin: " );
  scanf ( "%d", &Opcion );
  getchar();

  switch ( Opcion )
    {
    case 1:   P_Men_CreaHorizontal();        break;
    case 2:   P_Men_CreaVerticalVector(0);   break;
    case 3:   P_Men_CreaVerticalVector(1);   break;
    case 4:   P_Men_CreaVerticalLista(0);    break;
    case 5:   P_Men_CreaVerticalLista(1);    break;
    case 6:   P_Men_CreaVerticalPropio(0);   break;
    case 7:   P_Men_CreaVerticalPropio(1);   break;
    }
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_CreaHorizontal()
 *------------------------------------------------------------------*/
void P_Men_CreaHorizontal()
  {            
  static cadena Prueba[] = { ">Primero", "Segundo", "Te>rcero",
                             ">Cuarto", "Aleda>o" };
  octeto i;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Crea() Horizontal");

  if ( Menu = Men_Crea (MEN_HORIZONTAL,4,10,4,70,
                        (entero)5,MEN_VECTOR,(memoria)Prueba) )
    {
    Pan_PonTexto (3,0,"Coordenadas: ");
    Pan_Entero (Men_FilSup(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColIzq(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_FilInf(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColDer(Menu),1);

    Pan_PonTexto (4,0,"Total: ");
    Pan_Entero (Men_Total(Menu),1);

    Pan_PonTexto (5,0,"Cadenas originales:");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Texto (Prueba[i-1]);
      }

    Pan_PonTexto (6,0,"Opciones:");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Texto (Men_TextoVector(Menu,i));
      }

    Pan_PonTexto (7,0,"Lugares: ");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Entero (Men_Lugar(Menu,i),1);
      }

    Pan_PonTexto (8,0,"Columnas: ");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Entero (Men_Columna(Menu,i),1);
      }

    Pan_PonTexto (9,0,"Disponibles: ");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Entero (Men_DiDisponible(Menu,i),1);
      }
    }

  else  { Pan_PonTexto (4,4,"No se puede crear men"); }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_CreaVerticalVector()
 *------------------------------------------------------------------*/
void P_Men_CreaVerticalVector(Movil)
int Movil;
  {
  static cadena Prueba[] = { ">Primero", "Segundo", "Te>rcero",
                             ">Cuarto", ">Quinto", "Se>xto", ">Sptimo",
                             ">Octavo", ">Noveno", ">Dcimo", ">Undcimo",
                             "Duodcimo"};
  octeto i;
  entero Total;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Crea() Vertical Vector");

  Total = Movil ? 12 : 8;
  if ( Menu = Men_Crea (MEN_VERTICAL,4,10,11,30,
                        Total,MEN_VECTOR,(memoria)Prueba) )
    {
    Pan_PonTexto (3,0,"Coordenadas: ");
    Pan_Entero (Men_FilSup(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColIzq(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_FilInf(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColDer(Menu),1);

    Pan_PonTexto (4,0,"Total: ");
    Pan_Entero (Men_Total(Menu),1);

    Pan_PonTexto (5,0,"Cadenas originales:");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Texto (Prueba[i-1]);
      }

    Pan_PonTexto (6,0,"Opciones:");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Texto (Men_TextoVector(Menu,i));
      }

    Pan_PonTexto (7,0,"Lugares: ");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Entero (Men_Lugar(Menu,i),1);
      }

    Pan_PonTexto (8,0,"Disponibles: ");
    for ( i=1 ; i<=Men_Total(Menu) ; i++ )
      {
      Pan_Caracter (' ');
      Pan_Entero (Men_DiDisponible(Menu,i),1);
      }
    }

  else  { Pan_PonTexto (4,4,"No se puede crear men"); }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_CreaVerticalLista()
 *------------------------------------------------------------------*/
void P_Men_CreaVerticalLista(Movil)
int Movil;
  {
  static cadena Prueba[] = { "Primero", "Segundo", "Tercero",
                             "Cuarto", "Quinto", "Sexto", "Sptimo",
                             "Octavo", "Noveno", "Dcimo", "Undcimo",
                             "Duodcimo", "Dcimotercero" };
  octeto i;
  entero Total;
  lista  L;

  Total = Movil ? 13 : 9;

  Lista = Lis_Crea();
  for ( i=0 ; i<Total ; i++ )
    { Lista = Lis_AnotaFin (Lista, Cad_Duplica(Prueba[i])); }

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Crea() Vertical Lista");

  if ( Menu = Men_Crea (MEN_VERTICAL,4,10,12,18,
                        Lis_Total(Lista),MEN_LISTA,(memoria)Lista) )
    {
    Pan_PonTexto (3,0,"Coordenadas: ");
    Pan_Entero (Men_FilSup(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColIzq(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_FilInf(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColDer(Menu),1);

    Pan_PonTexto (4,0,"Total: ");
    Pan_Entero (Men_Total(Menu),1);

    Pan_PonTexto (5,0,"Cadenas de la lista original: ");
    for ( i=0 , L=Lista ; i<13 ; i++ , L=Lis_Siguiente(L) )
      { Pan_PonTexto (6+i,5,Lis_Contenido(L)); }
    }

  else  { Pan_PonTexto (4,4,"No se puede crear men"); }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_CreaVerticalPropio()
 *------------------------------------------------------------------*/
void P_Men_CreaVerticalPropio(Movil)
int Movil;
  {
  octeto i;
  entero Total;
  caracter Aux[MAX];

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Crea() Vertical Propio");

  Total = Movil ? 40 : 13;

  if ( Menu = Men_Crea (MEN_VERTICAL,4,10,16,35,
                        Total,MEN_PROPIO,(memoria)Funcion) )
    {
    Pan_PonTexto (3,0,"Coordenadas: ");
    Pan_Entero (Men_FilSup(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColIzq(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_FilInf(Menu),1);
    Pan_Caracter (' ');
    Pan_Entero (Men_ColDer(Menu),1);

    Pan_PonTexto (4,0,"Total: ");
    Pan_Entero (Men_Total(Menu),1);

    Pan_PonTexto (5,0,"Cadenas de la funcin original: ");
    for ( i=1 ; i<14 ; i++ )
      {
      Funcion ((entero)i, Aux);
      Pan_PonTexto (5+i,5,Aux);
      }
    }

  else  { Pan_PonTexto (4,4,"No se puede crear men"); }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin Funcion()
 *------------------------------------------------------------------*/
logico Funcion (Num, Texto)
entero Num;
cadena Texto;
  {
  sprintf ( Texto, " El cuadrado de %ld es %ld ", Num, Num*Num );

  return ( SI );
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Texto()
 *------------------------------------------------------------------*/
void P_Men_Texto()
  {
  octeto   i;
  caracter Aux[MAX];

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Texto()");

  Pan_Color (BLANCO,NEGRO);
  for ( i=1 ; i <= Min (12, Men_Total(Menu)) ; i++ )
    {
    Men_Texto (Menu, (entero)i, Aux);
    Pan_PonTexto (3+i, 3, Aux);
    }

  Pan_Color (NEGRO,BLANCO);
  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Destruye()
 *------------------------------------------------------------------*/
void P_Men_Destruye()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Destruye()");

  Men_Destruye (Menu);
  if ( Lista )
    {
    Lis_Destruye (Lista);
    Lista = (lista)NIL;
    }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Escribe()
 *------------------------------------------------------------------*/
void P_Men_Escribe()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Escribe()");

  Men_Escribe (Menu, (entero)3, NO);
  Pan_Color (NEGRO,BLANCO);
  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();

  Men_Escribe (Menu, (entero)8, SI);
  Pan_Color (NEGRO,BLANCO);
  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();

  Men_Escribe (Menu, (entero)10, SI);
  Pan_Color (NEGRO,BLANCO);
  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Muestra()
 *------------------------------------------------------------------*/
void P_Men_Muestra()
  {
  logico Estado;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Muestra()");

  Estado = Men_Muestra (Menu, (entero)1, "Observa las opciones");
  Pan_Color (NEGRO,BLANCO);
  if ( Estado )  { Pan_PonTexto (18,5,"Respuesta: S"); }
  else           { Pan_PonTexto (18,5,"Respuesta: No"); }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Ejecuta()
 *------------------------------------------------------------------*/
void P_Men_Ejecuta()
  {
  entero Respuesta;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Ejecuta()");

  Respuesta = Men_Ejecuta (Menu, (entero)1, "Elige una opcin.");
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (18,5,"Respuesta: ");
  Pan_Entero (Respuesta,1);

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Disponible()
 *------------------------------------------------------------------*/
void P_Men_Disponible()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Disponible()");

  if ( Men_Tipo(Menu) == MEN_VECTOR )
    {
    Men_Disponible (Menu, (entero)2, NO);
    Men_Disponible (Menu, (entero)4, NO);
    }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Color()
 *------------------------------------------------------------------*/
void P_Men_Color()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Color()");

  Men_Color (Menu, ROJO, BLANCO, BLANCO, VERDE, VERDE, BLANCO, NEGRO, VERDE);

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_TeclaSiNo()
 *------------------------------------------------------------------*/
void P_Men_TeclaSiNo()
  {
  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_TeclaSiNo()");

  Men_TeclaSi (Menu, VectorTeclaSi);
  Men_TeclaNo (Menu, VectorTeclaNo);

  Pan_PonTexto (3,3,"Teclas para salir con S: F1, TAB");
  Pan_PonTexto (5,3,"Teclas para salir con No: F4");

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Tecla()
 *------------------------------------------------------------------*/
void P_Men_Tecla()
  {
  tecla  TeclaTrata[] = { TEC_F5, TEC_ESPACIO, NIL };
  octeto Estado;

  Pan_Limpia();
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (1,1,"Prueba de Men_Tecla()");

  while ( (Estado = Men_Tecla(Menu,(tecla *)NIL)) != MEN_SI )
    {
    switch ( Estado )
      {
      case MEN_SI:     Pan_PonTexto (5,3,"S   "); break;
      case MEN_NO:     Pan_PonTexto (5,3,"No   "); break;
      case MEN_TRATA:  Pan_PonTexto (5,3,"Trata"); break;
      }
    }

  Son_Enciende();
  Pan_PonTexto (3,3,"Teclas para tratar: F5, ESPACIO");
  while ( (Estado = Men_Tecla(Menu,TeclaTrata)) != MEN_SI )
    {
    switch ( Estado )
      {
      case MEN_SI:     Pan_PonTexto (5,3,"S   "); break;
      case MEN_NO:     Pan_PonTexto (5,3,"No   "); break;
      case MEN_TRATA:  Pan_PonTexto (5,3,"Trata"); break;
      }
    }

  Pan_CursorVisible (SI);
  Pan_PonTexto (20,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_Horizontal()
 *------------------------------------------------------------------*/
void P_Men_Horizontal()
  {
  static cadena Prueba[] = { ">Primero", "Segundo", "Te>rcero",
                             ">Cuarto", NIL };
  entero Respuesta;

  Pan_Limpia();
        
  Respuesta = Men_Horizontal (5,10,70,Prueba,(entero)1);
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (10,3,"Respuesta: ");
  Pan_Entero (Respuesta,1);

  Pan_CursorVisible (SI);
  Pan_PonTexto (17,3,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_VerticalFijo()
 *------------------------------------------------------------------*/
void P_Men_VerticalFijo()
  {
  static cadena Prueba[] = { ">Primero", "Segundo", "Te>rcero",
                             ">Cuarto", ">Quinto", "Sexto", NIL };
  entero Respuesta;

  Pan_Limpia();
                       
  Respuesta = Men_Vertical (5,10,10,20,Prueba,(entero)1);
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (15,30,"Respuesta: ");
  Pan_Entero (Respuesta,1);

  Pan_CursorVisible (SI);
  Pan_PonTexto (17,30,"Pulsa ENTER para seguir: ");
  getchar();
  }

/*--------------------------------------------------------------------
 * Funcin P_Men_VerticalMovil()
 *------------------------------------------------------------------*/
void P_Men_VerticalMovil()
  {
  static cadena Prueba[] = { ">Primero", "Segundo", "Te>rcero",
                             ">Cuarto", ">Quinto", "Se>xto", ">Sptimo",
                             ">Octavo", ">Noveno", ">Dcimo", ">Undcimo",
                             "Duodcimo", NIL };
  entero Respuesta;

  Pan_Limpia();
        
  Respuesta = Men_Vertical (15,10,20,22,Prueba,(entero)1);
  Pan_Color (NEGRO,BLANCO);
  Pan_PonTexto (15,30,"Respuesta: ");
  Pan_Entero (Respuesta,1);

  Pan_CursorVisible (SI);
  Pan_PonTexto (17,30,"Pulsa ENTER para seguir: ");
  getchar();
  }
