我一直在用work测试来测试它,并将每个字母转换为大写,以便注册。我遇到麻烦的部分是:
if Counter(guesses) == Counter(testw):
winner = 1
break我所要做的就是跳出while循环,也许还会打印一条消息。我试着用计数器做一些我在网上看到的事情,但它不起作用,这就是为什么那个计数器的东西在那里(即使我不是真的理解它)。
import random
import os
import time
from collections import Counter
#someWords = '''apple banana mango strawberry
#orange grape pineapple apricot lemon coconut watermelon
#cherry papaya berry peach lychee muskmelon'''
#someWords = someWords.split(' ')
#word = random.choice(someWords)
testw = "TEST"
point = 0
print("Welcome to Hangman!")
winner = 0
guesses = ''
wrong = ''
total = 0
while point < 6:
if point == 0:
print("-----I\n I\n I\n I\n========")
if point == 1:
print("-----I\n O I\n I\n I\n========")
if point == 2:
print("-----I\n O I\n | I\n I\n========")
if point == 3:
print("-----I\n O I\n /| I\n I\n========")
if point == 4:
print("-----I\n O I\n /|\ I\n I\n========")
if point == 5:
print("-----I\n O I\n /|\ I\n \ I\n========")
if point == 6:
print("-----I\n O I\n /|\ I\n /\ I\n========")
for char in testw:
if char in guesses:
print(char, end = ' ')
else:
print('_ ', end = '')
print("\n")
print('You have ', 6-point, ' guesses left!')
guess = input("Guess a letter: ")
guess = str.upper(guess)
guesses += guess
if guess not in testw:
print("Wrong!")
point += 1
guess += wrong
if guess in testw:
print("Correct!")
guesses += guess
total += 1
if Counter(guesses) == Counter(testw):
winner = 1
break
#end
if winner == 1:
print("Winner")
else:
print("You Lose")发布于 2020-02-24 09:59:55
这里有两个问题导致您的wincheck总是失败。
将来,当您遇到需要根据某个条件退出循环的错误时,使用print()很方便,因为检查很可能会失败。
在检查字母是否正确之前,您已经将猜测出的字母添加到用于检查胜利的变量中。
guess = str.upper(guess)
guesses += guess解决此问题时,如果找到多个字母,则不会存储这些字母。您只需向guesses添加一个实例
if guess in testw:
print("Correct!")
for letter in testw:
if letter.upper() == guess.upper():
guesses += guess上述代码将解决此问题,方法是遍历正确单词中的每个字母,并在每次找到该字母时将其添加到guesses字符串中。
总而言之,下面的代码解决了这两个问题。
import random
import os
import time
from collections import Counter
#someWords = '''apple banana mango strawberry
#orange grape pineapple apricot lemon coconut watermelon
#cherry papaya berry peach lychee muskmelon'''
#someWords = someWords.split(' ')
#word = random.choice(someWords)
testw = "TEST"
point = 0
print("Welcome to Hangman!")
winner = 0
guesses = ''
wrong = ''
total = 0
while point < 6:
if point == 0:
print("-----I\n I\n I\n I\n========")
if point == 1:
print("-----I\n O I\n I\n I\n========")
if point == 2:
print("-----I\n O I\n | I\n I\n========")
if point == 3:
print("-----I\n O I\n /| I\n I\n========")
if point == 4:
print("-----I\n O I\n /|\ I\n I\n========")
if point == 5:
print("-----I\n O I\n /|\ I\n \ I\n========")
if point == 6:
print("-----I\n O I\n /|\ I\n /\ I\n========")
for char in testw:
if char in guesses:
print(char, end = ' ')
else:
print('_ ', end = '')
print("\n")
print('You have ', 6-point, ' guesses left!')
guess = input("Guess a letter: ")
guess = str.upper(guess)
if guess not in testw:
print("Wrong!")
point += 1
guess += wrong
if guess in testw:
print("Correct!")
for letter in testw:
if letter.upper() == guess.upper():
guesses += guess
total += 1
if Counter(guesses) == Counter(testw):
winner = 1
break
#end
if winner == 1:
print("Winner")
else:
print("You Lose")https://stackoverflow.com/questions/60368594
复制相似问题