• Viernes 8 de Noviembre de 2024, 21:41

Autor Tema:  Re: Un Jueguito  (Leído 3988 veces)

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« en: Martes 6 de Diciembre de 2005, 22:13 »
0
UNA MATRIZ 3*3, donde apararece una imagen aleatoria  del codigo ASCII (MOLE),  en lapsos de un cuadro a la vez, donde el usuario debera presionar la tecla (perteneciente al teclado numerico correspondiente al cuadro donde aparece el presonaje. Cuando el usuario  presione una teclar no correspondiente a la ubicacin aparecera una equis(X)   y cuado presione una tecla  a la ubicación de la imagen se sumara un contador  en uno, ademas debera ejecutar un sonido, el nivel superado llegue a 20 (20 atrapadas). el programa debe tener 3 niveles de complejidad donde las diferiencias entre ellos radiquen en el tiempo que aparece la mole (mas rapido)...el usuario perdera la jugada en el momento que acumule 10 pases que no haya aplastado la imagen..

ustedes tienen una idea como realizar esooooooooooooo

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #1 en: Martes 6 de Diciembre de 2005, 23:37 »
0
¿cual compilador usas?

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #2 en: Miércoles 7 de Diciembre de 2005, 00:49 »
0
Cita de: "pitukilloloco"
¿cual compilador usas?
EN EN C++...

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #3 en: Miércoles 7 de Diciembre de 2005, 00:54 »
0
ES EL TURBO C++ OH EN C++

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #4 en: Miércoles 7 de Diciembre de 2005, 01:43 »
0
bueno, más bien la pregunta sería si tu tienes alguna idea de cómo hacerlo puesto que eres tú quien lo va a hacer, y sobre esa idea podemos opinar qué tan factible es. A "bote pronto" se me ocurre que tienes que hacer un ciclo esperando la respuesta del usuario mientras pintas y despintas la MOLE. Para controlar el tiempo puedes usas las funciones declaradas en el encabezado <time.h>, para el sonido puedes mandar a escribir el caracter '\a' el cual provoca que se oiga un sonido pero cómo se oiga es dependiente de la pc en la cual se ejecute el programa. Necesitas hacer una función que te pinte el tablero del juego, otra que que te pinte y te quite la MOLE y declarar variables para llevar la cuenta del nivel del juego y de las atrapadas y erradas. Bien, habiendo dicho esto ¿tienes alguna idea de como implementar esto en C (o C++)? ¿tienes otra idea de cómo hacerlo?

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #5 en: Miércoles 7 de Diciembre de 2005, 03:21 »
0
SI...TENGO UNA IDEA..Y TENGO ALGO HECHO PERO NO SE POR QUE NO ME CORRE BIEN...HAY ALGO MALO..YNO SE QUE ES...

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>

int  win=0, error=0;


void pantalla();
int aleatorio();
void correr(int [3][3],int);
void jugar(int);

void main()
{
  int salir=1,tiempo=1700,mole,matriz[3][3] = {7,8,9,4,5,6,1,2,3};

  while(salir!=0)
  {
    textbackground(BLUE);
    randomize();
    clrscr();
    pantalla();
    delay(200);
    mole=aleatorio();
    correr(matriz,mole);

    jugar(mole);

   if(win == 10)
   {
      tiempo-=300;
      error=0;
   }
   delay(tiempo);
   if(error == 10)
    {
      clrscr();
      gotoxy(10,8);
      printf("Usted a perdido, suerte en la proxima.");
      delay(3000);
      abort();      //*****************esto es para salir de un solo************
      //salir=0;
    }

    if(win == 10 || win == 20 || win == 30)
    {
      clrscr();
      gotoxy(10,8);
      printf("A superado este nivel.");
      if(win != 30)
         delay(2000);
    }

    if(win == 30)
    {
      gotoxy(10,6);
      printf("You are the winner.");
      delay(3000);
      abort(); //salir=o;
    }

  }

}

void pantalla()
{               // ÁÂÃÄÅÆÇ ¶·¸¹º»¼½¾¿´ª®¯°±²³µ©ÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß

  textcolor(RED);
  gotoxy(18,2);
  cprintf("LA MOLE");

  gotoxy(15,5);
  cprintf("ÉÍÍÍËÍÍÍËÍÍÍ»");
  gotoxy(15,6);
  cprintf("º   º   º   º");
  gotoxy(15,7);
  cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
  gotoxy(15,8);
  cprintf("º   º   º   º");
  gotoxy(15,9);
  cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
  gotoxy(15,10);
  cprintf("º   º   º   º");
  gotoxy(15,11);
  cprintf("ÈÍÍÍÊÍÍÍÊÍÍͼ");
}

int aleatorio()
{
  int num=0;

  num = random(9)+1;

return num;
}

void correr(int mat[3][3],int cara)
{
   int i,j,x=17,y=6;

   textcolor(YELLOW);
   gotoxy(35,18);
   cprintf("%d",cara);

   for(i=0;i<3;i++)
   {
   for(j=0;j<3;j++)
   {
      if(mat[j] == cara)
      {
         gotoxy(x,y);
         cprintf("");

      }
      x+=4;
   }
   y+=2;
   x=17;
   }
}

void jugar(int cara)
{
    int op=0;

   gotoxy(35,14);
   printf("Aciertos: ");
   gotoxy(35,16);
   printf("Fallos: ");
   gotoxy(35,18);
   printf("Digite su opcion: ");
   op=getche();
   op-=48;
   if(op == cara)
   {
      win+=1;

   }
   else
   {
      error+=1;

   }
   gotoxy(45,14);
   printf("%d",win);
   gotoxy(43,16);
   printf("%d",error);

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #6 en: Miércoles 7 de Diciembre de 2005, 03:41 »
0
¿puedes poner el código entre las etiqueta [ CODE ] y [ /CODE ] (sin los espacios), para poder revisarlo mejor?

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #7 en: Miércoles 7 de Diciembre de 2005, 09:33 »
0
sorry.... como hago eso....


eso es para que...bueno que talvez lo puedas correr
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #8 en: Miércoles 7 de Diciembre de 2005, 11:34 »
0
Cuando estás redactando una respuesta te aparecen varios botones pequeños arriba de donde estás escribiendo; comienzan con una B en negritas, seguida de una I, una U, etc. Hay uno de esos botones que dice CODE, al presionarlo te escribe en donde está el cursor esto [ CODE ] y si lo vuelves a presionar te escribe esto [ /CODE ] (aquí le estoy poniendo espacios entre los paréntesis cuadrados para que se vea y no me lo formatee), de tal forma que, por ejemplo una de las funciones que escribiste quedarían así
Código: Text
  1.  
  2. int aleatorio()
  3. {
  4.    int num=0;
  5.  
  6.    num = random(9)+1;
  7.  
  8.    return num;
  9. }
  10.  
  11.  
aunque aquí yo le puse las identaciones en las instrucciones que están entre las llaves. Deberías de ponerlas en tu código para poder revisarlo más fácilmente

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #9 en: Miércoles 7 de Diciembre de 2005, 11:37 »
0
por cierto ¿por qué adjuntaste el archivo KBHIT.DLL en tu último "post"?

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #10 en: Miércoles 7 de Diciembre de 2005, 12:39 »
0
Asi, es como lo quieres...(la verdad no te he entendido..aun..con eso de CODE... :( )

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>

int  win=0, error=0;


void pantalla();
int aleatorio();
void correr(int [3][3],int);
void jugar(int);

void main()
{
       int salir=1,tiempo=1700,mole,matriz[3][3] = {7,8,9,4,5,6,1,2,3};

        while(salir!=0)
      {
    textbackground(BLUE);
    randomize();
    clrscr();
    pantalla();
    delay(200);
    mole=aleatorio();
    correr(matriz,mole);

    jugar(mole);

              if(win == 10)

   {
      tiempo-=300;
      error=0;
   }

   delay(tiempo);

   if(error == 10)

    {
         clrscr();
          gotoxy(10,8);
                      printf("Usted a perdido, suerte en la proxima.");
         delay(3000);
         abort();      //*****************esto es para salir de un solo************
      //salir=0;
    }

    if(win == 10 || win == 20 || win == 30)

    {
       clrscr();
       gotoxy(10,8);
       printf("A superado este nivel.");

       if(win != 30)
       delay(2000);
    }

    if(win == 30)

    {
      gotoxy(10,6);
      printf("You are the winner.");
      delay(3000);
      abort(); //salir=o;
    }

       }

 }
 
 void pantalla()

  {              

    textcolor(RED);
    gotoxy(18,2);
    cprintf("LA MOLE");

    gotoxy(15,5);
    cprintf("ÉÍÍÍËÍÍÍËÍÍÍ»");
    gotoxy(15,6);
     cprintf("º   º   º   º");
    gotoxy(15,7);
    cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
    gotoxy(15,8);
    cprintf("º   º   º   º");
     gotoxy(15,9);
     cprintf("ÌÍÍÍÎÍÍÍÎÍÍ͹");
     gotoxy(15,10);
     cprintf("º   º   º   º");
     gotoxy(15,11);
     cprintf("ÈÍÍÍÊÍÍÍÊÍÍͼ");
 }

int aleatorio()

{

    int num=0;

     num = random(9)+1;

     return num;
}

void correr(int mat[3][3],int cara)

  {

   int i,j,x=17,y=6;

   textcolor(YELLOW);
   gotoxy(35,18);
   cprintf("%d",cara);

      for(i=0;i<3;i++)

        {
            for(j=0;j<3;j++)

   {
       if(mat[j] == cara)
          {
      gotoxy(x,y);
      cprintf("");

           }
      x+=4;
   }
   y+=2;
   x=17;
         }
}

void jugar(int cara)


{

               int op=0;

   gotoxy(35,14);
   printf("Aciertos: ");
   gotoxy(35,16);
   printf("Fallos: ");
   gotoxy(35,18);
   printf("Digite su opcion: ");
   op=getche();
   op-=48;

   if(op == cara)
   {
       win+=1;

   }

   else

   {
      error+=1;

   }

   gotoxy(45,14);
   printf("%d",win);
   gotoxy(43,16);
   printf("%d",error);


        }

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #11 en: Jueves 8 de Diciembre de 2005, 01:56 »
0
compilé tu ejemplo sin errores y lo probé varias veces ¿cuáles son los errores que mencionas?

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #12 en: Viernes 9 de Diciembre de 2005, 02:27 »
0
EL PROGRAMA CORRE BIEN..SI TU VEZ EL PRIMER MENSAJE, DICE COMO DEBERIA TRABAJAR EL PROGRAMA..... Y UNO DE LOS FALLOS QUE TIENE ES QUE NO CORRE LA CARITA.. SINO QUE HAY QUE ESTAR APRETANDO DONDE ESTA...Y ESA NO ES LA IDEA SINO QUE TIENE QUE,  CORRER Y CONFORME VAYA SALIENDO YO IR PRESIONANDO DONDE VA... Y ESO NO LO HACE ASI... Y TAMBIEN LO DE LA X QUE TIENE QUE APARECER...

pitukilloloco

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Un Jueguito
« Respuesta #13 en: Viernes 9 de Diciembre de 2005, 05:01 »
0
El programa se detiene porque estás usando la función getche, la cual detiene la ejecución del programa hasta que presionas una tecla. Si quieres que esto no suceda puedes usar la función kbhit, declarada en el archivo de cabecera <conio.h>, al igual que la función getche. La función kbhit regresa un valor de verdadero si se presionó una tecla y falso en caso contrario, pero no retira el caracter presionado del buffer interno del teclado que guarda el sistema, por lo que tienes que llamar después a una función que lo retire como getche o getch.
   Por otra parte, no es conveniente usar la función delay, ya que en el lapso que le des estás incapacitada de responder a los eventos del teclado. Para esto es mejor usar la función time que regresa la hora del sistema y la función difftime que regresa el tiempo transcurrido en segundos entre dos tiempos.
   Te muestro un ejemplo sencillo que aclara su uso. Con las ideas aquí expuestas puedes terminar tu programa.
Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;stdlib.h&#62;
  4. #include &#60;conio.h&#62;
  5. #include &#60;ctype.h&#62;
  6. #include &#60;time.h&#62;
  7.  
  8. int main ()
  9. {
  10.    char ch;
  11.    time_t timer1, timer2;
  12.    double segundos_transcurridos = 1.0;
  13.  
  14.    clrscr ();
  15.    time (&timer1);
  16.    gotoxy (1, 1);
  17.    printf (&#34;Presiona la letra 'q' para salir...&#34;);
  18.    gotoxy (1, 10);
  19.    printf (&#34;Digito presionado:&#34;);
  20.    gotoxy (1, 20);
  21.    printf (&#34;Segundos transcurridos:&#34;);
  22.    while (1) {
  23.       if (kbhit ())
  24.          if ((ch = getch ()) == 'q')
  25.             break;
  26.          else if (isdigit (ch)) {
  27.             gotoxy (19, 10);
  28.             printf (&#34;%c&#34;, ch);
  29.          }
  30.       if (difftime (time (&timer2), timer1) &#62; segundos_transcurridos) {
  31.          gotoxy (25, 20);
  32.          printf (&#34;%2.g&#34;, segundos_transcurridos);
  33.          segundos_transcurridos++;
  34.       }
  35.    }
  36.  
  37.    return EXIT_SUCCESS;
  38. }
  39.  
  40.  

PAU_LA_YER

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Un Jueguito
« Respuesta #14 en: Viernes 9 de Diciembre de 2005, 23:32 »
0
:hola:  :hola:  :hola: muchas gracias por tu ayuda... :D  :D  :D