Python編程如何用文件保存游戲(1)
今天馬哥教育要跟大家分享的文章是Python編程如何用文件保存游戲(1)?現(xiàn)在,我要在最早我們開發(fā)的那個猜數(shù)字游戲的基礎(chǔ)上,增加保存成績的功能。用到的方法就是前幾課講過的文件讀寫。Python入門新手和正在Python學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
我們從今天開始學(xué)習(xí)用文件保存游戲,前面學(xué)習(xí)的知識記得復(fù)習(xí)哦,今天開啟新篇章你準備好了嗎?
在動手寫代碼前,先想清楚我們要解決什么問題,打算怎么去解決。你可以選擇根據(jù)每次游戲算出一個得分,記錄累計的得分。也可以讓每次猜錯都扣xx分,猜對之后再加xx分,記錄當前分數(shù)。而我現(xiàn)在打算記錄下我玩了多少次,最快猜出來的輪數(shù),以及平均每次猜對用的輪數(shù)。
于是,我要在文件中記錄3個數(shù)字,如:
3 5 31
它們分別是:總游戲次數(shù),最快猜出的輪數(shù),和猜過的總輪數(shù)(這里我選擇記錄總輪數(shù),然后每次再算出平均輪數(shù))
接下來可以往代碼里加功能了,首先是讀取成績。新建好一個game.txt,里面寫上:
0 0 0
作為程序的初始數(shù)據(jù)。
用之前的方法,讀入文件:
f = open('e:pygame.txt') score = f.read().split()
這里,我用了open方法,它和file()的效果一樣。另外,我還用了絕對路徑。當你寫這個程序時,記得用你自己電腦上的路徑。
為便于理解,把數(shù)據(jù)讀進來后,分別存在3個變量中。
game_times = int(score[0]) min_times = int(score[1]) total_times = int(score[2])
平均輪數(shù)根據(jù)總輪數(shù)和游戲次數(shù)相除得到:
avg_times = float(total_times) / game_times
注意兩點:
1.我在total_times前加上了float,把它轉(zhuǎn)成了浮點數(shù)類型再進行除法運算。如果不這樣做,兩個整數(shù)相除的結(jié)果會默認為整數(shù),而且不是四舍五入。
2.因為0是不能作為除數(shù)的,所以這里還需要加上判斷:
if game_times > 0: avg_times = float(total_times) / game_times else: avg_times = 0
然后,在讓玩家開始猜數(shù)字前,輸出他之前的成績信息:
print '你已經(jīng)玩了%d次,最少%d輪猜出答案,平均%.2f輪猜出答案' % (game_times, min_times, avg_times)
%.2f這樣的寫法我們以前也用過,作用是保留兩位小數(shù)。
好了,運行程序看一下效果:
你已經(jīng)玩了0次,最少0輪猜出答案,平均0輪猜出答案
由于還沒有做保存功能,我們手動去文件里改一下成績看運行效果。(其實有些小游戲就可以用類似的方法作弊)

下一課,我們要把真實的游戲數(shù)據(jù)保存到文件中。
恭喜你在Python自學(xué)的道路上又堅持了一天,今天講的用文件保存游戲你學(xué)會了嗎?之后還有兩節(jié)相關(guān)的內(nèi)容,你準備好了嗎?
以上就是馬哥教育今天為大家分享的關(guān)于Python編程如何用文件保存游戲(1)的文章,希望本篇文章能夠?qū)φ?Python學(xué)習(xí)?和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!