viernes, 11 de abril de 2025

02.- Programación I - Explosivo película Cars2 (Kbhit y Getch de la biblioteca Conio.h / Beep y Sleep de la Biblioteca Windows.h) (2023 - I)


/*Programa que emula el explosivo colocado en la grua de la pelicula Cars 2

empleando la técnica del kbhit y getch de la bilioteca conio.h y las instrucciones 

Sleep y Beep de la biblioteca Windows.h.

Elaborado por Carlos Ferrer

rev. 1 (Nov 2024)

*/


#include<conio.h> //Esta biblioteca incluye las instrucciones Kbhit y getch

#include<iostream>

#include<windows.h> //Se emplea para controlar el tiempo de ejecución del programa, Sleep y Beep

using namespace std;


main()

{

int mm=5,ss=0,intentos=0; 

/*mm representa el tiempo en minutos con el cual arranca la bomba

  ss representa el tiempo en segundos - El conteo arrancara en 5 minutos*/


string c="@@"; //La variable que manejara el código de desactivación 

string aux="";

/*Capturamos dos caracteres del teclado si es igual a la solución desactivamos la bomba en caso contrario restamos 1 minuto del contador de tiempo*/

while (mm>=0 and mm<=5)

{

         Sleep(500); 

/*nos aseguramos que el programa corra cada 1 seg aproximadamente, el segundo se completa con el tiempo de los sonidos. (500+250+250)*/

  system("cls"); //Limpiamos pantalla

  cout <<"Ingrese la clave para desactivar la bomba!!!!"<<endl<<endl; 

  cout <<"(Pista= Dicen que soy el juguete mas egocéntrico"<<endl;

  cout <<"        y mi nombre es dos veces la persona"<<endl;

  cout <<"        mas importante que hay!!!"<<endl;

  cout <<"        Quien es esa persona?)"<<endl<<endl;

  cout <<"Tiempo para explotar --> "<<mm<<":"<<ss<<"        "<<aux<<endl;

//Verificamos la clave ingresada           

         if(kbhit()!=0)

             {

              if(c[0]=='@')

                   {

                    c[0]=getch();

                    if (c[0]=='y') // Convertimos a Mayúscula 

                     {

                     c[0]='Y';

}

                    aux= " Clave *";

                   }

                   else

                   {

                    c[1]=getch();

                    if (c[1]=='o') // Convertimos a Mayúscula 

                     {

                     c[1]='O';

}

                    intentos=intentos+1;

                    aux= " Clave **"; 

                    }

             if (c=="YO" ) //Verificamos clave de desactivación y tomamos acción

                       {

                        system ("cls");

                        cout <<endl<<"Gracias por desactivar la bomba Sir Miles Axlrod"<<endl;

                        Beep(220,300);Beep(294,300);Beep(294,300);Beep(370,300);Beep(494,300);Beep(370,300);

                        Beep(440,800);Beep(440,300);Beep(494,300);Beep(440,300);Beep(370,300);Beep(392,300);

                        Beep(370,300);Beep(330,800);Beep(247,300);Beep(330,300);Beep(330,300);Beep(370,300);

                        Beep(555,300);Beep(555,300);Beep(494,300);Beep(440,300);Beep(392,800);Beep(392,300);

                        Beep(370,300);Beep(247,800);Beep(278,300);Beep(294,300);Beep(330,2600);

                        exit(0);

                        }

                        else

                        {

                         if (intentos==1)

                                      {

                                      system("cls");

  cout <<"(Pista= Dicen que soy el juguete mas egoista"<<endl;

  cout <<"        y mi nombre es dos veces la persona"<<endl;

  cout <<"        mas importante que hay!!"<<endl;

  cout <<"        Quien es esa persona?"<<endl<<endl;

                        cout <<endl<<endl<<"Tiempo para explotar --> "<<mm<<":"<<ss<<"        "<<aux<<endl;

                                      Beep(500, 500);Beep(750,450);Beep(900,300);Beep(500, 200);Beep(750, 200);

                                      Beep(900, 100);Beep(500, 100);Beep(750, 100);Beep(900, 100);Beep(500, 50);

                                      Beep(750, 50);Beep(1000, 900);

                                      cout <<endl<<"CLAVE INCORRECTA !!!!"<<endl;

                                      cout <<"Recalculando tiempo...... (1 minuto menos)"<<endl<<endl;

                                      Sleep(1500);

                                      mm=mm-1;

                                      c="@@";

         aux="";

                                      intentos=0;

                                      }

                       }

           }

           ss=ss-1;

          Beep(250,100);

          Beep(200,100);

          if(ss<0)

{

mm=mm-1;

ss=59;

}    

         }

//Decretamos la explosión

cout <<endl<<"BOOM!!!"<<"  BOOM!!!"<<"  BOOM!!!"<<"  BOOM!!!"<<endl;

Beep (262,300);Sleep(300);Beep (196,300);Sleep(300);Beep (164,300);Sleep(300);

Beep (220,300);Sleep(100);Beep (246,100);Sleep(300);Beep (233,200);Beep(250,1000);

system("pause");

}

No hay comentarios.:

Publicar un comentario