在匹配 Hangman 的输入后,如何将每个元素或字母表显示为破折号?
How do I display each element or alphabet as dash after it matches the input for Hangman?
我一直在断断续续地编程,但最近我更加活跃并完成了一些基本项目。然而,在过去的 3 周里,我一直被这个特殊问题所困,似乎仍然无法解决。查看了一些代码并尝试了并且只能改进某些部分。下面是我的完整代码。
我遇到的问题是我在标题中提到的问题,我需要将神秘词显示为破折号,当我猜测未知词时,它应该作为唯一的词出现。一个问题是当我猜对单词时,它只显示单个字母并立即重置。
import random
word_list =[
"SAXOPHONE",
"THEREMIN",
"XYLOPHONE",
"TROMBONE",
"RECORDER",
"OCARINA",
"HANG",
"GUITAR",
"PIANO",
"DIDGERIDOO",
"CELLO",
"CLARINET",
"BONGO",
"DRUM",
"FLUTE",
"ERHU",
"DIZI",
"HARMONICA",
"GONG",
"GUZHENG"
]
pick_word = random.choice(word_list)
pick_letter = list(pick_word)
print(pick_letter)
print("Welcome to Hangman Instrumental")
turns = 10
while turns > 0:
# input of players(input to accept both lower and upper case)
player_in = input(str("\nEnter a Character: ")).upper()
# check if input is the same as the pick letter
if player_in in pick_letter:
if player_in in pick_letter:
print(player_in)
elif len(player_in) != 1:
print("Invalid input please try again")
else:
turns -= 1
print("You have ",turns, " turns left")
if turns == 0:
print("You Lose !")
保留玩家所有猜测的列表。当你开始一个新游戏时,将 all_guesses
设置为 []
然后,从控制台集读取字母:
all_guesses.append(player_in)
现在您可以只显示该列表中的秘密单词中的字母:
display_word = ''
for c in pick_word:
if c in all_guesses:
display_word += c
else:
display_word += '-'
然后打印出 display_word
任何你喜欢的。您可以将所有这些组合成一个 Python 表达式:
display_word = ''.join(c if c in all_guesses else '-' for c in pick_word)
它使用了三个您可能还没有见过的想法(if-else 表达式、生成器表达式和 .join()
字符串成员函数)所以如果您觉得它像火星人,那没关系。将其视为您稍后将学到的很酷的东西的先睹为快。
我一直在断断续续地编程,但最近我更加活跃并完成了一些基本项目。然而,在过去的 3 周里,我一直被这个特殊问题所困,似乎仍然无法解决。查看了一些代码并尝试了并且只能改进某些部分。下面是我的完整代码。
我遇到的问题是我在标题中提到的问题,我需要将神秘词显示为破折号,当我猜测未知词时,它应该作为唯一的词出现。一个问题是当我猜对单词时,它只显示单个字母并立即重置。
import random
word_list =[
"SAXOPHONE",
"THEREMIN",
"XYLOPHONE",
"TROMBONE",
"RECORDER",
"OCARINA",
"HANG",
"GUITAR",
"PIANO",
"DIDGERIDOO",
"CELLO",
"CLARINET",
"BONGO",
"DRUM",
"FLUTE",
"ERHU",
"DIZI",
"HARMONICA",
"GONG",
"GUZHENG"
]
pick_word = random.choice(word_list)
pick_letter = list(pick_word)
print(pick_letter)
print("Welcome to Hangman Instrumental")
turns = 10
while turns > 0:
# input of players(input to accept both lower and upper case)
player_in = input(str("\nEnter a Character: ")).upper()
# check if input is the same as the pick letter
if player_in in pick_letter:
if player_in in pick_letter:
print(player_in)
elif len(player_in) != 1:
print("Invalid input please try again")
else:
turns -= 1
print("You have ",turns, " turns left")
if turns == 0:
print("You Lose !")
保留玩家所有猜测的列表。当你开始一个新游戏时,将 all_guesses
设置为 []
然后,从控制台集读取字母:
all_guesses.append(player_in)
现在您可以只显示该列表中的秘密单词中的字母:
display_word = ''
for c in pick_word:
if c in all_guesses:
display_word += c
else:
display_word += '-'
然后打印出 display_word
任何你喜欢的。您可以将所有这些组合成一个 Python 表达式:
display_word = ''.join(c if c in all_guesses else '-' for c in pick_word)
它使用了三个您可能还没有见过的想法(if-else 表达式、生成器表达式和 .join()
字符串成员函数)所以如果您觉得它像火星人,那没关系。将其视为您稍后将学到的很酷的东西的先睹为快。