米第二题,记录一下

有空检查一下还有哪里有纰漏,过了90,想了一天也没想通。。
import string
import sys
from copy import copy


def normalDamage(att,defend):
    if att-defend>=0:
        return att-defend
    else:
        return 0
def yuanSuDamae(att):
    return att
def qjgetMoreAtt(qjOriginHp,qjTmpHp,qjOriginAtt):
    dif=0
    if qjOriginHp>=qjTmpHp:
        dif=qjOriginHp-qjTmpHp
    else:
        dif=0
    morAtt=dif//5
    resAtt=qjOriginAtt+morAtt
    return resAtt
def roundCurrent(list1,list2):
    qjOriginHp=copy(list2[0])
    qjOriginAtt=copy(list2[1])
    wewHp=list1[0]
    wewAtt=list1[1]
    wewDef=list1[2]
    wewSpd=list1[3]
    qjHp=list2[0]
    qjAtt=list2[1]
    qjDef=list2[2]
    qjSpd=list2[3]
    round=0
    wewZhudong=0
    qjZhudong=0
    qjIsXiuXi=0
    qjIsHunLuan=0
    wewBeidongIsUsed=0
    while wewHp>0 and qjHp>0:
        round+=1
        #wew优先
        if wewSpd>qjSpd:
            #wew的回合
            if round%3==0:
                wewZhudong=1
                qjZhudong=1
            else:
                wewZhudong=0
                qjZhudong=0
            if wewBeidongIsUsed==0:
                if wewHp<31:
                    wewHp+=20
                    qjHp+=20
                    wewAtt+=15
                    wewBeidongIsUsed=1
            if wewZhudong==0:
                damage=normalDamage(wewAtt,qjDef)
                qjHp-=damage
                if qjHp<=0:
                    return 0
            else:
                damage=normalDamage(wewAtt,qjDef)
                qjHp-=damage
                qjIsHunLuan=1
                if qjHp<=0:
                    return 0
            #qj的回合
            if qjIsXiuXi==1:
                qjIsXiuXi=0
            else:
                resAtt=qjgetMoreAtt(qjOriginHp,qjHp,qjOriginAtt)
                qjAtt=resAtt
                if qjZhudong==0&nbs***bsp;(qjZhudong==1 and qjHp<11):
                    if qjIsHunLuan==1:
                        damage=normalDamage(qjAtt,qjDef)
                        qjHp-=damage
                        if qjHp<=0:
                            return 0
                    else:
                        damage=normalDamage(qjAtt,wewDef)
                        wewHp-=damage
                        if wewHp<=0:
                            return 1
                else:
                    qjHp-=10
                    damage=normalDamage(45,wewDef)+20
                    wewHp-=damage
                    if wewHp<=0:
                        return 1
                    qjIsXiuXi=1
        #qj优先
        else:
            #qj的回合
            if qjIsXiuXi==1:
                qjIsXiuXi=0
            else:
                resAtt=qjgetMoreAtt(qjOriginHp,qjHp,qjOriginAtt)
                qjAtt=resAtt
                if qjZhudong==0&nbs***bsp;(qjZhudong==1 and qjHp<11):
                    if qjIsHunLuan==1:
                        damage=normalDamage(qjAtt,qjDef)
                        qjHp-=damage
                        if qjHp<=0:
                            return 0
                    else:
                        damage=normalDamage(qjAtt,wewDef)
                        wewHp-=damage
                        if wewHp<=0:
                            return 1
                else:
                    qjHp-=10
                    damage=normalDamage(45,wewDef)+20
                    wewHp-=damage
                    if wewHp<=0:
                        return 1
                    qjIsXiuXi=1
            #wew的回合
            if round%3==0:
                wewZhudong=1
                qjZhudong=1
            else:
                wewZhudong=0
                qjZhudong=0
            if wewBeidongIsUsed==0:
                if wewHp<31:
                    wewHp+=20
                    qjHp+=20
                    wewAtt+=15
                    wewBeidongIsUsed=1
            if wewZhudong==0:
                damage=normalDamage(wewAtt,qjDef)
                qjHp-=damage
                if qjHp<=0:
                    return 0
            else:
                damage=normalDamage(wewAtt,qjDef)
                qjHp-=damage
                qjIsHunLuan=1
                if qjHp<=0:
                    return 0

times = int(input())
for i in range(times):
    list1=list(map(int,input().strip().split()))
    # print(list1)
    list2=list(map(int,input().strip().split()))
    # print(list2)
    res=roundCurrent(list1,list2)
    if res==0:
        print("I love V2V forever!")
    else:
        print("Kalpas yame te!")


全部评论
现场手撕代码吗
点赞 回复 分享
发布于 2022-08-08 16:43

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务