猫史档案馆


【Python作品分享】卡牌对决【作品秀】

用户:中华狸花猫核爆版中华狸花猫核爆版查看:1 回复:2 评论:1 创建时间:2023-01-04T11:21:37


【作品展示】

center_image

 

【作品介绍】

卡牌对决,需要的拿去。记得注明作者。

 

【作品源代码】

import random



print('-- -- -- 卡牌对决 -- -- --')

card1 = {'名称': '诺兹多姆', '攻击力': 5000, '防御力': 4000, '敏捷': 40}
card2 = {'名称': '阿莱克斯塔萨', '攻击力': 3000, '防御力': 2000, '敏捷': 60}
card3 = {'名称': '伊瑟拉', '攻击力': 2000, '防御力': 6000, '敏捷': 30}
card4 = {'名称': '玛里苟斯', '攻击力': 2000, '防御力': 4000, '敏捷': 50}
card5 = {'名称': '耐萨里奥', '攻击力': 6000, '防御力': 2000, '敏捷': 20}


print("""规则:
1、双方初始血量:10000
2、对决之前,双方随机获得3张卡牌
3、每回合双方派出1张卡牌出战,对决后,出战卡牌消失,并重新抽取1张卡牌
4、敏捷高的一方进行攻击,对方根据自身卡牌的防御力,扣除血量
5、接着敏捷低的一方进行反击,对方根据自身卡牌的防御力,扣除血量
6、血量低于0的一方输掉比赛""")

# 血量
pHP = 10000
eHP = 10000

# 卡池
cards = [card1, card2, card3, card4, card5]

# 抽卡
pcs = []
ecs = []
for i in range(3):
    a = random.randint(0, (len(cards) - 1))
    pcs.append(cards[a])
    b = random.randint(0, (len(cards) - 1))
    ecs.append(cards[b])
while (eHP > 0 and pHP > 0):
    # 出卡
    for i in pcs:
        print(i)
    ps = input('出卡:')
    pc = pcs[(int(ps) - 1)]
    print(('我出:' + pc['名称']))
    es = random.randint(0, (len(ecs) - 1))
    ec = ecs[es]
    print(('敌出:' + ec['名称']))
    # 对战
    if (pc['敏捷'] > ec['敏捷']):
        # 我攻
        print('我攻')
        ph = (pc['攻击力'] - ec['防御力'])
        if (ph < 0):
            ph = 0
        eHP -= ph
        print(((('伤害' + str(ph)) + '敌方血量') + str(eHP)))
        # 反击
        print('敌攻')
        eh = (ec['攻击力'] - pc['防御力'])
        if (eh < 0):
            eh = 0
        pHP -= eh
        print(((('伤害' + str(eh)) + '我方血量') + str(pHP)))
        # 删除
        pcs.remove(pc)
        ecs.remove(ec)
        # 抽卡
        a = random.randint(0, (len(cards) - 1))
        pcs.append(cards[a])
        b = random.randint(0, (len(cards) - 1))
        ecs.append(cards[b])
    elif (pc['敏捷'] < ec['敏捷']):
        print('敌攻')
        eh = (ec['攻击力'] - pc['防御力'])
        if (eh < 0):
            eh = 0
        pHP -= eh
        print(((('伤害' + str(eh)) + '我方血量') + str(pHP)))
        # 我攻
        print('我攻')
        ph = (pc['攻击力'] - ec['防御力'])
        if (ph < 0):
            ph = 0
        eHP -= ph
        print(((('伤害' + str(ph)) + '敌方血量') + str(eHP)))
        # 删除
        pcs.remove(pc)
        ecs.remove(ec)
        # 抽卡
        a = random.randint(0, (len(cards) - 1))
        pcs.append(cards[a])
        b = random.randint(0, (len(cards) - 1))
        ecs.append(cards[b])
    else:
        print('不攻')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
封号中的账号封号中的账号

import random, time

print('loading...')
time.sleep(3)
cards = ['万里江山',
         '泼水节',
         '十万大军',
         '火焰熊熊']# 这个列表可以根据个人喜好改动

HP = 100 # 这个变量可以根据游戏难度进行调整
enemy_HP = 250# 这个变量同样可以进行调整
_card = True

while True:
    card = input('出牌')
    if card in cards:
        if card == '万里江山':
            HP += (HP // 100) * 20
            time.sleep(1.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        elif card == '泼水节':
            enemy_HP -= (enemy_HP + ((enemy_HP // 100)* 25))
            time.sleep(1.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        elif card == '十万大军':
            enemy_HP -= 125
            time.sleep(2.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        else:
            enemy_HP -= 75
            time.sleep(5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
    else:
        print(card + '不是游戏中卡牌')
        continue
    card = random.choice(cards)
    if card in cards:
        if card == '万里江山':
            enemy_HP += (enemy_HP // 100) * 20
            time.sleep(1.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        elif card == '泼水节':
            enemy_HP -= (enemy_HP + ((enemy_HP // 100)* 25))
            time.sleep(1.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        elif card == '十万大军':
            HP -= 125
            time.sleep(2.5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
        else:
            HP -= 75
            time.sleep(5)
            print('你的血量:' + str(HP))
            print('敌人血量:' + str(enemy_HP))
    time.sleep(7.5)
    print('敌人出牌:' + card)
    if HP <= 0:
        print('你死了')
        break
    elif enemy_HP <= 0:
        print('Victory!!!')
        break
    else:
        pass

点赞1


评论


虚伪_der_面具虚伪_der_面具

666

点赞0


评论