Hola a todos, estoy empezando a estudiar programación, y en una de las clases hicimos un programa en el que usamos este bucle, pero ahora no sé como terminarlo correctamente:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
printf("\n\t TAREA\n");
color:
Sleep(1000);
system ("color e0");
Sleep(1000);
system("color d0");
Sleep(1000);
system("color c0");
Sleep(1000);
system("color 20");
Sleep(1000);
system("color b0");
goto color;
}
Cuando empiezan a cambiar los colores, no sé cómo hacer que se detenga el proceso, sólo se queda en un bucle, pero intenté hacerlo con do-while de esta manera:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
do
{
Sleep(1000);
system ("color e0");
Sleep(1000);
system("color d0");
Sleep(1000);
system("color c0");
Sleep(1000);
system("color 20");
Sleep(1000);
system("color b0");
}
while( !kbhit() );
system([b]"PAUSE"[/b]);
}
Y funciona hasta cierto punto, presiono una tecla, pero debo esperar a que el ciclo termine completamente, o sea hasta que llegue al último system("color") para que se finalice, y lo que quiero es que en cuanto presione la tecla se detenga automáticamente, sin esperar que el ciclo llegue a la última línea.
Espero puedan ayudarme, gracias.
Has visto arrays?
Lo que necesita es declarar una variable q capture esa tecla que permita romper ese ciclo una vez que ha cumplido todo lo que se necesita, algo así, no tengo el compilador de c++ conmigo ahora:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
char tecla;
do
{
Sleep(1000);
system ("color e0");
Sleep(1000);
system("color d0");
Sleep(1000);
system("color c0");
Sleep(1000);
system("color 20");
Sleep(1000);
system("color b0");
printf("\n Desea continuar el bucle?? (S/N): ");
scanf ("%c",&tecla);
if(tecla == 'N' || tecla == 'n')
{
break;
}
}
while( tecla!= 'N' || tecla != 'n' );
return 0;
}
Seria cuestión de probar.
Crea un array de cadenas con cada color.
Crea una variable índice con valor 0.
Bucle mientras no se haya pulsado una tecla:
Muestra el contenido de la posición índice.
Suma 1 al índice.
¿Índice está fuera del array?
Dar valor 0 a índice.
Fin del bucle.