Python - Como puedo hacer que al pedir que el usuario pulse [Enter] no se pueda escribir a continuación?

 
Vista:
sin imagen de perfil

Como puedo hacer que al pedir que el usuario pulse [Enter] no se pueda escribir a continuación?

Publicado por Francisco (2 intervenciones) el 27/05/2018 06:52:46
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#Librerias
from random import choice
import os
 
#titulo
print("\n   		<<Piedra, Papel o Tijera!>>")
 
#Inicializacion
p_u = 0     #Puntos usuario
p_p = 0     #Puntos programa
ronda_actual = 1
cantidad_rondas = 3
opciones = ['Piedra','Papel','Tijera']
gana_usuario = False
 
#0=Empate
#1=Gana usuario
#2=Gana programa
def Quien_gano(opcion):
    if opcion == 0:
        print("~~~Hubo un empate~~~")
    elif opcion == 1:
        print("~~~Has ganado esta ronda!~~~")
    else:
        print("~~~El programa gana esta ronda~~~")
 
def Mostrar_puntos():
 
    print("╔═══════════════╦═══════════════╗")
    print("║Programa       ║Usuario        ║")
    print("║   "+str(p_p)+"           ║   "+str(p_u)+"           ║")
    print("╚═══════════════╩═══════════════╝")
 
 
#Inicia el Juego!
while ronda_actual < cantidad_rondas + 1:
 
    #Comprobar si alguien ya gano
    if p_u + p_p == 3 or (p_u == 2 and p_p == 0) or (p_p == 2 and p_u == 0):
        if p_u > p_p:
            gana_usuario = True
            break
        else:
            gana_usuario = False
            break
 
    print("------------------------------------------------------------\nRonda n°"+str(ronda_actual))
 
    #Pedir al usuario que elija "1" de las "3" opciones
    usuario_elije = input("-¿Piedra, papel o tijera?\n---->")
    print("_Elejiste: "+str(usuario_elije)+"_")
 
    #Hacer que el programa elija "1" entre las "3" "opciones" de la variable del mismo nombre
    programa_elije = choice(opciones)
    print("\n<<Programa elije --- "+str(programa_elije)+" --- >>\n")
 
    #Se define cuando hay empate
    if (usuario_elije == 'Piedra' or usuario_elije == 'piedra') and programa_elije == 'Piedra':
        Quien_gano(0)
    elif (usuario_elije == 'Papel' or usuario_elije == 'papel') and programa_elije == 'Papel':
        Quien_gano(0)
    elif (usuario_elije == 'Tijera' or usuario_elije == 'tijera') and programa_elije == 'Tijera':
        Quien_gano(0)
 
    #Cuando gana usuario o programa
    elif (usuario_elije == 'Piedra' or usuario_elije == 'piedra') and programa_elije == 'Papel':
        Quien_gano(2)
        p_p += 1
        ronda_actual += 1
    elif (usuario_elije == 'Piedra' or usuario_elije == 'piedra') and programa_elije == 'Tijera':
        Quien_gano(1)
        p_u += 1
        ronda_actual += 1
    elif (usuario_elije == 'Papel' or usuario_elije == 'papel') and programa_elije == 'Piedra':
        Quien_gano(1)
        p_u += 1
        ronda_actual += 1
    elif (usuario_elije == 'Papel' or usuario_elije == 'papel') and programa_elije == 'Tijera':
        Quien_gano(2)
        p_p += 1
        ronda_actual += 1
    elif (usuario_elije == 'Tijera' or usuario_elije == 'tijera') and programa_elije == 'Piedra':
        Quien_gano(2)
        p_p += 1
        ronda_actual += 1
    elif (usuario_elije == 'Tijera' or usuario_elije == 'tijera') and programa_elije == 'Papel':
        Quien_gano(1)
        p_u += 1
        ronda_actual += 1
 
    Mostrar_puntos()
 
os.system('cls')
Mostrar_puntos()
 
if gana_usuario == True:
    print("Felicidades! Has ganado el Juego!!!")
else:
    print("El programa ganó el Juego, Suerte para la proxima :D")
 
#Justo aquí!!
input("Pulsa la tecla [Enter] para salir")

Solo quiero que cuando el juego haya terminado solo quede pulsar Enter para salir de la consola, sin que haya algún tipo de interactividad entre el Usuario y la Consola.
Si tienes alguna recomendacion/correccion sobre el codigo, no dudes en decirmela.

Gracias de antemano!!
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
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como puedo hacer que al pedir que el usuario pulse [Enter] no se pueda escribir a continuación?

Publicado por tincopasan (1082 intervenciones) el 30/05/2018 04:34:03
supongo que usas windows y que lo ejecutas desde linea de comandos y no desde un ide.
si es así, podrías usar una función:
1
2
3
4
5
6
7
8
def Salir():
    import sys
    import msvcrt
    while True:
        print("Presione enter para salir ")
        m= str(msvcrt.getch(),'utf -8')
        if m == "\r":
            sys.exit()

y...
1
2
3
#Justo aquí!!
#input("Pulsa la tecla [Enter] para salir")
Salir()

es una posibilidad, cualquier cosa consulta o comentas.
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

Como puedo hacer que al pedir que el usuario pulse [Enter] no se pueda escribir a continuación?

Publicado por Francisco (2 intervenciones) el 01/06/2018 22:27:36
Muchas gracias, el codigo funciono a la perfeccion!! Muchas gracias por tu ayuda :)
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