Discuss / Python / 实际应用->炉石传说->爆牌贼伤害计算

实际应用->炉石传说->爆牌贼伤害计算

Topic source

回风哥哥

#1 Created at ... [Delete] [Delete and Lock User]

炉石传说里每回合开始会每人发一张牌,牌库加手牌每回合共计30张牌。 当牌库的牌发完,并且依然没有决出胜负,每次被迫抽牌会有疲劳惩罚,第一次1点伤害,第二次2点伤害,第三次3点伤害。。。。。。

初始血量是30点,可以加护甲,所以有时候实际斩杀需要超出30点伤害,偶尔,很少见。

OK,很多时候计算累加伤害靠心算不行的,时间不够,但是如果计算不准确可能导致下回合被对方搞定。

更便民的方式是用各类品牌的计数器,这里刚好看到了这部分,实际做个简单实践:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print('\n没错,死亡计算器,专为爆牌贼编写,快速计算斩杀线!\n')
woundFirst = input('请输入本回合初始疲劳伤害:')
woundCount = input('请输入本回合会造成几次疲劳伤害:')
woundSum = 0
for wound in range(woundFirst, woundCount + 1):
  woundSum += wound
nextSum = woundSum + woundCount +1
print('\n---------- Result ----------')
print('\n本回合可造成疲劳伤害:%s' % woundSum)
print('到对手回合开始可造成伤害:%s' % nextSum)

恩,欢迎大家批评!

战网账号加好友一起娱乐:回风#5583

回风哥哥

#2 Created at ... [Delete] [Delete and Lock User]

哦,忘记一个问题,python 执行代码没问题,python3执行会报格式错误,很好改,加个 int 就好了

回风哥哥

#3 Created at ... [Delete] [Delete and Lock User]

恩,改良版,也方便老外用,打算放到 github 上去,嘿嘿:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print('\n没错,死亡计算器,专为爆牌贼编写,快速计算斩杀线!\n')
woundFirst = int(input('(Please input first penalty wound)\n请输入本回合初始疲劳伤害:'))
woundCount = int(input('(Please input penalty count this round)\n请输入本回合会>造成几次疲劳伤害:'))
woundSum = 0
for wound in range(woundFirst, woundCount + 1):
  woundSum += wound
nextSum = woundSum + woundCount +1
print('\n---------- Result ----------')
print('(Sum wound this round)\n本回合可造成疲劳伤害:%s' % woundSum)
print('(Sum wound the next round begin)\n到对手回合开始可造成伤害:%s' % nextSum)

沉鸢

#4 Created at ... [Delete] [Delete and Lock User]

哈哈哈层主好有趣,但程序有点小问题貌似,最后算出的值不太对额,死亡计算器把自己爆死就不好啦。。。还有英语需要加强额- -#,帮你改了一下:

print('\n没错,死亡计算器,专为爆牌贼编写,快速计算斩杀线!\n')
NxtDmg = int(input('Please input the next fatigue damage\n请输入下一次将要造成的疲劳伤害值:'))
DmgCnt = int(input('Please input the fatigue times caused in this round\n请输入本回合造成的疲劳次数:'))
TDmg = 0
for Dmg in range(NxtDmg, NxtDmg + DmgCnt):
    TDmg += Dmg
MDmg = TDmg + NxtDmg + DmgCnt
print('\n---------- Result ----------')
print('Total fatigue damage in this round\n本回合可造成疲劳伤害:%s' % TDmg)
print('Total fatigue damage after enemy round begin\n到对手回合开始可造成伤害:%s' % MDmg)

其实还有很多地方可以加强,比如说如果这回合对手的牌没爆完呢,这里可以分情况,再或者如果这回合虽然能把对手爆死但是可能也会把自己爆死,所以也可根据自己这回合牌库牌的数量算一下自己的疲劳伤害,虽然现在爆牌贼成隐藏职业了,但还是希望层主可以把它完善好额~


  • 1

Reply