string = input("Enter a string:")
character = input ("Enter a character:")
if character in string: #checks string to see if character is in it
print ("Character found!")
else:
print ("Character not found!")
blank = (" _ " * len(string))
print (blank)
我正在制作一个刽子手游戏,我被困在这一部分。
我怎样才能做到这一点,当这个人猜到一封信时,它会取代特定的" _"信应该在哪里?我是否应该使用for循环来完成所有" _" '然后使用if语句?
如果有人能告诉我它会有多棒。
答案 0 :(得分:0)
每次播放器猜到某些内容时,您都可以使用类似以下的方法更新猜测字符串。
def update_guesses(current_guess_string, key_string, character_guessed):
out_string = ""
for i in range(len(current_guess_string)):
if current_guess_string[i] == "_" and key_string[i] == character_guessed):
out_string += character_guessed
else: out_string += current_guess_string[i]
return out_string
答案 1 :(得分:0)
在您的代码的基础上,这里有一组可以让您进入正常工作游戏的更改:
将字符串输入设置为固定大小写,并将空白初始化移至字符串输入后。将它们更改为列表,以便您可以修改 他们根据需要:
# normalize case and convert to a mutable data structure
string = list(input("Enter a string: ").lower())
# the blank list matches the string except it starts all blanks
blank = list("_" * len(string))
获取处理猜测的循环。在这里我停止循环,当字符串列表是一个字符,可能是空白,因为我们将在空白和输入字符串列表之间交换字符:
while len(set(string)) > 1: # when the string is all blanks, stop
确保将用户输入清除为仅一个字符,并将其更改为与字符串输入相同的大小写:
# normalize case on input and make sure to only get 1 character
character = input("Enter a character: ").lower()[0]
在测试字符是否在字符串中后,按位置将字符与空字符串中的字符交换。在循环中执行此操作,以便获得猜测字符的所有实例:
if character in string: # checks string to see if character is in it
print("Character found!")
# find the character in the string and swap it with what's in
# the blank string so we can handle multiple same characters
# correctly
while character in string:
index = string.index(character)
string[index] = blank[index]
blank[index] = character
else:
print("Character not found!")
主循环的最后一步是打印猜测的当前状态:
# print correct guesses and blanks
print(*blank, sep='')