python 猜單詞小遊戲
阿新 • • 發佈:2020-12-19
import random words = ['chicken', 'dog', 'cat', 'mouse', 'frog'] guessTimes = 14 guessedLetters = "" def pickWord(): return random.choice(words) def play(): word = pickWord() while True: guess = getGuess(word) if processGuess(guess, word): print('You Win')break if guessTimes == 0: print("You lose") break def getGuess(word): printWordWithBlanks(word) print('剩餘' + str(guessTimes)) guess = input("請輸入一個字母:") return guess def processGuess(guess,word): global guessTimes global guessedLetters guessTimes= guessTimes - 1 guessedLetters = guessedLetters + guess for letter in word: if guessedLetters.find(letter) == -1: return False return True def printWordWithBlanks(word): displayWord = '' for letter in word: if guessedLetters.find(letter) > -1: displayWord= displayWord + letter else: displayWord = displayWord + '-' print(displayWord) play()
原理非常簡單,一看就會,其實這串程式碼是我好早以前寫的了,最近會運用了一些新的知識,下面講解一下:
具體就是讀取檔案,然後替換掉哪個words,這樣的話只需要修改words.txt就行,而不是每次修改都要修改程式碼
wenjian = open("words.txt", "r") words = wenjian.read().splitlines() wenjian.close()
open是讀取這個檔案(記得把他放到同一級目錄下),r是隻讀模式
然後read是獲取資料,splitlines是改為列表
close是關閉檔案,如果一個檔案只打開不關閉的話可能會出現不必要的問題。
try: wenjian = open("words.txt", "r") words = wenjian.read().splitlines() wenjian.close() except IOError: print("檔案words.txt並沒有找到") exit()
進階版:進行抓取錯誤,畢竟說不定哪天就會把words檔案當作垃圾檔案刪除掉了,所以要抓取一下錯誤。'