python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)
本文實(shí)例為大家分享了python實(shí)現(xiàn)猜數(shù)游戲的具體代碼,供大家參考,具體內(nèi)容如下
內(nèi)容如下:
①游戲可以重復(fù)進(jìn)行,每當(dāng)一個(gè)用戶結(jié)束后,程序會(huì)提示是否還要繼續(xù),輸入y繼續(xù),輸入其他的字符退出;②增加玩家姓名,并對(duì)該玩家的成績(jī)進(jìn)行記錄,并存儲(chǔ)在new.txt文件中;③增加文件讀取功能,即每次程序啟動(dòng),都首先讀取new.txt文件,并給出之前玩家的最高成績(jī)和姓名。(當(dāng)最高成績(jī)重疊時(shí),取最新記錄)
import randomimport osif os.path.exists('D:new.txt')==False: #檢測(cè)文件是否存在 file = open(’D:’ + ’new’ + ’.txt’,’w’) #若不存在則立即創(chuàng)建 file.close()temp=1 #控制是否繼續(xù)while temp: work=random.randrange(1,101) print(work) with open('D:new.txt') as f: #讀出最高紀(jì)錄 name='' socre=0 i=1 #奇為成績(jī),偶為姓名 for line in f: if i%2!=0: if socre <= int(line): #(最高成績(jī)相同時(shí),取最新成績(jī)) socre=int(line) flag=1 else: if temp==1: name=line.rstrip() flag=0 i+=1 achievement=100 #成績(jī)初始為100 time=0 #次數(shù)初始為0 print('——————————猜數(shù)游戲——————————') print('tt請(qǐng)輸入一個(gè)1到100的整數(shù)') print('tt游戲最高紀(jì)錄%s'%name) print('tt分?jǐn)?shù)為:%d'%socre) print('ntt注意:') print('tt 滿分100分,每打錯(cuò)一次扣2分!') print('tt 輸入的不是1到100的整數(shù),會(huì)有嚴(yán)厲懲罰!') print() name=str(input('請(qǐng)輸入你的姓名:')) while(achievement!=0): try: num=int(input('你猜測(cè)的數(shù)是:')) time+=1 if (num<1 or num>100): #整數(shù)1,100以外的情況 print('超出范圍了,你要受到懲罰!') achievement-=4 else: if num==work: print('t恭喜你,答對(duì)了!') print('t%s的分?jǐn)?shù)是%d'%(name,achievement)) print('t你猜數(shù)的次數(shù)是%d'%time) if time==1: print('t你太優(yōu)秀了!') elif 1<time<11: print('t你還算優(yōu)秀了!') elif 10<time<21: print('t你還可以吧!') else: print('t一般水平!') string=str(achievement)+'n' #將成績(jī),姓名寫(xiě)入 with open('D:new.txt','a') as file: file.write(string) string=name+'n' with open('D:new.txt','a') as file: file.write(string) break else: achievement-=2 if num<work: print('數(shù)的范圍是%d到100'%num) else: print('數(shù)的范圍是1到%d!'%num) if achievement==0: #成績(jī)?yōu)?時(shí) print('t對(duì)不起,你錯(cuò)了!') print('t%s的分?jǐn)?shù)是%d'%(name,achievement)) print('t你猜數(shù)的次數(shù)是%d'%time) break except: #輸入非整數(shù)時(shí) time+=1 achievement-=4 print('輸入的不是整數(shù),你要受到懲罰!') if achievement==0: print('t對(duì)不起,你錯(cuò)了!') print('t%s的分?jǐn)?shù)是%d'%(name,achievement)) print('t你猜數(shù)的次數(shù)是%d'%time) break string=str(input('是否還要繼續(xù)?(y,繼續(xù)):')) #判斷繼續(xù)時(shí)是否為y if string!='y': temp=0
更多關(guān)于python游戲的精彩文章請(qǐng)點(diǎn)擊查看以下專題:
python俄羅斯方塊游戲集合
python經(jīng)典小游戲匯總
python微信跳一跳游戲集合
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序2. js開(kāi)發(fā)中的頁(yè)面、屏幕、瀏覽器的位置原理(高度寬度)說(shuō)明講解(附圖)3. ASP動(dòng)態(tài)include文件4. CSS百分比padding制作圖片自適應(yīng)布局5. vue跳轉(zhuǎn)頁(yè)面常用的幾種方法匯總6. 不要在HTML中濫用div7. XML入門(mén)的常見(jiàn)問(wèn)題(三)8. XML 非法字符(轉(zhuǎn)義字符)9. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)10. CSS清除浮動(dòng)方法匯總
