さて、Python で絞首刑執行人ゲームを作成する宿題に取り組んでいます。これまでのところ、この厄介なエラーが発生するまではうまくいっていました:
Traceback (most recent call last):
File "/Users/Toly/Downloads/ps2 6/ps2_hangman.py", line 82, in <module>
if (remLetters[i] == userGuess):
IndexError: string index out of range
これが私のコードです:
# 6.00 Problem Set 3
#
# Hangman
#
# -----------------------------------
# Helper code
# (you don't need to understand this helper code)
import random
import string
import time
WORDLIST_FILENAME = "words.txt"
def load_words():
print "Loading word list from file..."
# inFile: file
inFile = open(WORDLIST_FILENAME, 'r', 0)
# line: string
line = inFile.readline()
# wordlist: list of strings
wordlist = string.split(line)
print " ", len(wordlist), "words loaded."
return wordlist
def choose_word(wordlist):
"""
wordlist (list): list of words (strings)
Returns a word from wordlist at random
"""
return random.choice(wordlist)
wordlist = load_words()
blankword="_ "
word=random.choice (wordlist)
remLetters = string.lowercase
remGuesses = 8 #starting number of guesses
remWord=len(word)
#makes a blank with the length of the word
print "Welcome to Hangman"
time.sleep(1)
print
print "Your word is", remWord,"letters long."
print
time.sleep (1)
while (remGuesses != 0 or blankword != word):
remBlankword=len(blankword)
remWordDoubled=remWord*2
while (remWordDoubled!=len(blankword)):
blankword=blankword + "_ "
print blankword
print
print "You have",remGuesses," guesses left."
print
time.sleep(1)
userGuess= str(raw_input ("Guess a letter:"))
print
if (userGuess in word):
print "Excellent guess!"
else:
print "Bad Guess"
remGuesses=remGuesses-1
for i in range (1, len(remLetters)):
if (remLetters[i] == userGuess):
remLetters = remLetters[0:i] + remLetters[i+1:len(remLetters)]
print remLetters
if (remGuesses == 0):
print
print "Sorry, you died! Ha, sucks!"
print
print
time.sleep (1)
print "End of Game"
if (blankword == word):
print
print "Congradulations! You won!"
print
time.sleep(1)
print
print
print
print "End of Game"