[Curso] Introducción a la programación en C (IX)

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por Puzky »

Ok lo cambiaré, pero porqué siempre me sale 2 como número aleatorio?

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
  //Variables
  int num1, num2, oport = 5;

   srand(time(NULL));
   num1 == (rand() % 11);
  //Escaneo
  printf("Este es un juego para dos personas, Tu y la PC\n");
  printf("Espera mientras la PC genera un numero..\n");
  printf("Jugador intenta adivinar el numero del PC: ");
  scanf("%d", &num2);
 
  //Juego
   if  (num2 > 10)
   {
      printf("Entre el 1 y el 10 burro");
      getch();   
      return 0;
    }

   while ((num1 != num2) && (oport > 0))
   {
      oport--;
      printf("Mal!, te quedan %d intentos\nIntentanlo de nuevo: ", oport);
      scanf("%d", &num2);
    }
  if (num1 == num2)
      printf("Ganaste!!");
 
  else
      printf("Perdiste!! el numero era %d.", num1); 
       
  return 0;
}

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Es un error muy tonto, intenta encontrarlo tú mismo ;)
Imagen

Puzky
Experto
Experto
Mensajes: 825
Registrado: 07 Oct 2009, 22:09
PSN ID: Puzky

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por Puzky »

Ya está, pense que también llevaba doble =

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
  //Variables
  int num1, num2, oport = 5;

   srand(time(NULL));
   num1 = (rand() % 11);
  //Escaneo
  printf("Este es un juego para dos personas, Tu y la PC\n");
  printf("Espera mientras la PC genera un numero..\n");
  printf("Jugador intenta adivinar el numero del PC: ");
  scanf("%d", &num2);
 
  //Juego
   if  (num2 > 10)
   {
      printf("Entre el 1 y el 10 burro");
      getch();   
      return 0;
    }

   while ((num1 != num2) && (oport > 0))
   {
      oport--;
      printf("Mal!, te quedan %d intentos\nIntentanlo de nuevo: ", oport);
      scanf("%d", &num2);
    }
  if (num1 == num2)
      printf("Ganaste!!");
 
  else
      printf("Perdiste!! el numero era %d.", num1); 
       
  return 0;
}


-- Doble Post --


Spoiler:

Código: Seleccionar todo

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

int main(int argc, char *argv[])
{
  int cont, numsorteo;
 
  printf("Esta noche se juegan 1'200,000 dolares =P\nAqui vamos!!");
  getchar();

  srand(time(NULL));
  for (cont = 0; cont < 5; cont++)
  {
      printf("%d\n", (rand() % 10));
  }
  printf("Felicidades a los Ganadores");
 
  return 0;
}


Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    //Variables
   int dado_maquina, dado_humano;
   //
   printf("Vamos a jugar a los dados... ¿Te atreves a jugar contra mí?\n");
   printf("Tu tiras primero. Presiona una tecla para tirar el dado.\n");
   getchar();
   //Dado del Jugador
   srand(time(NULL));

   dado_humano = (rand() % 3) + 1;
   printf("Tu tirada ha sido: %d\n", dado_humano);
   dado_humano=0;
   //Dado Pc
   printf("Ahora tiro yo... Espero tu permiso para tirar.\n");
   getchar();
   
   srand(time(NULL));
   dado_maquina = (rand() % 6) + 1;
   printf("Mi tirada ha sido: %d\n", dado_maquina);

   if (dado_maquina > dado_humano)
      printf("Eres un mortal sin mucha suerte\n");
   else if (dado_maquina == dado_humano)
      printf("Vaya coincidencia...\n");
   else
      printf("Eres un mortal con bastante suerte... En la próxima versión no será tan fácil.\n");

   return 0;
}


-- Doble Post --

Ya puedo pasar al X profe?

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Puzky, creo que ya empiezas a enterarte, enhorabuena :oki:
Imagen

Avatar de Usuario
Mirlo_PJ
Enteradillo
Enteradillo
Mensajes: 45
Registrado: 14 Oct 2009, 19:52

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por Mirlo_PJ »

Bueno profe despues de unas vacaiones no gustosas pues no me las queria coger de esta forma (en el hospital aclaro que no era en la playita), retomo las clases donde las deje haber si con el lavado de sangre se me a renovado la mente :D .
Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[]){
    int i;

   printf("Quieres conocer el numero premiado de hoy\n");
   getchar();
   
   srand(time(NULL));
   for(i=0; i <5; i++){
     
      printf("Numero %d: %d\n",i,(rand() % 9));
     
   }
   printf("Gracias por jugar a Loco Loto.\n");
   getchar();
   
    return 0;
}

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[]){
   int NumSecre, NumHum, i;
   
   printf("Adivina mi numero\n");   
   NumHum=0;
   srand(time(NULL));
   NumSecre = (rand() % 10);
   i =0;
   
   while(NumHum != NumSecre && i< 5){
     
      system ("clear");
      printf("Intentos:%d\nAdivina el numero: ",5-i);
      scanf("%d", &NumHum);
     
      if (NumHum < NumSecre){
         printf("\nTe quedaste corto.\n");
         sleep(1);
      }else if(NumHum > NumSecre){
         printf("\nTe as pasao.\n");
         sleep(1);
      }
      i++;
   }
   printf("Te costo XDDD.\n");
   getchar();
   
    return 0;

}

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    int dado_maquina, dado_humano;

   printf("Vamos a jugar a los dados...\nTe atreves a jugar contra mi?\n");
   printf("Tu tiras primero. Presiona una tecla para tirar el dado.\n");
   getchar();
   srand(time(NULL));
   dado_humano = (rand() % 6) + 1;
   if (dado_humano == 6) dado_humano--;
   printf("Tu tirada ha sido: %d\n", dado_humano);

   printf("Ahora tiro yo... Espero tu permiso para tirar.\n");
   getchar();
   
   srand(time(NULL));
    dado_maquina = (rand() % 6) + 1;
   while(dado_maquina <= dado_humano){
    srand(time(NULL));
    dado_maquina = (rand() % 6) + 1;
   }
   printf("Mi tirada ha sido: %d\n", dado_maquina);

   if (dado_maquina > dado_humano)
      printf("Eres un mortal sin mucha suerte\n");

    return 0;

}
Imagen

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Bienvenido de nuevo Mirlo_PJ. Espero que tu estancia en el hospital no fuera grave :)

Mirlo_PJ escribió:

Nada que objetar (bueno, alguna cosilla, pero de muy poca importancia).

Mirlo_PJ escribió:

Estaría bien que le especificaras al usuario entre qué dos números debe adivinar ;)

Código: Seleccionar todo

while(NumHum != NumSecre && i< 5){

Mejor:

Código: Seleccionar todo

while( (NumHum != NumSecre) && (i < 5)){


Código: Seleccionar todo

system ("clear");

Código: Seleccionar todo

sleep(1);

Sobran.

Al final no le dices al usuario si lo adivinó o se le agotaron los intentos...

Mirlo_PJ escribió:


Código: Seleccionar todo

if (dado_maquina > dado_humano)

Sobra puesto que le código anterior asegura que dado_maquina > dado_humano.
Imagen

Avatar de Usuario
dRoLl3R
Habitual
Habitual
Mensajes: 315
Registrado: 29 Sep 2009, 21:30
Ubicación: [ † ] Asturias

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por dRoLl3R »

Buenas de nuevo ;).
Corrijame los ejercicios profesor.

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    int num1, num2, num3, num4, num5, num1b, num2b, num3b, num4b, num5b;
   
    srand(time(NULL));
    num1b = (rand() % 10);
    num2b = (rand() % 10);
    num3b = (rand() % 10);
    num4b = (rand() % 10);
    num5b = (rand() % 10);
   
    printf("SORTEO DE LA LOTERIA DEL HOGAR xD\n");
    printf("Elije 5 numeros del 0 al 9 para tu boleto.\n");
    printf("Numero 1: ");
    scanf("%d", &num1);
    printf("Numero 2: ");
    scanf("%d", &num2);
    printf("Numero 3: ");
    scanf("%d", &num3);
    printf("Numero 4: ");
    scanf("%d", &num4);
    printf("Numero 5: ");
    scanf("%d", &num5);
    printf("\nTu numero es el %d%d.%d%d%d.\n", num1, num2, num3, num4, num5);
    printf("\nJuguemos. Pulsa una tecla para comenzar el sorteo.\n");
    getch(0);//Con getchar(); no se me paraba el progama
   
    system("cls");
   
    printf("Girando bombo.\n");
    sleep (10000); //Uso windows asi que no os estrañe un numero tan grande xD y creo que quedaba bien la pausa para elejir el numero y que salgan de uno en uno.
   
    printf("El %d.", num1b);
    sleep(1000);
    printf("\nEl %d.", num2b);
    sleep(1000);
    printf("\nEl %d.", num3b);
    sleep(1000);
    printf("\nEl %d.", num4b);
    sleep(1000);
    printf("\nEl %d.", num5b);
    sleep(1000);
    printf("\n\nEl numero premiado ha sido el %d%d.%d%d%d.\n\n", num1b, num2b, num3b, num4b, num5b);
   
    if ((num1 == num1b) && (num2 == num2b) && (num3 == num3b) && (num4 == num4b) && (num5 == num5b))
       printf("Tu numero (%d%d.%d%d%d) ha sido el premiado.", num1, num2, num3, num4, num5);
    else
       printf("Tu numero (%d%d.%d%d%d) no ha sido premiado. Suerte la proxima vez.", num1, num2, num3, num4, num5);
       
    printf("\nGracias por jugar.");
   
    return 0;
}

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    int num, numb;
   
    printf("Podras afivinar el numero que estoy pensando.\n");
    printf("Que numero entre el 0 y el 9 crees que estoy pensando: ");
    scanf("%d", &num);
       
    srand(time(NULL));
    numb = rand() % 10;
   
    while (num != numb)
    {
       printf("\nCreia que eras mas listo.\n");
       printf("Vuelve a intentarlo. Que numero estoy pensando: ");
       scanf("%d", &num);
    }   
   
    printf("\nEres un crack lees la mente a un ordenador");
   
    return 0;
}

Spoiler:

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    int dado, dadob;
   
    printf("Juguemos a los dados. Pulsa una tecla para tirar tu dado.\n");
    getch(0);
   
    srand(time(NULL));
    dado = (rand() % 5) + 1;
   
    printf("Has sacado un %d.\n", dado);
    printf("\nMe toca. Pulsa una tecla para que tire el dado.\n");
    getch(0);
   
    dadob =(rand() % 6) + 1;
   
    while (dado >= dadob) dadob = (rand() % 6) + 1;
   
    printf("He sacado un %d. Gano yo.", dadob);
    printf("\nGracias por jugar.");
   
    return 0;
}


Gracias por la correción ;)
Un saludo a todos y a seguir programando.
PSP3ooo: 4.21 -> 5.00 -> 5.03 -> 5.03 GEN-A -> 5.03 M33 -> 5.03 MHU -> 5.03 GEN-C -> 5.03 MHU -> 6.20 PRO-B4

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Droller escribió:

¿Infinitos intentos?

Droller escribió:

Mu bien, sólo que

Código: Seleccionar todo

while (dado >= dadob) dadob = (rand() % 6) + 1;

mejor así:

Código: Seleccionar todo

while (dado >= dadob) 
   dadob = (rand() % 6) + 1;
Imagen

Avatar de Usuario
dRoLl3R
Habitual
Habitual
Mensajes: 315
Registrado: 29 Sep 2009, 21:30
Ubicación: [ † ] Asturias

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por dRoLl3R »

Spoiler:
m0skit0 escribió:
Droller escribió:

¿Infinitos intentos?
Hombre infinitos infinitos no que no hay que ser muy listo para acertar en 10 intentos que son 10 numeros xD
Si quieres lo cambio para 5 intentos o algo asi. Como usted vea.

Spoiler:
m0skit0 escribió:
Droller escribió:

Mu bien, sólo que

Código: Seleccionar todo

while (dado >= dadob) dadob = (rand() % 6) + 1;

mejor así:

Código: Seleccionar todo

while (dado >= dadob) 
   dadob = (rand() % 6) + 1;
¿¿Interfiere en algo esto que me has dicho o es para entederlo mejor??
Lo digo porque con el if lo hiciste en algún curso anterior.
PSP3ooo: 4.21 -> 5.00 -> 5.03 -> 5.03 GEN-A -> 5.03 M33 -> 5.03 MHU -> 5.03 GEN-C -> 5.03 MHU -> 6.20 PRO-B4

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (IX)

Mensaje por m0skit0 »

Droller escribió:Hombre infinitos infinitos no que no hay que ser muy listo para acertar en 10 intentos que son 10 numeros xD
m0skit0 escribió:Reescribir el juego de adivinar el número secreto

Creo recordar que el juego original (el de la lección anterior) tenía un límite de 5 intentos.

Droller escribió:¿¿Interfiere en algo esto que me has dicho o es para entederlo mejor??

Sólo es cuestión de estilo, está bien :oki:
Imagen

Responder