学习笔记(2):steemmonsters对战模拟器学习

in #spt5 years ago (edited)

https://github.com/Bauloewe/SM_Simulation

@Bauloewe写了一个steemmonsters对战模拟器,虽然里面BUG很多,但是也是非常有参考价值的模拟器。

研究学习一下怎么用模拟器:

#加载库
import time
from api import Api
from Team import Team
from Simulation import SteemMonstersSimulation
import Simulation
import copy

首先加载各种库

#实例化类
api = Api()

#这个是禁止的召唤士
noinactive=""
#这是规则
ai=""
#玩家名字
player="maiyude"
player2="robot"


b1=0
kk=1
zhunque=0

#team1队伍
#怪兽信息都是这个格式{'id': 74, 'level': 2},ID加等级
# 召唤士信息
summoner = {'id': 74, 'level': 2}
monsters = [{'id': 82, 'level': 4},{'id': 48, 'level': 1},{'id': 143, 'level': 1}]



#team2队伍
# 召唤士信息
summoner2 = {'id': 74, 'level': 2}
monsters2 = [{'id': 131, 'level': 3},{'id': 80, 'level': 1},{'id': 214, 'level': 1}]




#加载怪兽信息
sm_dict=simulation.load_SM_dict()

#使用Team.py,加载怪兽的各种信息信息
team1x = Team(summoner, monsters, ai, sm_dict, player)
team2x = Team(summoner2, monsters2, ai, sm_dict, "diren")

#实例化类
battle = SteemMonstersSimulation(team1x, team2x, sm_dict, player)

#获得比赛结果
results = battle.simulate_battle()


#这里我自己做了修改,作者的程序不这样
re=copy.deepcopy(results[0])
re1=copy.deepcopy(results[1])

#比赛结果
if re==1:
    print("team1胜利")
else:
    print("team2胜利")

随便写了一个队伍测试了看看。(信息我稍微汉化了一下)

实际研究发现这个模拟器存在很多BUG。
有大量技能是不生效的,以及新怪物的技能也没有。
有存在怪物死亡一次删除了2只的状态。
需要自己慢慢改。

总体就是好过没有,模拟准确率大概在50-80%左右。

Sort:  

According to the Bible, Is it sin against God if a law enforcer is forced to take someone's life in the line of duty?

(Sorry for sending this comment. We are not looking for our self profit, our intentions is to preach the words of God in any means possible.)



Comment what you understand of our Youtube Video to receive our full votes. We have 30,000 #SteemPower. It's our little way to Thank you, our beloved friend.
Check our Discord Chat
Join our Official Community: https://beta.steemit.com/trending/hive-182074

Hi @maiyude!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 3.720 which ranks you at #5559 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 113 contributions, your post is ranked at #56.

Evaluation of your UA score:
  • You're on the right track, try to gather more followers.
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

Hello, I hope English is fine with you. I used Google translator to read your blog post.

Thanks for looking at my simulator :) I'd love to know which bugs you found, so that I can keep improving the simulator.

Regarding the precision of the simulator, I think you can't get better than 70/80% if you don't use the match RNG seed. I haven't added it yet, but might in a future update.

Your work is great, thank you.

I found a few problems:
1.Some skills fail. for example Thorns have failed.
2.miss seem to fail.
3.After the monster dies, it will be deleted repeatedly,The problem is in the following code:

4.No untamed new skills

Thank you :)

  1. I'll look into the skills more thoroughly and clean up my code. Thank you for pointing it out :) There are probably a lot more bugs. I think I need to add more tests to detect those kinds of bugs.

  2. The problem with misses/hits is that they are not deterministic. Whether a monster misses is determined in the match. I'd need to add the seed of a match to my random number generator. And the seed is only known after a match finished. So without the seed, there is some variance there. But I assume that there are some bugs within that part of the code which need fixing :)

  3. That bugs sounds curious. I'll have to take a closer look.

  4. I'm working on the Untamed Skills right now. I've added 70% of them to my local repository. Haven't had time to push it to GitHub. But I'll do that soon.

I hope I'll fix the bugs you've found very soon. Thanks again for taking the time to look at my code :)

I actually came on here to congratulate you @bauloewe on having designed a @splinterlands sim... but I see you're giving that out for free? wow 👏 I guess it's 'simple' but also 'not' ... if you know what I mean. I guess it's depends on the person at the end of the keyboard 😉 As well, I guess impossible to make something '100%' accurate like you say. But still, maybe it's time for me to start learning some python... heh 👍 Right now I am doing a different course but it's been on my mind - certainly would mesh with STEEM well.