Python - Necesito ayuda (Ruleta)

 
Vista:

Necesito ayuda (Ruleta)

Publicado por Francisco González Pérez (2 intervenciones) el 28/02/2019 09:52:48
Me funciona. pero no como yo quiero, alguine me puede ayudar, ya que si pongo un numero mayor que 36 o menor que 0, funciona y eso no quiero y tambien si pongo otra palabra que no sea la especifica("apuesta" en este caso) me hace la tirada y quiero queme vuielva a poner lo de "pon apuuesta", gracias
Dejo aqui el código y tambien para descargar



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
rollcount = 0   #variable del numero de tiradas
print("¡Bienvenido a la ruleta!")  #imprime el mensaje
print("Empiezas con un presupuesto de 500€")   #imprime el mensaje
while rollcount < 100:  #mientras el numero de tiradas sea menor que 100
    import random  #se elige al azar
    landon = random.randint(0, 36)
    LOB = []
    presupuesto = 500  #se da un presupuesto de 500€
    valnum = 0  #variable del valor del numero
    valor = 0  #variable del valor
    input("Pulsa ENTER para ver la lista de apuestas")  #imprime el mensaje
    print("La lista de apuestas:\n--------------------")  #imprime el mensaje
    betin = input("Para apostar escribe 'apuesta'--->")  #imprime el mensaje
    if betin == 'apuesta':  #si betin es igual a "apuesta"
      def apuesta():
          global valor  #se declara como variable global el valor
          global valnum  #se declara como variable global el valor
          while(True) : #mientra sea verdad
              valnum = input("¿A que número te gustaría apostar entre el 0 y el 36?: ") #numero al que te gustaria apostar
              if int(valnum) < 36 or int(valnum) > 0: break #si el numero que ponagmos es menor que 36 o menor que 0, funciona
              else:  #si no te da error            
                print("Tu no puedes apostar ese número...")
                print("El archivo ha detectado un error. ¿Por qué hiciste eso?")
          if int(valnum) < 36 or int(valnum) > 0:
                print("Tu elegiste esa apuesta", valnum)
                valor = input("¿Cuanto dinero quieres apostar?: ")
                print("Si ha caido en", valnum,  "tu ganas", int(valor)*36)
                LOB.append('num')
                LOB.append(valnum)
    apuesta()
    def roll():  #aqui es donde gira la ruleta
        print("No va mas")  #imprime el mensaje
        print("Ha pasado por", random.randint(0, 36))  #imprime el mensaje y se coge un numero al azar
        print("Casi cae en", random.randint(0, 36))  #imprime el mensaje y se coge un numero al azar
        global landon  #variable global de
        print("Ha caido en", landon)
    roll()
    def lose():
        global presupuesto
        global valor
        print("Oh no! Has perdido!")
        print("Has perdido", valor, "euros")
        presupuesto -= int(valor)
        print("Ahora tu presupuesto es de", presupuesto)
    def numganador():
        global valor
        global presupuesto
        print("HAS GANADO!")
        print("Enhorabuena!")
        print("Has conseguido", int(valor)*36, "euros!")
        presupuesto += int(valor)*36
        print("Ahora tienes de presupuesto", presupuesto)
    if 'num' in LOB and valnum == landon:
        numwin()
    if 'num' in LOB and valnum != landon:
        lose()
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
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Necesito ayuda (Ruleta)

Publicado por xve (1646 intervenciones) el 28/02/2019 13:32:15
Hola Francisco, este condicional lo tienes mal:
1
if int(valnum) < 36 or int(valnum) > 0:

Ya que por ejemplo 40 es superior a 0 por lo que siempre sera correcto con el OR. Para solucionar el problema tiene que ser AND
1
if int(valnum) < 36 and int(valnum) > 0:
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