在原来的基础上, 进行了全新的改版
首先, 增长了更多的随机因素, 好比每次攻击的伤害都是随机的
其次, 肯定了先发优点的随机分配
最后, 你死我活不可能有平局...
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