java模拟炉石传说

William Jing 2016-07-24 02:58:00
不知CSDN里有没有小伙伴知道炉石传说这款游戏,我想用java模拟一下它。
目前只是有点思路,先简单的把整个框架搞好。
目前的进度:
工程名:HearthStone
类:
父类 Card
子类 Minion extends Card
Spell extends Card //法术牌
Weapon extends Card
这里是说明了一些基本情况 类中的属性有机会再说


目前遇到情况就是 随从牌的一些属性 战吼 亡语 冲锋...这些东西怎么处理?有的卡牌同时拥有很多属性,这又怎么处理?
如果有人对这个小程序有兴趣 可以联系我 我们一起把他搞搞好...


...全文
677 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
William Jing 2016-09-15
  • 打赏
  • 举报
回复
谢谢大家的热情,感觉这游戏真的不是很容易就模拟出来的,现在楼主上班了,很少空闲时间去琢磨这个的实现。
sky_08_06_02 2016-08-19
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
玩过,想法很赞。我觉得你可以先写几张牌试试,再慢慢扩充提取共性用接口实现
Faker_Y 2016-08-19
  • 打赏
  • 举报
回复
共有的属性 用接口
xiaotao131 2016-08-19
  • 打赏
  • 举报
回复
没玩过这个游戏但是觉得随从牌的一些属性 战吼 亡语 冲锋可以用接口实现
HerveyHall 2016-08-19
  • 打赏
  • 举报
回复
出的牌应该会放入队列,另外据说暴雪有个强大的检索算法,抽牌应该是随机的。随从触发事件的顺序应该是战吼、抉择、发现等效果在最前面,然后上场将牌的实例放入队列,然后加载各种属性(如圣盾、嘲讽、风怒、过载、冲锋等等),之后根据不同情况触发队列中存活属性为true的随从牌的事件,亡语效果应该是存活属性变化为false后触发;法术牌和武器牌也应该会被放入同一个队列,需要的时候就判断一下。 当然只是猜测,另外游戏中还应该有一些额外的计数器,比如克苏恩的属性值什么的。
dzq584462393 2016-07-24
  • 打赏
  • 举报
回复
顶一下,顶第二下
基于C++的炉石传说机器人.zip ######准备写个炉石传说自动战斗AI,准备采用图像识别技术进行模拟 一些问题: 1.图像的采集 2.图像的查找比较 3.控制鼠标操作 4.识别卡牌费用 test 1 图像的采集 思路: 获取炉石传说程序的句柄 2.通过句柄获取窗口 3.获取窗口像素 查找资料并实验得到有两种方法: 方法一:获取窗口后,使用bitblt函数进行窗口函数拷贝,缺点是窗口不能有遮挡 方法二:使用printWindows 函数获取窗口图像,缺点是该函数是xp下专用,win10上对于有些窗口会无法获取图像,得到黑屏 经测试,炉石传说可以使用第二张方法,代码见test/getWindowsImage.cpp test 2 图像的查找比较 思路: 1.获取当前画面 2.读取待比较bmp 3.比较 已知方法: 方法一:逐像素,判断rgb差值,缺点慢,优点准确 代码见 test/findSubImage.cpp 方法二:采用相似图像比较分方法,比如pHash等,未测试 test 3 控制鼠标操作 思路: 1.获取目标窗口句柄 2.给目标窗口发送消息 3.获取鼠标在窗口的位置 已知方法: 方法一:使用sendMessage 或者postMessage函数向炉石程序发送消息 方法二:使用mouse_event模拟鼠标行动 经测试,炉石传说对方法一的消息不响应,即使设置窗口为SetForegroundWindow 故采用第二种方式,第二种方式要求窗口在最前面,且固定位置,因此将窗口移到左上角,固定分辨率。代码见test/controlMouse.cpp test 4 识别卡牌费用 有2种方法,代码见test/HStest.cpp: 方法一:使用图像查找比较的方法。经测试,有如下问题: 1.图片大小不好统一 2.图片背景因为有粒子的变化,变动较大 3.费用在某些条件下会更改并改变颜色 方法二:使用数字识别的方法。 有2个场景需要识别费用: 场景一:发牌换牌阶段 此阶段,背景为黑色,便于分离。流程:灰度化,阈值成二值图像,轮廓提取,测试得到卡牌的轮廓范围,近似矩形,得到卡牌数(得到先手还是后手),根据轮廓得到每个卡牌,对每个卡牌的左上角进行灰度处理,阈值化,轮廓提取,得到数字图像。使用数字识别的方法进行判断。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧