2016-09-16 1 views
0
gedruckt ist

ich auf ein Poker-Programm zu arbeiten, und jeder Spieler die Hand privat zu halten, möchte ich Passwörter zu übernehmen, zum Beispiel so etwas wie:Wie Text zu löschen, nachdem es

 p1name = input("What would player 1 like to be called? ") 
    p1pass = input("Please enter a password to be used to play: ") 
    cardvalu = ["Ace of" , "Two of" , "Three of" , "Four of" , 
       "Five of" , "Six of" , "Seven of" , "Eight of" , 
       "Nine of" , "Jack of" , "Queen of" , "King of"]       #These are the hands that the program will be picking when distributing cards 

    cardhand = ["Spades" , "Diamonds" , "Hearts" , "Clubs"]        #These are the numbers the program will be picking when distributing cards 
def p1hand():                   #Next two lines show the cards for Player 1 
    print(random.choice(cardvalu),random.choice(cardhand)) 
    print(random.choice(cardvalu),random.choice(cardhand)) 

Wenn jedoch der Spieler Ich werde gebeten, sein Passwort einzugeben, und mir wurde klar, dass jemand die Grafik minimieren und sich das Passwort und die Hände aller ansehen kann. Ich würde gerne wissen, wie man eine Textzeile löscht, nachdem sie nach einer bestimmten Zeit gedruckt wurde.

+0

"jemand könnte einfach die Grafik minimieren und auf das Passwort und die Hände aller schauen." Wie soll das funktionieren? Sie benötigen eine bessere Beschreibung dessen, was Sie gerade versuchen. – Evert

+0

Sie können die Zeile mit Leerzeichen überschreiben. Dies hängt jedoch auch vom verwendeten Terminal oder von dem Mechanismus ab, mit dem Sie die Ausgabe für einen Benutzer anzeigen. – Evert

Antwort

1

Für den speziellen Fall, dass eine Eingabe empfangen wird, ohne sie auf dem Bildschirm anzuzeigen, verwenden Sie normalerweise getpass.getpass anstelle von input, so dass die Benutzereingabe nicht an erster Stelle wiedergegeben wird.

Andernfalls müssen Sie den Cursor bewegen (über ANSI-Steuercodes oder the curses module, um das Terminal vollständig zu übernehmen) und dann überschreiben, was auf dem Bildschirm mit Leerzeichen oder ähnlichem angezeigt wurde, was normalerweise ärgerlicher ist.

Verwandte Themen