python實現簡單猜單詞遊戲
阿新 • • 發佈:2020-12-25
本文例項為大家分享了python實現猜單詞遊戲的具體程式碼,供大家參考,具體內容如下
電腦根據單詞列表隨機生成一個單詞,打印出這個單詞長度個 ‘ _ ' ,玩家隨機輸入一個這個單詞可能包含的英文字母,如果玩家猜對了,電腦則會在正確的空格處填寫這個字母,如果沒有猜對,遊戲次數就減一。如果玩家在遊戲次數減為零前猜對這個單詞的所有字母,則玩家獲勝,否則玩家輸掉比賽。
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 = False while True: display(word,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,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
再為大家提供一段程式碼:python猜單詞遊戲,作為補充,感謝原作者的分享。
import random WORDS = ("math","english","china","history") right = 'Y' print("歡迎參加猜單詞遊戲!") while right=='Y' or right=='y': word=random.choice(WORDS) correct=word newword = '' while word: pos=random.randrange(len(word)) newword+=word[pos] #將word單詞下標為pos的字母去掉,取pos前面和後面的字母組成新的word word = word[:pos]+word[(pos+1):] #保證隨機字母出現不會重複 print("你要猜測的單詞為:",newword) guess = input("請輸入你的答案:") count=1 while count<5: if guess!=correct: guess = input("輸入的單詞錯誤,請重新輸入:") count+=1 else : print("輸入的單詞正確,正確單詞為:",correct) break if count == 5: print("您已猜錯5次,正確的單詞為:",correct) right = input("是否繼續,Y/N:")
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。