python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲
本文實(shí)例為大家分享了python實(shí)現(xiàn)猜單詞游戲的具體代碼,供大家參考,具體內(nèi)容如下
電腦根據(jù)單詞列表隨機(jī)生成一個(gè)單詞,打印出這個(gè)單詞長(zhǎng)度個(gè) ‘ _ ' ,玩家隨機(jī)輸入一個(gè)這個(gè)單詞可能包含的英文字母,如果玩家猜對(duì)了,電腦則會(huì)在正確的空格處填寫(xiě)這個(gè)字母,如果沒(méi)有猜對(duì),游戲次數(shù)就減一。如果玩家在游戲次數(shù)減為零前猜對(duì)這個(gè)單詞的所有字母,則玩家獲勝,否則玩家輸?shù)舯荣悺?/p>
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}次機(jī)會(huì)'.format(chance).center(40,'-'))
print('已經(jīng)猜錯(cuò)的字母:'+ 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()
#從玩家的輸入得到一個(gè)猜測(cè)的字母
def getLetter(alreadyGuessed):
while True:
print('請(qǐng)輸入一個(gè)可能的字母:')
guess = input()
guess = guess.lower()
if guess[0] in alreadyGuessed:
print('你已經(jīng)猜過(guò)這個(gè)字母了!')
elif guess[0] not in 'qwertyuiopasdfghjklzxcvbnm':
print('請(qǐng)輸入一個(gè)英文字母!(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次機(jī)會(huì)
done = False
while 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('你真棒,這個(gè)單詞就是'+ word +',你贏了!')
done = True
else:
wrongLetters = wrongLetters + guess
chance = chance - 1
if chance == 0:
display(word,wrongLetters,rightLetters,chance)
print("你已經(jīng)沒(méi)有機(jī)會(huì)了!你一共猜錯(cuò)了"+str(len((wrongLetters))+"次,猜對(duì)了"+str(len(rightLetters))+"次,正確的單詞是:"+ word)
done = True
if done:
if playAgain():
wrongLetters = ''
rightletters = ''
word = getWord(words)
chance = 6 #初始為6次機(jī)會(huì)
done = 0
else:
break
再為大家提供一段代碼:python猜單詞游戲,作為補(bǔ)充,感謝原作者的分享。
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單詞下標(biāo)為pos的字母去掉,取pos前面和后面的字母組成新的word
word = word[:pos]+word[(pos+1):] #保證隨機(jī)字母出現(xiàn)不會(huì)重復(fù)
print("你要猜測(cè)的單詞為:",newword)
guess = input("請(qǐng)輸入你的答案:")
count=1
while count<5:
if guess!=correct:
guess = input("輸入的單詞錯(cuò)誤,請(qǐng)重新輸入:")
count+=1
else :
print("輸入的單詞正確,正確單詞為:",correct)
break
if count == 5:
print("您已猜錯(cuò)5次,正確的單詞為:",correct)
right = input("是否繼續(xù),Y/N:")
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 爬蟲(chóng)學(xué)習(xí)筆記之正則表達(dá)式
正則表達(dá)式是用來(lái)匹配字符串非常強(qiáng)大的工具,在其他編程語(yǔ)言中同樣有正則表達(dá)式的概念,Python同樣不例外,利用了正則表達(dá)式,我們想要從返回的頁(yè)面內(nèi)容提取出我們想要的內(nèi)容就易如反掌了。2016-09-09
python pandas.DataFrame選取、修改數(shù)據(jù)最好用.loc,.iloc,.ix實(shí)現(xiàn)
今天小編就為大家分享一篇python pandas.DataFrame選取、修改數(shù)據(jù)最好用.loc,.iloc,.ix實(shí)現(xiàn)。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python抓取通過(guò)Ajax加載數(shù)據(jù)的示例
在網(wǎng)頁(yè)上,有一些內(nèi)容是通過(guò)執(zhí)行Ajax請(qǐng)求動(dòng)態(tài)加載數(shù)據(jù)渲染出來(lái)的,本文主要介紹了使用Python抓取通過(guò)Ajax加載數(shù)據(jù),感興趣的可以了解一下2023-05-05
Python實(shí)現(xiàn)生成日?qǐng)?bào)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)生成日?qǐng)?bào)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
兩行Python代碼實(shí)現(xiàn)pdf轉(zhuǎn)word功能
這篇文章主要為大家詳細(xì)介紹了如何利用兩行Python代碼就能實(shí)現(xiàn)pdf轉(zhuǎn)word功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03
詳解python中的三種命令行模塊(sys.argv,argparse,click)
這篇文章主要介紹了python中的三種命令行模塊(sys.argv,argparse,click)的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12

