对于python3中的随机化列表,如何让列表接受小写字母来代替Hangman中的大写字母?

2024-07-05 12:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在四处寻找,看看能不能找到一些有用的东西,但没有一个地方能回答我所寻找的。我有一个刽子手游戏,我正在做的最后一个项目在我的一个类,我需要做的是,如果一个单词有一个大写字母,你可以为它输入一个小写字母。这是密码。在

import random
import urllib.request

wp = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content- 
type=text/plain"
response = urllib.request.urlopen(wp)
long_txt = response.read().decode()
words = long_txt.splitlines()

###########
# Methods #
###########
def Run():

  dashes1 = "-" * len(word) 
  dashes2 = "-" * len(word2)
  used_letter = []
  dashes = dashes1 + " " + dashes2

  #dashes ="-" * len(secretWord)
  guessesLeft = 6


  while guessesLeft > -1 and not dashes == secretWord:

    print(used_letter)
    print(dashes)
    print (str(guessesLeft))



    guess = input("Guess:")
    used_letter.append(guess)


    if len(guess) != 1:
      print ("Your guess must have exactly one character!")

    elif guess in secretWord:
      print ("That letter is in the secret word!")
      dashes = updateDashes(secretWord, dashes, guess)


    else:
      print ("That letter is not in the secret word!")
      guessesLeft -= 1

  if guessesLeft < 0:
    print ("You lose. The word was: " + str(secretWord))
    print(dashes)

  else:
    print ("Congrats! You win! The word was: " + str(secretWord))
    print(dashes)

 def updateDashes(secret, cur_dash, rec_guess):
  result = ""

  for i in range(len(secret)):
    if secret[i] == rec_guess:
      result = result + rec_guess    

    else:

      result = result + cur_dash[i]

  return result

########
# Main #
########
word = random.choice(words)
word2 = random.choice(words)
#print(word)
#print(word2)
secretWord = word + " " + word2 # can comment out the + word2 to do one 
word or add more above to create and combine more words will have to adjust 
abouve in Run()

splitw = ([secretWord[i:i+1] for i in range(0, len(secretWord), 1)])

print (splitw)
Run()

任何一点帮助都是感激的。我正在使用的网站有一堆单词,这些单词都是随机生成的。有些字母是大写的,我需要弄清楚如何让字母的输入,比如大写字母a,接受小写字母a并对其进行计数。在


Tags: insecretlenrandomresult单词wordwords
3条回答

我只想换句话:

while guessesLeft > -1 and not dashes == secretWord:

收件人:

^{pr2}$

通过这种方式,您总是将用户输入的小写表示与您的secretWord的小写表示进行比较。因为这是你的游戏的主循环,你想在用户的猜测与你的单词匹配时,不管大小写,你都想打破这个循环。然后在以后的代码中,您仍然会检查他们是否还有任何猜测,并像以前一样打印出他们的答案和密语。在

我想不需要其他的改变。在

你可以在你把所有的东西都转换成小写之后再进行比较。 e、 你可以的

secretWord = word.lower() + " " + word2.lower() # that should make your secret all lowercase

对于输入,您应该执行相同的操作:

^{pr2}$

在那之后,它是大写还是小写就不重要了。如果字母是正确的,它应该总是匹配的。 希望有帮助

只需检查小写:

[...]
elif guess.lower() in secretWord.lower():
[...]

等等。在

相关问题 更多 >