Foros del Web » Programando para Internet » Python »

Duda sobre un juego sencillo con sentencias condicionales en Python

Estas en el tema de Duda sobre un juego sencillo con sentencias condicionales en Python en el foro de Python en Foros del Web. Hola a todos, mi nombre es andres morales, llevo mucho tiempo viendo el foro pero es la primera ves que posteo una pregunta, hace unos ...
  #1 (permalink)  
Antiguo 07/05/2012, 02:23
 
Fecha de Ingreso: mayo-2012
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Duda sobre un juego sencillo con sentencias condicionales en Python

Hola a todos, mi nombre es andres morales, llevo mucho tiempo viendo el foro pero es la primera ves que posteo una pregunta, hace unos dias me decidi a estudiar Python, estoy leyendo un manual que se llama Python para todos, hasta el momento voy bien, me puse a crear un pequenio juego usando sentencias condicionales if con un ciclo
el juego practicamente lo que hace es generar un valor aleatorio, guardarlo en una variable, luego pedirle al usuario que escriba un numero y comparar el numero generado aleatoriamente con el numero que tecleo el usuario, si los valores son iguales el juego se acaba, si el valor del usuario es mayor al aleatorio muestra un mensaje que debemos escribir un numero mas chico o al reves... el numero de intentos es de 5, se supone que cuando los intentos se agotan debe mostrar un mensaje que diga tus intentos se terminaron y si lo hace, el problema es que suponiendo que ya hemos intentado 4 veces , y al intento numero 5 le atinamos , me muestra el mensaje "PERDISTE SE TE ACABARON TUS INTENTOS" , pero tambien me muestra "GANASTE ADIVINASTE EL NUMERO ALEATORIO"

como puedo hacer para que no pase esto? osea que si en el intento numero 5 adivinamos el numero no me diga que perdi ...

espero que me entiendan mi duda y alguien pueda orientarme.. acontinuacion les pongo el codigo, muchas gracias!!!!

Código:
import random

    azar=int(random.randrange(1,51))
    intentos=0
    print "="*80
    print "El juego consiste en escribir un numero al azar (entero) y tratar de adivinar el numero aleatorio en menos de 5 intentos"
    print "="*80
    while True:
        intentos=intentos+1
        num=int(raw_input("Escribe tu intento: \n>"))
        if intentos<5:
            print "Te quedan ", 5-intentos , "intentos"
        if intentos==5:
            print "PERDISTE SE TE ACABARON TUS INTENTOS"
            break
        if num==azar:
            print "GANASTE ADIVINASTE EL NUMERO ALEATORIO!!!"
            print "Terminaste el juego con: ", intentos , "intentos"
            break
        if num<azar:
            print "Escribe un numero mayor"
        if num>azar:
            print "Escribe un numero menor"
  #2 (permalink)  
Antiguo 07/05/2012, 07:54
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre un juego sencillo con sentencias condicionales en Python

En primer lugar, si el programa debe elegir en cuál IF entra dependiendo de los otros, deberías usar if-elif-else en vez de varios IF separados. En tu código, cada bloque se ejecutará todas las veces, por lo que es lógico que si varias condiciones se cumplen, te aparezcan varios mensajes.


Saludos.
  #3 (permalink)  
Antiguo 07/05/2012, 16:23
 
Fecha de Ingreso: mayo-2012
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Duda sobre un juego sencillo con sentencias condicionales en Python

Orale brother, muchas gracias, pues lo termine haciendo casi igual solo le cambie el IF que tenia para mostrar el mensaje de que se le terminaron los intentos, por un elif :) muchas gracias!!!
Código:
import random

azar=int(random.randrange(1,51))
intentos=0
print "="*80
print "El juego consiste en escribir un numero al azar (entero) y tratar de adivinar el numero aleatorio en menos de 5 intentos"
print "="*80
print azar
while True:
    intentos=intentos+1
    num=int(raw_input("Escribe tu intento: \n>"))
    if intentos<5:
        print "Te quedan ", 5-intentos , "intentos"
    if num==azar:
        print "GANASTE ADIVINASTE EL NUMERO ALEATORIO!!!"
        print "Terminaste el juego con: ", intentos , "intentos"
        break
    elif intentos==5:
        print "PERDISTE SE TE ACABARON TUS INTENTOS"
        break
    if num<azar:
        print "Escribe un numero mayor"
    if num>azar:
        print "Escribe un numero menor"
  #4 (permalink)  
Antiguo 07/05/2012, 16:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 6
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Duda sobre un juego sencillo con sentencias condicionales en Python

hice pruebas con este codigo
Código Python:
Ver original
  1. import random
  2.  
  3. azar=int(random.randrange(1,51))
  4. intentos=0
  5. print "="*80
  6. print "El juego consiste en escribir un numero al azar (entero) y tratar de adivinar el numero aleatorio en menos de 5 intentos"
  7. print "="*80
  8. print azar
  9. while True:
  10.     intentos=intentos+1
  11.     num=int(raw_input("Escribe tu intento: \n>"))
  12.     if intentos<5:
  13.         print "Te quedan ", 5-intentos , "intentos"
  14.     if num==azar:
  15.         print "GANASTE ADIVINASTE EL NUMERO ALEATORIO!!!"
  16.         print "Terminaste el juego con: ", intentos , "intentos"
  17.         break
  18.     elif intentos==5:
  19.         print "PERDISTE SE TE ACABARON TUS INTENTOS"
  20.         break
  21.     elif num<azar:
  22.         print "Escribe un numero mayor"
  23.     elif num>azar:
  24.         print "Escribe un numero menor"

y tambien funciono bien

Etiquetas: condicionales, gui, juego, sencillo, sentencias, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.