Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/05/2013, 16:06
nicolas2013alcubo
 
Fecha de Ingreso: mayo-2013
Ubicación: Bella Vista, Buenos Aires
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
Respuesta: ¡Es muy complicado hacer esto en C?

Miren: Entiendo que voy por un camino equivocado usar el antiguo Turbo C++ 3.0. Experimentando y experimentando logré hacer ese menú, pero con muchísimo código y bastante repetitivo:

#include<stdio.h>
#include<conio.h>
#include<dos.h>
void menu(void)
{
int opcion=1;
char tecla;
_setcursortype(_NOCURSOR);
textbackground(BLUE);
textcolor(WHITE);
clrscr();

gotoxy(30,2);cprintf("***OPCIONES***");
textbackground(RED);
textcolor(YELLOW);
gotoxy(10,6);cprintf("El planeta m*s cercano al sol");
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,7);cprintf("El planeta m*s lejano al Sol");
gotoxy(10,8);cprintf("Nombre de nuestra galaxia");
gotoxy(10,9);cprintf("Salir");
gotoxy(10,20);cprintf("ARRIBA/ABAJO: RESALTAR OPCION, <ENTER>: SELECCIONAR...");
do{
tecla=getch();

if(tecla==72) opcion--;
if(tecla==80) opcion++;
if(opcion>4) opcion=1;
if(opcion<1) opcion=4;
switch(opcion)
{
case 1:
textbackground(RED);
textcolor(YELLOW);
gotoxy(10,6);cprintf("El planeta m*s cercano al sol");
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,7);cprintf("El planeta m*s lejano al Sol");
gotoxy(10,8);cprintf("Nombre de nuestra galaxia");
gotoxy(10,9);cprintf("Salir");
break;
case 2:
gotoxy(10,6);cprintf("El planeta m*s cercano al sol");
textbackground(RED);
textcolor(YELLOW);
gotoxy(10,7);cprintf("El planeta m*s lejano al Sol");
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,8);cprintf("Nombre de nuestra galaxia");
gotoxy(10,9);cprintf("Salir");
break;
case 3:
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,6);cprintf("El planeta m*s cercano al sol");
gotoxy(10,7);cprintf("El planeta m*s lejano al Sol");
textbackground(RED);
textcolor(YELLOW);
gotoxy(10,8);cprintf("Nombre de nuestra galaxia");
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,9);cprintf("Salir");
break;
case 4:
textbackground(BLUE);
textcolor(WHITE);
gotoxy(10,6);cprintf("El planeta m*s cercano al sol");
gotoxy(10,7);cprintf("El planeta m*s lejano al Sol");
gotoxy(10,8);cprintf("Nombre de nuestra galaxia");
textbackground(RED);
textcolor(YELLOW);
gotoxy(10,9);cprintf("Salir");

break;
}
}while(tecla!=13);
switch(opcion)
{
case 1:
textbackground(WHITE);
textcolor(BLUE);
clrscr();
cprintf("El planeta m*s cercano al sol es J£piter...");
getch();
clrscr();
menu();
break;
case 2:
textbackground(0);
textcolor(YELLOW);
clrscr();
cprintf("El planeta m*s lejano al sol es Plut¢n...");
getch();
clrscr();
menu();
break;
case 3:
textbackground(RED);
textcolor(GREEN);
clrscr();
cprintf("Nuestra galaxia se llama V¡a L*ctea...");
getch();
clrscr();
menu();
break;
case 4:
_setcursortype(_NORMALCURSOR);
textbackground(0);
textcolor(WHITE);
clrscr();
printf("***HASTA LA VISTA, BABY!!!");
getch();
clrscr();
}
}
void main(void)
{
menu();
}

Lo bueno de conio.h es que están las funciones gotoxy (Para mí importantísima) y las funciones textbackground y textcolor (Yeah!, pude colorear las selecciones). Ahora si hay que hacer un programa que tenga varios menúes de estos. ¡Zas!. Igual tengo fé a que debe haber maneras más simplificadas de lograr esto y con menos código. Si tienen algunas sugerencias, díganmelas. Saludos y gracias. Nico