在原來的基礎上, 進行了全新的改版
首先, 增長了更多的隨機因素, 好比每次攻擊的傷害都是隨機的
其次, 肯定了先發優點的隨機分配
最後, 你死我活不可能有平局...
import time
import random
user1 = {
'name': '',
'life': 0,
'victory':0
}
user2 = {
'name': '',
'life': 0,
'victory':0
}
attack_list = [
{
'desc':'{} 揮劍向 {} 砍去',
'num':20
},
{
'desc':'{} 準備剛正面, 對 {} 使出一記"如來神掌"',
'num':30
},
{
'desc':'{} 擼起了袖子給 {} 一頓胖揍',
'num':25
},
{
'desc':'{} 向 {} 拋了個媚眼',
'num':10
},
{
'desc':'{} 抄起衝鋒槍就是一梭子, {} 走位風騷, 輕鬆躲過',
'num':0
},
{
'desc':'{} 出了一個大招, {} 躲閃不及, 正中要害',
'num':40
}
]
user1['name'] = input('請輸入玩家1的暱稱: ')
user2['name'] = input('請輸入玩家2的暱稱: ')
while True:
user1['victory'] = 0
user2['victory'] = 0
for i in range(3):
print(' \n——————如今是第 {} 局——————'.format(i+1))
user1['life'] = random.randint(100, 150)
user2['life'] = random.randint(100, 150)
print(user1['name']+'\n血量:{}'.format(user1['life']))
print('------------------------')
print(user2['name']+'\n血量:{}'.format(user2['life']))
print('-----------------------')
time.sleep(4)
first_attack = random.randint(0,1)
users_list = []
if first_attack:
user1['isfirst'] = 1
print('漂亮!!! '+user1['name']+' 得到先發優點!')
print('')
users_list.append(user1)
users_list.append(user2)
else:
user2['isfirst'] = 1
print('難以置信! '+user2['name']+' 得到先發優點!')
print('')
users_list.append(user2)
users_list.append(user1)
time.sleep(2)
while user1['life'] > 0 and user2['life'] > 0:
tmp_rand = random.randint(0,len(attack_list)-1)
users_list[1]['life'] = users_list[1]['life'] - attack_list[tmp_rand]['num']
print(attack_list[tmp_rand]['desc'].format(users_list[0]['name'],users_list[1]['name'])+' 形成了{}點傷害 ==> '.format(attack_list[tmp_rand]['num'])+users_list[1]['name']+' 的剩餘血量:{}'.format(users_list[1]['life']))
time.sleep(4)
if users_list[1]['life'] <= 0:
print('')
print(users_list[1]['name']+' 慘敗 -_-||')
users_list[0]['victory']+=1
break
tmp_rand = random.randint(0,len(attack_list)-1)
users_list[0]['life'] = users_list[0]['life'] - attack_list[tmp_rand]['num']
print(attack_list[tmp_rand]['desc'].format(users_list[1]['name'],users_list[0]['name'])+' 形成了{}點傷害 ==> '.format(attack_list[tmp_rand]['num'])+users_list[0]['name']+' 的剩餘血量:{}'.format(users_list[0]['life']))
time.sleep(4)
if users_list[0]['life'] <= 0:
print('')
print(users_list[0]['name']+' 慘敗 -_-||')
time.sleep(3)
users_list[1]['victory']+=1
break
print('-----------------------')
if user1['victory'] == 2:
print('')
print('三局兩勝中 '+user1['name']+' 獲勝!')
break
if user2['victory'] == 2:
print('')
print('三局兩勝中 '+user2['name']+' 獲勝!')
break
print('')
res = input('要不要再來一局? (回覆"是"再來一局, 其餘退出...) ')
if res != '是':
break
複製代碼
運行效果以下...
C:\Users\Administrator\Desktop\demo>python -u "c:\Users\Administrator\Desktop\demo\demo7.py"
請輸入玩家1的暱稱: 許竣皓
請輸入玩家2的暱稱: 甄子丹
——————如今是第 1 局——————
許竣皓
血量:144
------------------------
甄子丹
血量:107
-----------------------
漂亮!!! 許竣皓 得到先發優點!
許竣皓 準備剛正面, 對 甄子丹 使出一記"如來神掌" 形成了30點傷害 ==> 甄子丹 的剩餘血量:77
甄子丹 揮劍向 許竣皓 砍去 形成了20點傷害 ==> 許竣皓 的剩餘血量:124
-----------------------
許竣皓 準備剛正面, 對 甄子丹 使出一記"如來神掌" 形成了30點傷害 ==> 甄子丹 的剩餘血量:47
甄子丹 揮劍向 許竣皓 砍去 形成了20點傷害 ==> 許竣皓 的剩餘血量:104
-----------------------
許竣皓 準備剛正面, 對 甄子丹 使出一記"如來神掌" 形成了30點傷害 ==> 甄子丹 的剩餘血量:17
甄子丹 抄起衝鋒槍就是一梭子, 許竣皓 走位風騷, 輕鬆躲過 形成了0點傷害 ==> 許竣皓 的剩餘血量:104
-----------------------
許竣皓 揮劍向 甄子丹 砍去 形成了20點傷害 ==> 甄子丹 的剩餘血量:-3
甄子丹 慘敗 -_-||
——————如今是第 2 局——————
許竣皓
血量:127
------------------------
甄子丹
血量:123
-----------------------
漂亮!!! 許竣皓 得到先發優點!
許竣皓 向 甄子丹 拋了個媚眼 形成了10點傷害 ==> 甄子丹 的剩餘血量:113
甄子丹 準備剛正面, 對 許竣皓 使出一記"如來神掌" 形成了30點傷害 ==> 許竣皓 的剩餘血量:97
-----------------------
許竣皓 向 甄子丹 拋了個媚眼 形成了10點傷害 ==> 甄子丹 的剩餘血量:103
甄子丹 出了一個大招, 許竣皓 躲閃不及, 正中要害 形成了40點傷害 ==> 許竣皓 的剩餘血量:57
-----------------------
許竣皓 抄起衝鋒槍就是一梭子, 甄子丹 走位風騷, 輕鬆躲過 形成了0點傷害 ==> 甄子丹 的剩餘血量:103
甄子丹 出了一個大招, 許竣皓 躲閃不及, 正中要害 形成了40點傷害 ==> 許竣皓 的剩餘血量:17
-----------------------
許竣皓 擼起了袖子給 甄子丹 一頓胖揍 形成了25點傷害 ==> 甄子丹 的剩餘血量:78
甄子丹 出了一個大招, 許竣皓 躲閃不及, 正中要害 形成了40點傷害 ==> 許竣皓 的剩餘血量:-23
許竣皓 慘敗 -_-||
——————如今是第 3 局——————
許竣皓
血量:106
------------------------
甄子丹
血量:111
-----------------------
難以置信! 甄子丹 得到先發優點!
甄子丹 準備剛正面, 對 許竣皓 使出一記"如來神掌" 形成了30點傷害 ==> 許竣皓 的剩餘血量:76
許竣皓 抄起衝鋒槍就是一梭子, 甄子丹 走位風騷, 輕鬆躲過 形成了0點傷害 ==> 甄子丹 的剩餘血量:111
-----------------------
甄子丹 準備剛正面, 對 許竣皓 使出一記"如來神掌" 形成了30點傷害 ==> 許竣皓 的剩餘血量:46
許竣皓 擼起了袖子給 甄子丹 一頓胖揍 形成了25點傷害 ==> 甄子丹 的剩餘血量:86
-----------------------
甄子丹 揮劍向 許竣皓 砍去 形成了20點傷害 ==> 許竣皓 的剩餘血量:26
許竣皓 揮劍向 甄子丹 砍去 形成了20點傷害 ==> 甄子丹 的剩餘血量:66
-----------------------
甄子丹 擼起了袖子給 許竣皓 一頓胖揍 形成了25點傷害 ==> 許竣皓 的剩餘血量:1
許竣皓 擼起了袖子給 甄子丹 一頓胖揍 形成了25點傷害 ==> 甄子丹 的剩餘血量:41
-----------------------
甄子丹 抄起衝鋒槍就是一梭子, 許竣皓 走位風騷, 輕鬆躲過 形成了0點傷害 ==> 許竣皓 的剩餘血量:1
許竣皓 準備剛正面, 對 甄子丹 使出一記"如來神掌" 形成了30點傷害 ==> 甄子丹 的剩餘血量:11
-----------------------
甄子丹 準備剛正面, 對 許竣皓 使出一記"如來神掌" 形成了30點傷害 ==> 許竣皓 的剩餘血量:-29
許竣皓 慘敗 -_-||
三局兩勝中 甄子丹 獲勝!
要不要再來一局? (回覆"是"再來一局, 其餘退出...)
複製代碼
貓哥教你寫爬蟲 000--開篇.md
貓哥教你寫爬蟲 001--print()函數和變量.md
貓哥教你寫爬蟲 002--做業-打印皮卡丘.md
貓哥教你寫爬蟲 003--數據類型轉換.md
貓哥教你寫爬蟲 004--數據類型轉換-小練習.md
貓哥教你寫爬蟲 005--數據類型轉換-小做業.md
貓哥教你寫爬蟲 006--條件判斷和條件嵌套.md
貓哥教你寫爬蟲 007--條件判斷和條件嵌套-小做業.md
貓哥教你寫爬蟲 008--input()函數.md
貓哥教你寫爬蟲 009--input()函數-人工智能小愛同窗.md
貓哥教你寫爬蟲 010--列表,字典,循環.md
貓哥教你寫爬蟲 011--列表,字典,循環-小做業.md
貓哥教你寫爬蟲 012--布爾值和四種語句.md
貓哥教你寫爬蟲 013--布爾值和四種語句-小做業.md
貓哥教你寫爬蟲 014--pk小遊戲.md
貓哥教你寫爬蟲 015--pk小遊戲(全新改版).md
貓哥教你寫爬蟲 016--函數.md
貓哥教你寫爬蟲 017--函數-小做業.md
貓哥教你寫爬蟲 018--debug.md
貓哥教你寫爬蟲 019--debug-做業.md
貓哥教你寫爬蟲 020--類與對象(上).md
貓哥教你寫爬蟲 021--類與對象(上)-做業.md
貓哥教你寫爬蟲 022--類與對象(下).md
貓哥教你寫爬蟲 023--類與對象(下)-做業.md
貓哥教你寫爬蟲 024--編碼&&解碼.md
貓哥教你寫爬蟲 025--編碼&&解碼-小做業.md
貓哥教你寫爬蟲 026--模塊.md
貓哥教你寫爬蟲 027--模塊介紹.md
貓哥教你寫爬蟲 028--模塊介紹-小做業-廣告牌.md
貓哥教你寫爬蟲 029--爬蟲初探-requests.md
貓哥教你寫爬蟲 030--爬蟲初探-requests-做業.md
貓哥教你寫爬蟲 031--爬蟲基礎-html.md
貓哥教你寫爬蟲 032--爬蟲初體驗-BeautifulSoup.md
貓哥教你寫爬蟲 033--爬蟲初體驗-BeautifulSoup-做業.md
貓哥教你寫爬蟲 034--爬蟲-BeautifulSoup實踐.md
貓哥教你寫爬蟲 035--爬蟲-BeautifulSoup實踐-做業-電影top250.md
貓哥教你寫爬蟲 036--爬蟲-BeautifulSoup實踐-做業-電影top250-做業解析.md
貓哥教你寫爬蟲 037--爬蟲-寶寶要聽歌.md
貓哥教你寫爬蟲 038--帶參數請求.md
貓哥教你寫爬蟲 039--存儲數據.md
貓哥教你寫爬蟲 040--存儲數據-做業.md
貓哥教你寫爬蟲 041--模擬登陸-cookie.md
貓哥教你寫爬蟲 042--session的用法.md
貓哥教你寫爬蟲 043--模擬瀏覽器.md
貓哥教你寫爬蟲 044--模擬瀏覽器-做業.md
貓哥教你寫爬蟲 045--協程.md
貓哥教你寫爬蟲 046--協程-實踐-吃什麼不會胖.md
貓哥教你寫爬蟲 047--scrapy框架.md
貓哥教你寫爬蟲 048--爬蟲和反爬蟲.md
貓哥教你寫爬蟲 049--完結撒花.mdhtml