python小游戏———猜单词

来源:互联网 发布:西安软件开发工资待遇 编辑:程序博客网 时间:2024/06/03 13:22

电脑根据单词列表随机生成一个单词,打印出这个单词长度个 ‘ _ ’ ,玩家随机输入一个这个单词可能包含的英文字母,如果玩家猜对了,电脑则会在正确的空格处填写这个字母,如果没有猜对,游戏次数就减一。如果玩家在游戏次数减为零前猜对这个单词的所有字母,则玩家获胜,否则玩家输掉比赛。

from random import*words = 'tiger lion wolf elephant zebra ducksheep rabbit mouse'.split()#得到要猜的神秘单词def getWord(wordList):    n = randint(0,len(wordList)-1)    return wordList[n]#游戏界面def display(word,wrongLetters,rightLetters,chance):    print('你还有{:n}次机会'.format(chance).center(40,'-'))    print('已经猜错的字母:'+ wrongLetters)    print()    blanks = '_'*len(word)    for i in range(len(word)):        if word[i] in rightLetters:            blanks = blanks[:i] + word[i] +blanks[i+1:]    for i in blanks:        print(i+' ',end='')    print()    print()    #从玩家的输入得到一个猜测的字母def getLetter(alreadyGuessed):    while True:        print('请输入一个可能的字母:')        guess = input()        guess = guess.lower()        if guess[0] in alreadyGuessed:            print('你已经猜过这个字母了!')        elif guess[0] not in 'qwertyuiopasdfghjklzxcvbnm':            print('请输入一个英文字母!(a-z)')        else:            return guess[0]        #是否再玩一次def playAgain():    print('是否在玩一次?(y/n)')    s = input()    s = s.lower()    if s[0] == 'y':        return 1    return 0#游戏初始化wrongLetters = ''rightLetters = ''word = getWord(words)chance = 6  #初始为6次机会done = Falsewhile True:    display(word,wrongLetters,rightLetters,chance)        guess = getLetter(wrongLetters+rightLetters)    if guess in word:        rightLetters = rightLetters+ guess        foundAll = True        for i in range(len(word)):            if word[i] not in rightLetters:                foundAll = False                break        if foundAll:            print('你真棒,这个单词就是'+ word +',你赢了!')            done = True    else:         wrongLetters = wrongLetters + guess         chance = chance - 1         if chance == 0:             display(word,wrongLetters,rightLetters,chance)             print("你已经没有机会了!你一共猜错了"+str(len((wrongLetters))+"次,猜对了"+str(len(rightLetters))+"次,正确的单词是:"+ word)             done = True    if done:        if playAgain():            wrongLetters = ''            rightletters = ''            word = getWord(words)            chance = 6  #初始为6次机会            done = 0        else:            break


原创粉丝点击