日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【Python 第39課】 用文件保存游戲(1)20150120039

 一利陽光故事會(huì) 2020-02-24

【Python 第39課】 用文件保存游戲(1)

到目前為止,python最入門的語法我們都已經(jīng)有所涉及,相信大家一路學(xué)過來,多少也能寫出一些小程序。在接下來的課程中,我會(huì)基于實(shí)例來更深入地介紹python

現(xiàn)在,我要在最早我們開發(fā)的那個(gè)猜數(shù)字游戲的基礎(chǔ)上,增加保存成績的功能。用到的方法就是前幾課講過的文件讀寫。今天是第一部分。


在動(dòng)手寫代碼前,先想清楚我們要解決什么問題,打算怎么去解決。你可以選擇根據(jù)每次游戲算出一個(gè)得分,記錄累計(jì)的得分。也可以讓每次猜錯(cuò)都扣xx分,猜對之后再加xx分,記錄當(dāng)前分?jǐn)?shù)。而我現(xiàn)在打算記錄下我玩了多少次,最快猜出來的輪數(shù),以及平均每次猜對用的輪數(shù)。


于是,我要在文件中記錄3個(gè)數(shù)字,如:
3 5 31


它們分別是:總游戲次數(shù),最快猜出的輪數(shù),和猜過的總輪數(shù)(這里我選擇記錄總輪數(shù),然后每次再算出平均輪數(shù))

接下來可以往代碼里加功能了,首先是讀取成績。新建好一個(gè)game.txt,里面寫上:
0 0 0
作為程序的初始數(shù)據(jù)。


用之前的方法,讀入文件:
f = open('e:\py\game.txt')
score = f.read().split()


這里,我用了open方法,它和file()的效果一樣。另外,我還用了絕對路徑。當(dāng)你寫這個(gè)程序時(shí),記得用你自己電腦上的路徑。


為便于理解,把數(shù)據(jù)讀進(jìn)來后,分別存在3個(gè)變量中。
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


注意兩點(diǎn):
1.我在total_times前加上了float,把它轉(zhuǎn)成了浮點(diǎn)數(shù)類型再進(jìn)行除法運(yùn)算。如果不這樣做,兩個(gè)整數(shù)相除的結(jié)果會(huì)默認(rèn)為整數(shù),而且不是四舍五入。
2.因?yàn)?是不能作為除數(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ù)。


好了,運(yùn)行程序看一下效果:
你已經(jīng)玩了0次,最少0輪猜出答案,平均0輪猜出答案


由于還沒有做保存功能,我們手動(dòng)去文件里改一下成績看運(yùn)行效果。(其實(shí)有些小游戲就可以用類似的方法作弊)

下一課,我們要把真實(shí)的游戲數(shù)據(jù)保存到文件中。

【Python <wbr>第39課】 <wbr>用文件保存游戲(1)20150120039

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多