【自玩】王者荣耀模拟器V1

项目背景

单排上王者太难,经常连输4局以上才能赢一局,目前仍和赛季初一样星耀三。感觉匹配机制不好,应改为玩的好的匹配玩的好的,玩的差的匹配玩的差的,其实50%是公平但不是最合理的设置值,玩家可能更希望通过游戏来达到放松的目的而不是生气更多,游戏甚至不应该产生生气的情绪,更别提发火了。

模拟器实验

# 初始数据
# https://pvp.qq.com/web201605/herodetail/166.shtml网站展示只有条形图,没有具体数值
# 通过F12获取元素的bar width百分比 换算为具体的数值
life_bar = 6000  # bar满血量
attack_bar = 500  # bar满攻击
attack_speed = 1  # 1秒一次普攻
money = 300  # 初始金币
# 列表的值分别对应life和attack值
hero = {
    'YaSe': [0.8, 0.3],
    'HuangZhong': [0.4, 0.9],
    'HanXin': [0.2, 0.7],
    'LiBai': [0.4, 0.7],
}
equipment = {
    'JiSuZhanXue': {
        'move_speed': 60,
        'attack_speed': 0.25,  # 加攻速比例0.25
        'price': 710,
        'sell': 426,
    },
    'PoJun': {
        'attack': 180,
        'BeiDong': 'life<50%增加30%的attack',
        'price': 2950,
        'sell': 1770,
    }
}
# 游戏匹配
pass
print("匹配成功")
# 游戏选英雄
hero_select = input('请选择您的英雄'+str(list(hero.keys()))+'\n')
life_select = life_bar*hero[hero_select][0]
attack_select = attack_bar*hero[hero_select][1]
print("您选择的英雄是%s"%hero_select)
print("英雄血量%.2f 攻击力%.2f"%(life_select,attack_select))
hero_enermy = np.random.choice(list(hero.keys()),1)[0]
life_enermy = life_bar*hero[hero_enermy][0]
attack_enermy = attack_bar*hero[hero_enermy][1]
print("您对战的英雄是%s"%hero_enermy)
print("英雄血量%.2f 攻击力%.2f"%(life_enermy,attack_enermy))
# 游戏对战
step = 0
while(not (life_select<=0 or life_enermy<=0)):
    print('TimeStep %d'%step)
    step+=1
    life_select-=attack_enermy
    life_enermy-=attack_select
    print("     %s血量:%.2f"%(hero_select,max(life_select,0)))
    print("     %s血量:%.2f"%(hero_enermy,max(life_enermy,0)))
    if life_select<=0 and life_enermy<=0:
        print("# %s与%s同归于尽"%(hero_select,hero_enermy))
    else:
        print("# Victory! %s打败了%s"%(hero_select,hero_enermy)) if life_enermy<=0 else \
            print("# Defeated! %s打败了%s"%(hero_enermy,hero_select)) if life_select<=0 else "Do nothing"

模拟结果

D:\Softwares\Anaconda\envs\tf21\python.exe 
匹配成功
请选择您的英雄['YaSe', 'HuangZhong', 'HanXin', 'LiBai']
LiBai
您选择的英雄是LiBai
英雄血量2400.00 攻击力350.00
您对战的英雄是YaSe
英雄血量4800.00 攻击力150.00
TimeStep 0
     LiBai血量:2250.00
     YaSe血量:4450.00
TimeStep 1
     LiBai血量:2100.00
     YaSe血量:4100.00
TimeStep 2
     LiBai血量:1950.00
     YaSe血量:3750.00
TimeStep 3
     LiBai血量:1800.00
     YaSe血量:3400.00
TimeStep 4
     LiBai血量:1650.00
     YaSe血量:3050.00
TimeStep 5
     LiBai血量:1500.00
     YaSe血量:2700.00
TimeStep 6
     LiBai血量:1350.00
     YaSe血量:2350.00
TimeStep 7
     LiBai血量:1200.00
     YaSe血量:2000.00
TimeStep 8
     LiBai血量:1050.00
     YaSe血量:1650.00
TimeStep 9
     LiBai血量:900.00
     YaSe血量:1300.00
TimeStep 10
     LiBai血量:750.00
     YaSe血量:950.00
TimeStep 11
     LiBai血量:600.00
     YaSe血量:600.00
TimeStep 12
     LiBai血量:450.00
     YaSe血量:250.00
TimeStep 13
     LiBai血量:300.00
     YaSe血量:0.00
# Victory! LiBai打败了YaSe

Process finished with exit code 0

项目结果

根据官网的数据,不使用技能的情况下李白竟能击败亚瑟。

项目改进

1.匹配机制加入
2.技能机制加入
3.对局装备购买
4.多人对战机制

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据李菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值