Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 16/12/2005, 20:11   #1
Snake12
Usuario Activo
 
Avatar de Snake12
 
Fecha de ingreso: 07/mar/2003
Mensajes: 118
Snake12 está en el buen camino
Ejercicio C++, Juego del número secreto

Hola de nuevo, como siempre en aprietos, tengo otro ejercicio que hacer, el último de esta semana, y creo que tengo alguna duda sobre cómo hacerlo, pero antes el enunciado;

Cita:
Diseña un programa C++ para el juego del Numero Secreto. El objetivo del juego es adivinar un número secreto por parte del usuario en un número de intentos inferior a uno predeterminado. En cada intento fallido el programa indicará si el valor indicado es menor o mayor que el número secreto buscado.
Tengo que crear un número aleatorio de 3 cifras (creo que con 3 hay más que suficiente para entretenerse) y para ello creo que he de usar el comando ramdomize, pero no sé cómo...

Luego quiero hacer un do-while si el numero que introdzuco es diferente del que se genera, y si es el mismo (vaya suerte) pues que imprima en pantalla enhorabuena y esas cosas...

Bueno, espero vuestros consejos. Ta luego!!!

Última edición por Snake12; 16/12/2005 a las 20:14.
Snake12 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 17/12/2005, 04:36   #2
Coke
Invitado
 
Mensajes: n/a

saludos...

ya tengo hecho el ejercicio, pero esta vez no te lo voy a poner, de momento, para que pienses un poco....te explico por encima como lo he hecho...

otra_vez:
cout<<"Cual es el numero secreto?...entre 100 y 999 : ";
cin>>numero;
cout<<"\n"<<endl;

no he utilizado randomize()....he utilizado srand y rand

srand(??????????);
int gh = ????+(rand()%?????);

una vez generado el numero, compruebo que este comprendido entre 100 y 999, si no esta, vuelve a pedir otro numero.

si gh menor que 100 ó gh mayor que 999 entoces me voy a "otra vez:"

si esta comprendido, comienzo el bucle...por ejemplo

bool bucle = true;

do {
si numero_ingresado menor numero_generado entoces ...."el numero secreto es mayor"

si numero_ingresado mayor numero_generado entoces ....."el numero secreto es menor"

si ninguna de las dos anteriores entoces...."enhorabuena etc etc..............rompo bucle.

cin>>numero;
cout<<"\n"<<endl;

}while(bucle);


ala, a ver que se te ocurre.

Coke.

Última edición por Coke; 17/12/2005 a las 05:02.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 12:42   #3
Snake12
Usuario Activo
 
Avatar de Snake12
 
Fecha de ingreso: 07/mar/2003
Mensajes: 118
Snake12 está en el buen camino
Hola Coke, muchas gracias antes de nada por tu interés en ayudarme, es de agradecer. Al final hice el jercicio antes de haber podido mirar tu explicación y utilicé un rand y srand, pero como no los he dado no sé manejarlos, simplemente busqué por ahí en google y copié un ejemplo para que generase aleatoriamente los números del 0 al 100, pero no sé como hacerlo para los que yo quiera, si me lo pudieras expliacr...

Bueno, te pongo el ejercicio a ver qué te parece, creo que está bien, pero es un poco "vasto" diría yo:

[CODE]int num, intentos, numer;
srand ( time(NULL) );
num = rand()% 100;

cout << "Acierte un numero secreto entre el 0 y el 100. Tiene 10 intentos. \n" << endl;
cout << "Introduce un numero: ";
cin >> numer;

if ( numer == num )
{
cout << "Ha acertado a la primera.\n" << endl;
}

intentos = 1;
while ( numer != num && intentos < 10 )
{
if ( numer > num )
{
cout << "El numero es menor." << '\n' << endl;
intentos ++;
cout << "Intentelo de nuevo: ";
cin >> numer;
}

if ( numer < num )
{
cout << "El numero es mayor." << '\n' << endl;
intentos ++;
cout << "Intentelo de nuevo: ";
cin >> numer;
}

if ( numer == num )
{
cout << "\nHa acertado en el intento " << intentos << "." << '\n' << endl;
}

if ( intentos == 10 && numer != num )
{
cout << "\nHa perdido, empiece de nuevo." << '\n' << endl;
}
}

system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.
}[/CODE]

Po ala, listo. Muchas gracias por tu ayuda, de verdad. Ta luego!!!
Snake12 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 15:22   #4
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Algunas cosas del código que yo las haría de otro modo (sigo recordándote que muchas cosas de programación se me han olvidado... ):
Cita:
cout << "Acierte un numero secreto entre el 0 y el 100
El ejercicio pide un número de 3 cifras, luego el número debe ir de 100 a 999 (salvo que se considere que el 14 también es de tres cifras añadiendo un 0 al principio, 014, y en ese caso tendrías que generar el número desde el 0 al 999)
Cita:
if ( numer == num )
{...}
while ( numer != num && intentos < 10 )
{...}
Haces un if y luego, sin importar lo que haya sucedido en ese if, haces un while...

¿Podría colocar el if dentro del bucle? ¿Podría iniciar el bucle pidiendo el número y luego realizar las comprobaciones pertinentes?
Cita:
if ( numer > num )
{....}
if ( numer < num )
{.....}
if ( numer == num )
{....}
Esos tres if quedan muy feos... si tienes tres casos puedes usar case. O también podrías usar if... else if... else...

if ( numer > num )
...
else if ( numer < num )
...
else ( numer == num )
...
Cita:
if ( intentos == 10 && numer != num )
{
cout << "\nHa perdido, empiece de nuevo." << '\n' << endl;
}
Yo creo que este if se podría meter dentro de los if else if ... de antes. Sólo hace falta ordenar de forma conveniente las condiciones...
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 15:25   #5
Coke
Invitado
 
Mensajes: n/a

saludos...

el rand()%100 genera un pseudo aleatorio numero entre 0 y 99, si en vez de eso pones rand()%900, genera uno entre 0 y 899...si a eso lo sumas 100, nos queda un numero entre 100 y 999....

num = 100 + rand() % 900;

bueeeeno lo quito pa que piense un poquito mas....

he quitado el codigo a peticion del amigo kolmo, para que pienses un poquito mas...


Coke.

Última edición por Coke; 17/12/2005 a las 15:39.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 15:28   #6
Coke
Invitado
 
Mensajes: n/a

ya se ma ha adelantao kolmo, como siempre ....

bueno de todas formas hay algunas diferencias.


Coke.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 15:30   #7
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Chacho Coke, no le pongas el código hasta que no quede otro remedio porque de nada sirve el copy&paste...
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 15:31   #8
Coke
Invitado
 
Mensajes: n/a

si es el suyo con unos retoques...el de el ya va bien.

Coke.

Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 16:12   #9
Snake12
Usuario Activo
 
Avatar de Snake12
 
Fecha de ingreso: 07/mar/2003
Mensajes: 118
Snake12 está en el buen camino
jejejeje
Muchas gracias a los dos, al final cambié la idea que fuese de 3 cifras y dejé el ejercicio para que generase un número del 0 al 100 (ahora sé que no es 100, sino 99, pero como yo no sabía utilizar rand creí que hacía hasta el 100).

Con respecto a los if, else if, else...es la falta de práctica, pero en teoría lo sé hacer...envié el jercicio anoche por mail al profesor, así que ya no hay vuelta atrás, pero para la próxima vez se hará más "curioso" o llamémosle optimizado...jejejeje

Gracias de nuevo por vuestras explicaciones y el tiempo dedicado en ayudarme, os estoy muy agradecido. GRACIAS

Ahora os pregunto una cosa; llevo con c++ un mes aproximadamente, me refiero haciendo ejercicios, etc...estos son los que hecho hasta ahora con más dificultad, y la verdad, me cuesta plasmar la idea en el compilador, es decir, transformar la solución en lenguaje informático, vamos, escribir el programa....jejejjee, y no sé si es porque me falta práctica, porque soy duro de mollera...hombre yo pienso que es porque soy programador nobel y así me consuelo, pero vosotros qué opináis...

Bueno, gracias de nuevo y ta luegoo!!!

Última edición por Snake12; 17/12/2005 a las 16:13.
Snake12 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 16:25   #10
Efirenet
Usuario Activo
 
Avatar de Efirenet
 
Fecha de ingreso: 06/dic/2004
Mensajes: 84
Efirenet llegará a ser famoso muy pronto
Hola, cuando tengas unas cuantas "horas de vuelo" más, te acabarán saliendo como churros. No te preocupes por eso, que con práctica se soluciona.

Un saludo y felices fiestas.
Efirenet está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 17/12/2005, 20:00   #11
kolmo7 
Usuario PREMIUM+
 
Avatar de kolmo7
 
Fecha de ingreso: 31/mar/2004
Mensajes: 20.819
kolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatarkolmo7 Cuando busquemos reputación en Wikipedia, saldrá su avatar
Pues pienso lo mismo que Efirenet.

Lo importante es saber qué tiene que hacer el programa, donde deben ir los bucles, los diferentes casos para hacer una cosa u otra,... luego plasmarlo en un lenguaje de programación debe ser relativamente sencillo.

No se si te han enseñado a hacer diagramas con las operaciones que tiene que realizar un programa. Una vez completado en papel lo que debe hacer el programa su paso a un lenguaje de programación (ya sea C++, pascal, Java, ...) es una tarea simple (sólo necesitas conocer cómo se escriben esas sentencias o esos bucles en dicho lenguaje).
__________________
Un saludo.

kolmo7.


[I][B](Socio Nº 10)[/B][/I]
kolmo7 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado

Ir al foro

Temas similares
Tema Autor Foro Resp. Último mensaje
Nueva version SIM-EMU 6.00 para GreenCard 2/GreenCard/SilverCard (DISPONIBLE) simemu TELEFONOS MÓVILES GSM 74 26/08/2006 13:54
Ejercicio C++, averiguar si un numero es multiplo de 11 Snake12 PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc 5 17/12/2005 01:49
Noticias sobre Juegos y Consolas actualizadas Pillus CONSOLAS: JUEGOS - EMULADORES 35 20/09/2005 23:26
Numero secreto pepon123 Dudas GENERALES PHILIPS 2 09/11/2004 00:02
Curso de ripeo de juegos de ps2 chory DivX, VCD, DVD, Rippeo - IMAGEN Digital 0 06/09/2003 14:50


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 12:43.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.