Em primeiro lugar, por favor, perdoe meu inglês. É minha segunda língua.
Estou tentando terminar de escrever um jogo da forca.
Este é meu código aproximado:
WORDS_LIST = ["I do not know"]
answer = list(random.choice(WORDS_LIST))
for char in answer:
if (char.isalpha()):
list1.append(char)
else:
list1.append("")
for char in list1:
if char == "":
guess_box.append(" ")
else:
guess_box.append("_")
print(' '.join(guess))
player_choice = input("\nguess a letter: ")
for item in range(0, len(ANSWER)):
if ANSWER[item] == player_choice:
guess_box[item] = player_choice
elif ANSWER[item][0] == player_choice[0]:
guess_box[item] = player_choice.upper()
Como você pode ver, imprima o padrão
_ _ _ _ _ _ _ _ _ _
Tenho um problema com a primeira letra maiúscula. Não tenho certeza de como devo comparar a entrada do usuário com uma única letra maiúscula em uma lista. Por favor, me ajude a descobrir isso, alguém?
Exemplo de saída:
I do not know
Conforme os comentários mandam vocês podem usar char.lower()
mas vi algumas outras coisas que podem te ajudar então aqui vão mais algumas dicas e petiscos.
Primeiro, você pode criar suas listas usando a compreensão de lista, pois é mais curta e bastante fácil de ler.
import random
WORDS_LIST = ["I do not know"]
# A list of characters
answer = list(random.choice(WORDS_LIST))
# A set of all the letters (converted to lowercase) that are contained
# in the answer. sets are significantly faster to search through.
letters = {char.lower() for char in answer if char.isalpha()}
guessed_letters = set()
# Note the syntax used above and here. This is called list
# comprehension.
# This is the same as:
# guess_box = []
# for char in answer:
# if char.isalpha():
# guess_box.append("_")
# else:
# guess_box.append(char) # Just use the space.
guess_box = ["_" if char.isalpha() else char for char in answer]
Então você pode lidar com sua lógica de entrada:
print(' '.join(guess_box))
player_choice = input("\nguess a letter: ")
while player_choice:
print(f"You chose: {player_choice}")
# Convert user input to lower case
player_choice = player_choice.lower()
# If this letter was guessed before:
if player_choice in guessed_letters:
print("You guessed this letter already.")
else:
guessed_letters.add(player_choice)
# Check if this choice is in our word
if player_choice in letters:
# If we have this letter then change
# the guess_box
for index, val in enumerate(answer):
# Of the user input
if val.lower() == player_choice:
guess_box[index] = val
else: # The letter is wrong
print("That letter didn't fit")
print(' '.join(guess_box))
player_choice = input("\nguess a letter: ")
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras