2
我很难搞清楚如何使这个工作。基本上我必须制作一个游戏,其中一个单词是从words.txt文件中随机生成的,然后交替玩家必须键入一个以前一个单词的最后一个字母开头的单词。我认为我有这个基本问题,但是我需要解决一些问题。while,if和for循环。 Python中的第一个字母,最后一个字母游戏
首先有人可以告诉我为什么我的代码不工作?当我运行它并输入一个应该完成==的单词时,它似乎不能识别它。 代码如下:
import random
def dictionary_list():
dictionary = open("words.txt","r")
dictionary_list = dictionary.read()
dictionary_list = dictionary_list.split()
dictionary.close()
return dictionary_list
def start_word(dictionary_list):
random_number = random.randrange(0,len(dictionary_list))
random_word = dictionary_list[random_number]
print("Starting word: ", random_word)
return random_word
def get_word(player_number):
word = input(player_number)
return word
def get_player_number(player_number):
if player_number == 1:
player_number = 2
else:
player_number = 1
return player_number
def main():
word_list = dictionary_list()
starting_word = start_word(word_list)
words_used_list = [starting_word]
print(words_used_list)
finished = False
previous_word = starting_word
count = 0
player_number = 1
while finished == False:
word = get_word(player_number)
last_letter_word = previous_word[-1]
if word[0] != last_letter_word:
finished == True
elif word not in word_list:
finished == True
elif word in words_used_list:
finished == True
elif finished == True:
print("=" * 40)
print("Winner is player",player_number)
print("Number of words played", count)
print("List of words:", words_used_list)
print("Losing word: ", word)
print("=" * 40)
else:
player_number = get_player_number(player_number)
previous_word = word
count = count + 1
words_used_list.append(word)
main()
下面是所需的输出应该是什么样子的截图: http://imgur.com/S9a2ema
耶!乐意效劳。请务必点击友好的“接受答案”勾号,然后再离开;) – GreenAsJade 2014-09-29 05:05:57
@Waterdogs在Python中,使用'is'运算符进行比较为False/True/None是标准的。这可能阻止了这一点,因为看到'x == True'会发出警告信号。 – 2014-09-29 05:26:19