2016-09-17 220 views
-1

我想写一个基本的Hang子手游戏,并且每当我尝试执行它时,都会得到标题中提到的相同错误。我已经仔细研究了我的代码,并且在解决了一些我注意到的问题的同时,我仍然遇到了同样的错误。任何帮助?谢谢。扫描三引号字符串文字时Python - EOF

import random 
HANGMANPICS = [''' 

+---+ 
| | 
    | 
    | 
    | 
    | 
=========''', ''' 

+---+ 
| | 
o | 
    | 
    | 
    | 
=========''', ''' 

+---+ 
| | 
o | 
| | 
    | 
    | 
=========''', ''' 

+---+ 
| | 
o | 
/|\ | 
    | 
    | 
=========''', ''' 

+---+ 
| | 
o | 
/|\ | 
/ | 
    | 
=========''', ''' 

+---+ 
| | 
o | 
/|\ | 
/\ | 
    | 
=========''', ''' 

话=“蚁狒狒獾蝙蝠熊狸骆驼猫蛤眼镜蛇美洲狮狼乌鸦鹿狗驴鸭老鹰雪貂狐青蛙羊鹅鹰狮蜥骆驼摩尔猴驼鹿鼠标骡子蝾螈水獭猫头鹰熊猫鹦鹉鸽蟒兔RAM老鼠乌鸦犀牛三文鱼鲨鱼密封羊臭鼬懒蛇蜘蛛鹳天鹅虎蟾蜍鳟鱼火鸡龟黄鼠狼鲸狼袋熊斑马” .split()

def getRandomWord(wordList): 

    wordIndex = random.randint(0, len(wordList) - 1) 
    return wordList[wordIndex] 

def displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord): 
    print(HANGMANPICS[len(missedLetters)]) 
    print() 

    print('Missed letters:', end=' ') 
    for letter in missedLetters: 
     print(letter, end=' ') 
    print() 

    blanks = '_' * len(secretWord) 

    for i in range(len(secretWord)): 
     if secretWord[i] in correctLetters: 
      blanks = blanks[:i] + secretWord[i] + blanks[i+1:] 

    for letter in blanks: 
     print(letter, end=' ') 
    print() 

def getGuess(alreadyGuessed): 

    while True: 
     print('Guess a letter.') 
     guess = input() 
     guess = guess.lower() 
     if len(guess) != 1: 
     print('Please enter a single letter.') 
     elif guess in alreadyGuessed: 
     print('You have already guessed that letter. Choose again.') 
     elif guess not in 'abcdefghijklmnopqrstuvwxyz': 
     print('Please enter a LETTER.') 
     else: 
     return guess 

def playAgain(): 

    print('Do you want to play again? (yes or no)') 
    return input().1ower().startswith('y') 


    print('H A N G M A N') 
    missedLetters = '' 
    correctLetters = '' 
    secretWord = getRandomWord(words) 
    gameIsDone = False 

    while True: 
     displayBoard(-HANGMANPICS, missedLetters, correctLetters, secretWord) 


    guess = getGuess(missedLetters + correctLetters) 

    if guess in secretWord: 
    correctLetters = correctLetters + guess 


    foundAllLetters = True 
    for i in range(len(secretWord)): 
     if secretWord[i] not in correctLetters: 
      foundAllLetters = False 
      break 
    if foundAllLetters: 
     print('Yes! The secret word is "' + secretWord + '"! You have won!') 
     gameIsDone = True 
    else: 
    missedLetters = missedLetters + guess 


    if len(missedLetters) == len(HANGMANPICS) - 1: 
      displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord) 
      print('You have run out of guesses!\nAfter ' + str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters)) + ' correct guesses, the word was "' + secretWord + '"') 
      gameIsDone = True 


if gameIsDOne: 
    if playAgain(): 
     missedLetters = '' 
     correctLetters = '' 
     gameisDone = False 
     secretWord = getRandomWord(words) 
else: 
    break 
+0

你的代码是因为压痕的不理解,你可以添加适当的缩进代码? – Jeril

回答

0

您还没有结束HANGMANPICS名单 - 你的代码出现be

          #\/ starts a new list entry which never ends 
HANGMANPICS = ['''first''', '''second''', ''' 
words = 'ant baboon badger' .split() 

和它需要

         # \/ list ends 
HANGMANPICS = ['''first''', '''second'''] 
words = 'ant baboon badger'.split() 

         #^ and incidentally, no space here