python王者荣耀
python學習過程不會一卻而就,需要不斷的練習,做項目對python的領悟才會深刻。知識不是記出來的,而是用出來的,用的多也就記住了,把python知識積極的運用到生活,工作學習中,是一條學習python高效快捷的道路。今天我們來做一個人機對戰版的王者榮耀。當然,做這個項目不是為了教大家玩游戲,而是體會理解python知識點的使用方法方式,做到對知識的知行合一。
記得小時候做數學題的時候,首先要明確解題的目標,也就是我要得出一個什么樣的答案。有了這個目標之后我們才會知道出發點在哪里,知道出發點之后需要明確到終點的路線,也就是我要到達終點該做什么,先做什么再做什么。對于做項目也是一樣的,我們首先需要明確項目目標,然后把大問題化解為小問題,一個一個的解決,最后問題將被我們一個一個的攻克,這時候項目自然就完成了。
王者榮耀
明確項目目標:
1.在互聯網公司,一般情況下是由產品經理提出明確的項目需求,由程序員來實現,他們之間是“相愛相殺”的關系。
2.今天且讓我扮演一下產品經理的角色。我們此次要實現的需求是:人機PK王者榮耀
3.簡單來說,這個游戲中,會隨機生成玩家和敵人的屬性,同時互相攻擊,直至一方血量小于零
4.另外,這樣的戰斗會持續三局,采取三局兩勝制,最后輸出戰斗結果,公布獲勝方
目標導向
玩游戲我們首先需要先選出游戲角色,我們的角色可以自己選擇,但是敵方的得自己選擇,我們又不是敵方,鬼知道它會選哪個,這個時候我們就需要為敵方設置可以隨機選擇游戲角色的功能。哪個模塊可以隨機選擇呢,import random模塊就有這個功能,它的random.choice()函數可以隨機選擇一個元素。
選擇完角色,我們需要為角色配置血量和攻擊值,如果我們自己定義游戲角色的血量和攻擊值,那這個游戲就沒有意義了,所以我們需要隨機為游戲角色配置血量和攻擊值,這時候有是import random模塊派上用場。random.randint()函數可以隨機生成一個整數。
游戲角色屬性設置完成,就開始游戲戰斗了,那我們如何判斷輸贏了,規定血量小于0則輸,這個可以用while語句來判斷,畢竟while語句為False時才會結束 ,我們就可以這樣設置了:while 敵方>0 and 我方>0:當出現while 敵方<0 and 我方>0:或while 敵方>0 and 我方<0:判斷出了勝負游戲結束
選出游戲角色—配置血量和攻擊值—設置循環模式
1.引入的模塊
// An highlighted blockimport time #為了增加視覺感知效果引入時間模塊,控制游戲進程。 import random #引入隨機生成模塊,配置游戲角色屬性var foo = 'bar';2.游戲角色配置
// An highlighted blockname=['小喬','大橋','李白','露娜','貂蟬','關羽','鎧','老夫子','韓信','上官婉兒','花木蘭','魯班七號','孫尚香','張良','諸葛亮','王昭君','鬼谷子','干將莫邪','龐統']#這些設置你可以自定義的呀var foo = 'bar';3.游戲屬性的生成
// An highlighted blockfor i in range(1,4):print('游戲角色:{}\n'.format(name))name_we = input('我方請輸入游戲角色:') #不想自己選擇也可以設置隨機生成的呀name_we_bl = random.randint(300,500) #生成我方血量name_we_g = random.randint(50,100) #生成我方攻擊值name_df = random.choice(name) #敵方隨機選擇一名游戲角色name_df_bl = random.randint(300,500) #生成敵方血量name_df_g = random.randint(50,100) #生成敵方攻擊值print('------前方高能,第{}局游戲開始------\n'.format(i)) #\n表示換行 .format(i)表示給{}轉入參數time.sleep(3) #延遲3秒print('我方人物:【{0}】|血量:{1}|攻擊值:{2}\n'.format(name_we,name_we_bl,name_we_g)) #.format(i)表示給{}轉入參數,0代表第一個time.sleep(3) #延遲3秒print('敵方人物:【{0}】|血量:{1}|攻擊值:{2}\n'.format(name_df,name_df_bl,name_df_g))var foo = 'bar';4.戰斗過程
// An highlighted blockwhile name_we_bl>0 and name_df_bl>0:name_we_bl = name_we_bl - name_df_g #戰斗攻擊過程,即我方角色的血量減去敵方攻擊的攻擊值name_df_bl = name_df_bl - name_we_g #戰斗攻擊過程,即敵方角色的血量減去我方攻擊的攻擊值print('我方發起了攻擊:剩余血量|{}\n'.format(name_we_bl))time.sleep(2) #延遲2秒print('敵方發起了攻擊:剩余血量{}\n'.format(name_df_bl))if name_we_bl > name_df_bl and name_df_bl < 0: #判斷我方贏number_we = 0 number_we += 1 #計算輸贏結局,贏則加1 number_we += 1表示number_we=number_we+1print('{0},聽從我的呼喚勝利\n'.format(name_we))elif name_df_bl > name_we_bl and name_we_bl < 0: #判斷敵方贏number_bl = 0number_bl += 1print('{0},美妙的長眠,值得高歌一曲,啦啦啦啦啦\n'.format(name_df))else: #雙方打平print('打平,要努力變強\n')var foo = 'bar';5.三局兩勝的結果
// An highlighted blockif number_we > number_bl: #結果為我方贏 print('最犀利的劍,只為最強大的對手所揮動')elif number_we < number_bl: #結果為敵方贏print('弱者,才在乎恥辱')else: #雙方打平print('心懷不懼,才能翱翔于天際')var foo = 'bar';完整代碼
// An highlighted blockimport time #為了增加視覺感知效果引入時間模塊,控制游戲進程。 import random #引入隨機生成模塊,配置游戲角色屬性name=['小喬','大橋','李白','露娜','貂蟬','關羽','鎧','老夫子','韓信','上官婉兒','花木蘭','魯班七號','孫尚香','張良','諸葛亮','王昭君','鬼谷子','干將莫邪','龐統']for i in range(1,4):print('游戲角色:{}\n'.format(name))name_we = input('我方請輸入游戲角色:') #不想自己選擇也可以設置隨機生成的呀name_we_bl = random.randint(300,500) #生成我方血量name_we_g = random.randint(50,100) #生成我方攻擊值name_df = random.choice(name) #敵方隨機選擇一名游戲角色name_df_bl = random.randint(300,500) #生成敵方血量name_df_g = random.randint(50,100) #生成敵方攻擊值print('------前方高能,第{}局游戲開始------\n'.format(i)) #\n表示換行 .format(i)表示給{}轉入參數time.sleep(3) #延遲3秒print('我方人物:【{0}】|血量:{1}|攻擊值:{2}\n'.format(name_we,name_we_bl,name_we_g)) #.format(i)表示給{}轉入參數,0代表第一個time.sleep(3) #延遲3秒print('敵方人物:【{0}】|血量:{1}|攻擊值:{2}\n'.format(name_df,name_df_bl,name_df_g))while name_we_bl>0 and name_df_bl>0:name_we_bl = name_we_bl - name_df_g #戰斗攻擊過程,即我方角色的血量減去敵方攻擊的攻擊值name_df_bl = name_df_bl - name_we_g #戰斗攻擊過程,即敵方角色的血量減去我方攻擊的攻擊值print('我方發起了攻擊:剩余血量|{}\n'.format(name_we_bl))time.sleep(2) #延遲2秒print('敵方發起了攻擊:剩余血量{}\n'.format(name_df_bl))if name_we_bl > name_df_bl and name_df_bl < 0: #判斷我方贏number_we = 0number_we += 1print('{0},聽從我的呼喚勝利\n'.format(name_we))elif name_df_bl > name_we_bl and name_we_bl < 0: #判斷敵方贏number_bl = 0number_bl += 1print('{0},美妙的長眠,值得高歌一曲,啦啦啦啦啦\n'.format(name_df))else: #雙方打平print('打平,要努力變強\n')if number_we > number_bl: #結果為我方贏 print('最犀利的劍,只為最強大的對手所揮動')elif number_we < number_bl: #結果為敵方贏print('弱者,才在乎恥辱')else: #雙方打平print('心懷不懼,才能翱翔于天際')var foo = 'bar';挺有趣的,大家可以在自己的電腦上玩玩呀
總結
以上是生活随笔為你收集整理的python王者荣耀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职场:迈过职业生涯中的5个坎
- 下一篇: quartus 14.1破解失败解决方案