2017-10-05 1 views
2

j'ai besoin le deuxième utilisateur de ne pas être en mesure de voir l'entrée du premier utilisateur, mais quand il dit le deuxième utilisateur à l'entrée, l'entrée du premier utilisateur se trouve juste en face d'euxComment cacher l'entrée du joueur

score=[0,0] 
print("Welcome to Rock Paper Scissors! The score starts as",score) 
while True: 
    player1=input("Player 1's turn: ") 
    player2=input("Player 2's turn: ") 
    if (player1.lower() in ["rock","r","rick","rok","roc","rck"]): 
     if (player2.lower() in ["scissors","s","scissor"]): 
      score[0]=score[0]+1 
      print("Player 1 wins! The score is now",score) 
     if (player2.lower() in ["rock","r","rick","rok","roc","rck"]): 
      print("It's a tie! The score remains",score) 
     if (player2.lower() in ["paper","p","pap","piper"]): 
      score[1]=score[1]+1 
      print("Player 2 wins! The score is now",score) 
    if (player1.lower() in ["scissors","s","scissor"]): 
     if (player2.lower() in ["scissors","s","scissor"]): 
      score[0]=score[0]+0 
      print("It's a tie! The score remains",score) 
     if (player2.lower() in ["rock","r","rick","rok","roc","rck"]): 
      score[1]=score[1]+1 
      print("Player 2 wins! The score is now",score) 
     if (player2.lower() in ["paper","p","pap","piper"]): 
      score[0]=score[0]+1 
      print("Player 1 wins! The score is now",score) 
    if (player1.lower() in ["paper","p","pap","piper"]): 
     if (player2.lower() in ["scissors","s","scissor"]): 
      score[1]=score[1]+1 
      print("Player 2 wins! The score is now",score) 
     if (player2.lower() in ["rock","r","rick","rok","roc","rck"]): 
      score[0]=score[0]+1 
      print("Player 1 wins! The score is now",score) 
     if (player2.lower() in ["paper","p","pap","piper"]): 
      score[0]=score[0]+0 
      print("It's a tie! The score remains",score) 
    print("N E X T G A M E") 

la sortie est:

Player 1's turn: r 
Player 2's turn: 

maintenant, le joueur 2 serait tout simplement d'utiliser du papier et de gagner le jeu, donc je dois cacher ce que le joueur 1 entré en quelque sorte (j'utilise Python 3.6.1)

+2

Vous pouvez essayer 'getpass' dans la bibliothèque standard. – cdarke

Répondre

0

Vous peut utiliser getpass h Pour cacher l'entrée du joueur 1 et utiliser input() pour l'entrée du 2nd joueur.

import getpass 

player1 = getpass.getpass(prompt = "Player 1's turn:") 
player2 = input("Player 2's turn") 
+0

quand j'ai utilisé le getpass, rien ne s'est passé. il était juste vide, pas de "tour du joueur 1" ou quoi que ce soit apparaissait –

+0

'Tour du joueur 1: ······· Le tour du joueur 2: random' C'est la sortie que vous obtenez quand vous l'utilisez, décrivez-en plus. à propos de votre problème. – bhansa

+0

https://imgur.com/XEfyUwT non "Tour du joueur 1:" –

0

Vous pouvez essayer d'effacer tout le texte de la console avant de demander au lecteur 2 de l'entrer.

import os 
player1=input("Player 1's turn: ") 
os.system('cls') 
player2 = input("Player 2's turn: ") 

Notez que cette solution ne fonctionnerait pas si vous utilisez IDLE sous Windows, car os.system() n'interagit pas avec la coquille IDLE (plus de détails dans this Stackoverflow answer).

Pour cela, votre meilleur pari semble être d'imprimer beaucoup de lignes vides. Vous pouvez créer une fonction qui le fait, comme celui-ci (à partir du lien ci-dessus):

def cls(): print "\n" * 100 
+0

Il n'a pas effacé l'invite lorsqu'il a utilisé cette méthode –

+0

Eh bien, il demande au premier utilisateur, puis quand ils ont entré l'entrée, il efface l'écran. C'est exactement comme ça que ça a fonctionné pour moi. Qu'est-ce que vous obtenez? – Antimony

+0

https://imgur.com/rzgFN1F –

0

Vous pouvez utiliser un tas de lignes d'impression() pour obtenir le dépasser.

player1move=input() 
print("\n"*100) 
player2move=input() 
print("\n"*100) 
#calculate who won 
#print result