Python - Llamar a una funcion dentro de un if

   
Vista:

Llamar a una funcion dentro de un if

Publicado por Eduardo (7 intervenciones) el 04/11/2015 22:31:19
Hola les muestro la parte del codigo donde estoy complicandome, lo que quiero hacer es que al usuario desde el primer menu si elige la opcion 2 llame a la funcion empezar pero no puedo. De antemano gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
y = 3
while y==3:
    print "Menu: \n\t 1) Alimentar diccionario de palabras \n\t 2) Jugar \n\t 3) Salir"
 
    x = int(raw_input(" "))
    if x==1:
        y=int(raw_input("Selecciona una opcion:\n\t1)\tAgregar\n\t2)\tEliminar\n"))
        if y==1:
            palabras[len(palabras)+1]=raw_input("Introduzca una palabra: ")
            y = 3
        elif y==2:
            print palabras
            clave=int(raw_input("Seleccione un elemento: "))
            del palabras[clave]
            y = 3
    if x==2:
        empezar()
    if x==3:
            break
 
def empezar():
    # Esta funcion devuelve True si el jugador quiere volver a jugar, de lo contrario devuelve False
    print 'Quieres jugar de nuevo? (Si o No)'
    return raw_input().lower().startswith('s')
 
print 'A H O R C A D O'
letraIncorrecta = ""
letraCorrecta = ""
palabraSecreta = buscarPalabraAleat(palabras)
finJuego = False
while True:
    displayBoard(AHORCADO, letraIncorrecta, letraCorrecta, palabraSecreta)
    # El usuairo elije una letra.
    letra = elijeLetra(letraIncorrecta + letraCorrecta)
    if letra in palabraSecreta:
        letraCorrecta = letraCorrecta + letra
        # Se fija si el jugador gano
        letrasEncontradas = True
        for i in range(len(palabraSecreta)):
            if palabraSecreta[i] not in letraCorrecta:
                letrasEncontradas = False
                break
        if letrasEncontradas:
            print ('Si! La palabra secreta es "' + palabraSecreta + '"! Has ganado!')
            finJuego = True
    else:
        letraIncorrecta = letraIncorrecta + letra
        # Comprueba la cantidad de letras que ha ingresado el jugador y si perdió
        if len(letraIncorrecta) == len(AHORCADO) - 1:
            displayBoard(AHORCADO, letraIncorrecta, letraCorrecta, palabraSecreta)
            print ('Se ha quedado sin letras!\nDespues de ' + str(len(letraIncorrecta)) + ' letras erroneas y ' + str(len(letraCorrecta)) + ' letras correctas, la palabra era "' + palabraSecreta + '"')
            finJuego = True
    # Pregunta al jugador si quiere jugar de nuevo
    if finJuego:
        if empezar():
            letraIncorrecta = ""
            letraCorrecta = ""
            finJuego = False
            palabraSecreta = buscarPalabraAleat(palabras)
        else:
            break
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Llamar a una funcion dentro de un if

Publicado por xve (1237 intervenciones) el 05/11/2015 08:39:02
Hola Eduardo, no se muy bien cual es el error que te da, pero prueba a definir la función antes de la llamada... es decir, definela encima del while.

Coméntanos si soluciona tu problema, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Llamar a una funcion dentro de un if

Publicado por Eduardo (7 intervenciones) el 05/11/2015 18:58:20
Hola, no se como hacer eso de ponerlo encima de la llamada
pero el error que me da es este:

Introduzca una palabra: computadora
Menu:
1) Alimentar diccionario de palabras
2) Jugar
3) Salir
2
Traceback (most recent call last):
File "C:\Users\Windows\ahorcado sin graficos.py", line 56, in 0
NameError: name 'empezar' is not defined
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Llamar a una funcion dentro de un if

Publicado por xve (1237 intervenciones) el 05/11/2015 21:14:23
Hola Eduardo, es sencillo, define la función empezar(), antes de la llamada... mueve la definición de la función al inicio de la pagina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar