2016-03-22 10 views
-1

2 OYUNCULAR için bir taş, kağıt, makas oyunu oluşturuyorum. Ancak, ilk oyuncu kaya, kağıt veya makas girdiğinde, girdilerinin kaybolmasını istiyorum, o zaman ikinci oyuncu daha sonra onlarınkini girebilir. Diğerlerinin girişlerini görmelerini istemiyorum. Bu Python 3.5.0'da mümkün mü? herhangi bir yardım çok takdir edilecektir! teşekkürler! Tüm ekranı temizlemek istemiyorum, sadece bir satır!Girdikten sonra giriş hattının kaybolması için herhangi bir yol var mı? Python

+0

Herhalde kullanmak 'sys.stdout.write' olacaktır. Gerçek bir parola isteminde olduğu gibi * kullanıcı tipleri - ile değiştirilmesini istiyorsanız, linux ve pencereler arasında göz önüne alınması gereken farklılıklar vardır (Ben olmadan girişi değerlendirmek için basit bir yol bulamadım) tuşuna basmak - sadece aşırı görünen pygame ithal ederek. Pencerelerde daha kolay. Getpass bu durumda en basit çapraz platform çözümü olabilir. Tam gereksinimleriniz nelerdir? – jDo

cevap

1

Normalde parola girmek için kullanılan getpass'u kullanabilirsiniz, böylece kullanıcının girişi terminalde yazdırılmaz.

Bu, yorumlayıcıda bunu çalıştırmanın bir örneğidir, komut istemine girdiğim 'Kaya' metni gösterilmemiştir, ancak 'seçim' değişkeninde kullanılabilir.

>>> import getpass 
>>> choice = getpass.getpass("Rock/Paper/Scissors:") 
Rock/Paper/Scissors: 
>>> choice 
'Rock' 
>>> 

gibi bir şey olurdu, böylece kullanıcı geçerli seçeneklerden biri girmişti kontrol bir döngüsü koymak isterdim:

import getpass 

valid_options = ["Rock", "Paper", "Scissors"] 
valid_choice = False 
while (not valid_choice): 
    choice = getpass.getpass("Rock/Paper/Scissors:") 
    if (choice in valid_options): 
     valid_choice = True 
    else: 
     print("Invalid option. Please try again") 
+0

Bunu koduma eklemeye nasıl başlarım, nasıl bir örnek verdiğinize, giriş, rock, kağıt veya makasla ve sonra işlevinizle söyleyin? teşekkürler! –

+0

Kullanıcının isteğini almanın bir örneğini ekledim ve kontrol etmek geçerli seçeneklerden biri. –

+0

Bunu girdim, ancak şu hatayı aldım: –

0

Sen bir kaçış kullanabilirsiniz dizisi: girdi o yazıldığında ancak kullanıcı presler girdikten sonra kaybolur olarak görünür olmasını izin verilmesi halinde

valid = ("rock", "paper", "scissors") 
choice = input("What is your choice? ").lower() 
while choice not in valid: 
    print("\033[1A\033[K", end="") 
    choice = input("Invalid choice. Try again: ").lower() 
print("\033[1A\033[K", end="") 
İlgili konular