Python - Mi primer juego "Simple"

 
Vista:
sin imagen de perfil

Mi primer juego "Simple"

Publicado por Fran (2 intervenciones) el 09/10/2015 02:53:27
Buenas, quería preguntar que sobra de mi código.
Soy nuevo en programación, llevo 2 semanas estudiando y este es el primer trabajo.
Algo que mejorar para este novato? Gracias de antemano.

Lo que pide es encontrar un número del 1 al 100 y si ganas que sea *10. Si introduces un número mayor o inferior de 1 a 100 o 1 a 1000 en su caso, saltara un error y también hace preguntar si quieres seguir jugando o no.

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import random
 
# randrange(100) para evitar que salga el número 0
secret = random.randrange(100)+1
sw = 1
ganador = 0
intentos = 1
ganadas = 0
jugadas = 0
 
print (u'Bienvenido a encuentra el número oculto')
print (u'Normas: Debes encontrar el numero oculto en una cantidad de intentos ya estipulada')
a = int(raw_input(u'Introduce un número del 1 al 100'))
#Bucle para saber si el valor introducido es mayor o menor al pedido.
 
while a > 100 or a < 1:
    a = int(raw_input(u"Valor fuera del límite, indica un valor dentro de este"))
 
 
while sw != 5:
    #El bucle superior es el de azar hasta 1000 mientras el inferior es el normal que se utilizará siempre
    while sw != 5:
        if a != secret:
            if a > secret:
                a = int(raw_input(u"El número secreto es menor al introducido, indica un valor inferior"))
            else:
                a = int(raw_input(u"El número secreto es mayor al introducido, indica un valor superior"))
            sw = sw + 1
            if a == secret:
                ganador = 1
                ganadas = ganadas + 1
                sw = 5
        else:
            print(u"Valor encontrado, enhorabuena")
            sw = 5
            ganadas = ganadas + 1
            ganador = 1
        intentos = intentos + 1
 
 
    #Si la persona ha ganado el switch se pondra en True"1" y sino seguira en False"0"
    if ganador == 1:
        print(u"Enhorabuena, has ganado la partida y solo has necesitado %d intentos") %(intentos)
    else:
        print(u"GAME OVER, número no encontrado.")
        print(u"El número oculto era %d") %(secret)
    jugadas = jugadas + 1
    newgame = str(raw_input(u"Quieres jugar una nueva partida (s/n)?"))
    #Bucle para que no se salga si no indica "S/s o n/n" para seguir jugando
 
 
    while  newgame != 's' and newgame != 'S' and newgame != 'n' and newgame != 'N':
        newgame = str(raw_input(u"Error, deseas seguir jugando? (s/n)"))
 
 
    #Pedimos si quiere jugar una nueva partida o no
    if newgame == 's' or newgame == 'S':
        #Depende si ganó la anterior o no se aplicará un aumento de dificultad y se reiniciarán todos los contadores correspondientes.
        if ganador == 1:
            sw = -1
            secret = random.randrange(100) * 10 + 1
            a = int(raw_input(u"Introduce un valor del 1 al 1000"))
 
            #Bucle con el siguiente nivel de dificultad
            while a > 1000 or a < 1:
                a = int(raw_input(u"Valor fuera del límite, indica un valor dentro de este."))
        else:
            sw = 1
            secret = random.randrange(100)+1
            a = int(raw_input(u"Introduce un valor del 1 al 100"))
 
            #Bucle para volver al principio
            while a > 100 or a < 1:
                a = int(raw_input(u"Valor fuera del límite, indica un valor dentro de este"))
 
        intentos = 1
        ganador = 0
    else:
        print (u"Partidas jugadas %d, de las cuales ganadas %d.") %(jugadas, ganadas)
        sw = 5
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
sin imagen de perfil

Mi primer juego "Simple"

Publicado por 12-trunks-12 (37 intervenciones) el 09/10/2015 20:20:02
Bueno lo primero es poner a la variable "sw" un nombre que sea más reconocible. La segunda es que viendo que tienes que repetir el proceso del bucle de 1 a 100 (al principio y después si pierde y quiere seguir jugando) podrías crear una función que sea ese bucle y no tener que repetir el código 2 veces.
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
sin imagen de perfil

Mi primer juego "Simple"

Publicado por Fran (2 intervenciones) el 09/10/2015 22:28:28
Muchas gracias, no sabia lo que eran funciones hasta hace muy poquito y no me fio mucho aun! ^^
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