有一款卡牌游戏,可以通过浏览器(通过WebGL应用程序)或Steam玩。我想通过开发一个可以自动玩这个游戏的机器人来提升我的机器学习技能。我认为开发者没有提供用于此目的的API。
我能以某种方式做到吗?如何从游戏应用程序中获取数据(例如,从“截图”中捕获数据)?
回答:
从截图中读取数据是可能的,但你需要识别每一张卡。例如,你可以获取每张卡上几个像素的颜色值,并将组合映射到卡片上。根据卡片的数量和每张卡片的不同程度,你需要更多或更少的像素。有了这个数据库,你需要检查屏幕上每张卡可能放置的位置(假设卡片总是放在相同的位置),并检查像素以找到已玩的卡。你还需要一个类似的过程来获取机器人需要的其他相关信息(例如,玩家和敌人的生命值)。
这里有一个关于此过程的Python教程:https://code.tutsplus.com/tutorials/how-to-build-a-python-bot-that-can-play-web-games–active-11117
另一种选择是从计算机内存中查找值。恐怕我无法为此提供任何帮助。
不过要小心,开发/使用机器人肯定违反游戏的条款和条件,如果被开发者检测到,可能会导致封禁。