用打怪游戏实例,深度理解python面向过程
生活随笔
收集整理的這篇文章主要介紹了
用打怪游戏实例,深度理解python面向过程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
python更其他的大多數計算機語言更擅長的是面向對象的編程,在理解面向對象之前,有必要先了解或理解一下什么是面向過程。
簡而言之,面向過程就是根據現(xiàn)實中的需求,將所要解決的問題分解成步驟,然后用函數的形式一步步實現(xiàn),差不多就是函數式編程的概念,就是通過調用一個個函數的形式來完成程序的執(zhí)行,以實現(xiàn)現(xiàn)實中的需求。
面向過程的開發(fā),特別使用python這種語言,可能比較繁瑣,下面就是鄙人用的python的面向過程的編程思想來開發(fā)的一個打怪小游戲,思路是這樣的:設計一個主函數,來調用其他的處理各類事件的函數。代碼如下:
python面向過程打怪游戲實例
def hero(se=1,hp=10):hp -= sereturn hpdef boss(se=2,hp=5):hp -= sereturn hp#hero函數和boss函數是英雄和boss的兩個函數,參數se為武力值,hp為血量 #注意:hero中的hp為boss的血量,boss函數中的hp為英雄的血量def upexp(se,money):se = se+moneyreturn se#升級經驗值以增加武力值的函數def beat(a,b,c): #英雄和怪物boss交戰(zhàn)的函數import timeh_hp = a #hero血量b_hp = b #boss血量h_se = c #hero打怪武力值while h_hp > 0 and b_hp > 0: #while的條件為英雄血量大于0并且boss血量大于0,因此當任何一方小于0,while結束,游戲結束if h_hp <= 2: #當英雄血量低于或等于2print('英雄,你的血量為%s'%h_hp)uphp_inp = input('英雄是否要先撤退補充血量(y/n)?')if uphp_inp == 'n':b_hp = hero(se=h_se,hp=b_hp) #注意,hero返回的是boss的血量,傳入的參數也是boss的血量if b_hp > 0: #當boss的還有血量print('英雄攻擊,boss的血量還剩下%s'%b_hp)time.sleep(1)h_hp = boss(hp=h_hp)if h_hp <= 0:print('英雄血量小于0,game over')returnelse: #當boss沒有血量print('boss已經被消滅,恭喜英雄!')return else:h_hp = 5 #當用戶選擇y之后,我們這里直接將英雄的血量重新賦值為5b_hp = hero(se=h_se,hp=b_hp) #這里的代碼表示的是英雄的血量大于2的情況if b_hp <= 0:print('boss血量小于0,已經被消滅')breakelse:print('英雄攻擊,boss血量還剩下%s'%b_hp)time.sleep(1) #之所以要延遲一秒,主要是為了讓打怪顯得有次序感h_hp = boss(hp=h_hp)if h_hp <= 0:print('英雄血量小于0,game over')else:print('boss攻擊,英雄血量還剩下%s'%h_hp)time.sleep(1)def outup():h_hp = 5b_hp = 10 #boss血量h_se = 1beat(h_hp, b_hp, h_se) #outup沒有升級經驗值,也就是沒有升級武力值就打怪的函數def withup():upexp_inp = input('升級經驗以增加武力值之前需要財富值,請問1+1=幾:')while upexp_inp != '2':upexp_inp = input('回答錯誤,請問1+1=幾:') money = 2h_se = upexp(se=1, money=2) h_hp = 5b_hp = 10 #boss血量 beat(h_hp, b_hp, h_se)#withup是升級武力值的函數#這里我們模仿c語言的面向過程的編程模式,寫個主入口函數main def main():print('歡迎來到大器編程x1y1z1.com的python面向過程的打怪游戲實例...')import timetime.sleep(1)print('游戲開始')time.sleep(1)yn_inp = input('boss扛著棒槌過來了,英雄是否決定戰(zhàn)斗(y/n):')if yn_inp == 'n':print('英雄選擇退隱江湖,游戲退出!')returnelse:print('boss的武力值為2,血量為10,英雄你的武力值為1,血量為5')time.sleep(1)up_inp = input('英雄是否要升級自己的武力值(y/n)')if up_inp == 'n':outup()else:withup()#記得調用主函數main() main()#原創(chuàng)代碼,轉載請注明來源“大器編程x1y1z1.com”更多的游戲代碼的解析以及面向過程的編程思想的內容可以參考如下內容:
python面向過程的編程思想,打怪游戲實例https://www.x1y1z1.com/python/pypop.html
總結
以上是生活随笔為你收集整理的用打怪游戏实例,深度理解python面向过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷达原理---脉冲雷达和连续波雷达
- 下一篇: onlyoffice开发java_如何集