PY常规课卡牌对决
2024-08-15 16:30:40
发布于:广东
好像是第18课(我改了改)
import random
print( "------卡牌对决------")
card1={"名称":"亚瑟","攻击":5643,"防御":4329,"敏捷":4,"攻击距离":3}
card2={"名称":"后羿","攻击":5875,"防御":4172,"敏捷":5,"攻击距离":8}
card3={"名称":"凯","攻击":6248,"防御":3366,"敏捷":5,"攻击距离":3}
card4={"名称":"太乙真人","攻击":3749 ,"防御":6363,"敏捷":7,"攻击距离":4}
card5={"名称":"扁鹊","攻击":4557,"防御":5492,"敏捷":6,"攻击距离":7}
card6={"名称":"白起","攻击":8149,"防御":3284,"敏捷":4,"攻击距离":3}
card7={"名称":"干将莫邪","攻击":6342,"防御":3284,"敏捷":4,"攻击距离":5}
card8={"名称":"作者","攻击":100000,"防御":18534,"敏捷":8,"攻击距离":6}
card9={"名称":"钟馗","攻击":5723,"防御":6284,"敏捷":4,"攻击距离":5}
card10={"名称":"核弹发射基地","攻击":13928,"防御":20,"敏捷":1,"攻击距离":10}
card11={"名称":"王者兵团","攻击":7856,"防御":6745,"敏捷":6,"攻击距离":8}
card12={"名称":"安其拉","攻击":5764,"防御":6485,"敏捷":5,"攻击距离":8}
card13={"名称":"马云","攻击":8888,"防御":4745,"敏捷":6,"攻击距离":8}
card14={"名称":"鲁班七号","攻击":4125,"防御":5619,"敏捷":5,"攻击距离":8}
card15={"名称":"元歌","攻击":5372,"防御":6735,"敏捷":4,"攻击距离":8}
card16={"名称":"防御中心","攻击":0,"防御":999999999,"敏捷":0,"攻击距离":0}
card17={"名称":"老师","攻击":8932,"防御":8352,"敏捷":10,"攻击距离":9}
card18={"名称":"机器人","攻击":8574,"防御":7000,"敏捷":3,"攻击距离":7}
card19={"名称":"领主","攻击":12451,"防御":6745,"敏捷":8,"攻击距离":9}
card20={"名称":"孙悟空","攻击":78231,"防御":8548,"敏捷":9,"攻击距离":6}
card21={"名称":"猪八戒","攻击":9463,"防御":3476,"敏捷":4,"攻击距离":5}
card22={"名称":"沙悟净","攻击":8754,"防御":5245,"敏捷":5,"攻击距离":3}
card23={"名称":"金蝉","攻击":6243,"防御":3467,"敏捷":8,"攻击距离":2}
print("""规则:
1.双方初始血量:10000
2.攻击力:2000~10000
3.对决之前,双方随机获得3张卡牌
4.每回合双方派出1张卡牌出战,对决后,出战卡牌消失,并重新抽取1张卡牌
5.敏捷高的一方进行攻击,对方根据自身卡牌的防御力,扣除血量
6.接着敏捷低的一方进行反击,对方根据自身卡牌的防御力,扣除血量
7.血量低于0的一方输掉比赛
""")
#血量
playerHp= 10000
enemyHp= 10000
#卡池
cards=[card1,card2,card3,card4,card5,card6,card7,card8,card9,card10,card11,card12,card13,card14,card15,card16,card17,card18,card19,card20,card21,card22,card23]
#抽取卡牌
playerCards=[]
enemyCards=[]
for i in range(3):
a=random.randint(0,len(cards)-1)
playerCards.append(cards[a])
b=random.randint(0,len(cards)-1)
enemyCards.append(cards[b])
while True:
#卡牌展示
print("我方卡牌")
for i in playerCards:
print(i)
#我方出牌
playerSelest = input("派哪位英雄出战:")
playerC=playerCards[int(playerSelest)-1]
print("我方派出了:"+playerC["名称"])
#敌方出牌
enemySelect=random.randint(0,len(enemyCards)-1)
enemyC=enemyCards[enemySelect]
print("敌方派出了:"+enemyC["名称"])
#我方攻击
if playerC["敏捷"]>enemyC["敏捷"]:
print("我方发起攻击!")
playerHurt=playerC["攻击"]-enemyC["防御"]*1.2
if playerHurt<0:
playerHurt=0
enemyHp=enemyHp-playerHurt
if enemyHp<=0:
print("对决结束,敌方入地,我方获胜!")
break
else:
print("我方造成伤害:"+str(playerHurt)+",敌方剩余血量:"+str(enemyHp))
#敌方反击
if enemyC["攻击距离"]>=playerC["攻击距离"]:
print("敌方发起反击!")
enemyHurt=enemyC["攻击"]-playerC["防御"]*1.2
if enemyHurt<0:
enemyHurt=0
playerHp=playerHp-enemyHurt
if playerHp <= 0:
print("对决结束,我方升天堂,我方失败!")
break
else:
print("敌方造成伤害:" + str(enemyHurt) + ",我方剩余血量:" + str(playerHp))
#敌方先攻击
elif playerC["敏捷"]<enemyC["敏捷"]:
print("敌方发起攻击!")
enemyHurt=enemyC["攻击"]-playerC["防御"]*1.2
if enemyHurt<0:
enemyHurt=0
playerHp=playerHp-enemyHurt
if playerHp <= 0:
print("对决结束,我方升天,我方失败!")
break
else:
print("敌方造成伤害:" + str(enemyHurt) + ",我方剩余血量:" + str(playerHp))
#我方反击
if playerC["攻击距离"]>=enemyC["攻击距离"]:
print("我方发起反击!")
playerHurt=playerC["攻击"]-enemyC["防御"]*1.2
if playerHurt<0:
playerHurt=0
enemyHp=enemyHp-playerHurt
if enemyHp<=0:
print("对决结束,敌方入地狱,我方获胜!")
break
else:
print("我方造成伤害:"+str(playerHurt)+",敌方剩余血量:"+str(enemyHp))
#不攻击
else:
print("对方跑得太快,追不上!")
# 删除卡牌
playerCards.remove(playerC)
enemyCards.remove(enemyC)
# 补充卡牌
a = random.randint(0, len(cards) - 1)
playerCards.append(cards[a])
b = random.randint(0, len(cards) - 1)
enemyCards.append(cards[b])
#魔法泉
spring=random.randint(1,100)
if spring<=30:
print("魔法泉发动!")
magic=random.randint(1,100)
if magic <=50:
print("攻击力低于5000的卡牌获得:作者祝福")
for i in cards:
if i["攻击"]<5000:
i["buff"]="作者祝福"
if magic<=50 and magic>=70:
print("攻击力低于5000的卡牌获得:新冠病毒")
for i in cards:
if i["攻击"]>=0:
i["buff"]="新冠病毒"
else:
print("攻击力高于7000的卡牌受到:咒怨侵蚀")
for i in cards:
if i["攻击"]<7000:
i["buff"]="咒怨侵蚀"
else:
print("魔法泉很安静!")
#buff
for i in cards:
if "buff"in i:
if i["buff"]=="作者祝福":
i["防御"]*=2
if i["buff"]=="新冠病毒":
i["防御"]=0
i["攻击"]=0
elif i["buff"]=="咒怨侵蚀":
i["攻击"]*=0.8
if i["攻击"]<0:
i["攻击"]=0
全部评论 1
6
2024-08-17 来自 澳大利亚
0
有帮助,赞一个