sc2小时:星际争霸II机器人API接口

[飞行情报员,游戏,图书馆,网络,程序][建议标签]

模块

  • 控制
    • 影响
      • 控制。影响。登录中
      • 模式
        • 控制。效果。模式。信仰
        • 控制。影响。模式。知识
  • 网络
    • 补充条款2
      • 网络SC2.Agent

下载

注意:此软件包具有元数据修订在阴谋集团的描述中比tarball中包含的更新。要打开包含修订的包,请使用“cabal-get”。

维修人员角落

包装维护人员

对于包维护者和黑客托管者

候选人

  • 没有候选人
版本[RSS公司] 0.1.0.0
依赖关系 基础(>=4.12&&<5),字节删除(>=0.10),容器(>=0.6),目录(>=1.3),,文件路径(>=1.4),自由-简单(>=1.2),吉特雷夫(>=1.3),透镜,透镜标签(>=0.3),原叶动物(>=0.4),sc2-低电平,sc2-原型,sc2支持,sc2小时,文本(>=1.2)[详细信息]
许可证 LicenseRef-其他许可证
作者 苏菲·泰勒<索菲@spacekitteh.moe>
维护人员 苏菲·泰勒<索菲@spacekitteh.moe>
修订过的 修订版1制造商太空基特2019-02-06T08:40:09Z
类别 网络,外国金融机构,游戏
主页 https://gitlab.com/spacekitteh/sc2hs网址
源回购 头部:git克隆https://gitlab.com/spacekitteh/sc2hs网址
已上传 通过太空基特2019-02-06T06:44:32Z
分配
可执行程序 sc2hs演示
下载 总计591人(过去30天内有4人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 文档不可用[生成日志]
截至2019-02-08,所有报告的生成均失败[所有3份报告]

sc2hs-0.1.0.0自述文件

[返回包描述]

sc2hs:StarCraft II API的Haskell绑定

介绍

sc2小时是星际争霸II的基于效果的API。目前,该API相当小,基本上足以让worker rush bot工作,但框架已经存在。

例子

下面是API的一个快速示例!

--命令一名工人冲向第一帧。workerRush::成员日志记录r=>效率(代理':r)()--1workerRush=完成更新观察结果--2单位<-工人--3位置<-enemyStart位置--4单位“攻击”(头部锁定)--5日志消息1“工人匆忙^_^”循环::成员日志记录r=>效率(代理':r)()循环=do步骤--6状态<-getStatus--7案例状态结束->logMessage 1“游戏结束”_->循环

让我们看看它的作用:

  1. 与SC2交互的实体是使用代理人效果。这大致是API的级别,例如,蟒蛇sc2.
  2. 更新观察结果要求SC2发送所有信息代理人可以合法地知道并处理结果。每一次游戏都应该调用一次。
  3. 工人是一个返回玩家工作单位(SCV/无人机/探测器)列表的函数
  4. 能源开始位置检索敌人可能的起始位置列表,这是地图的属性。
  5. 攻击是围绕订单,指示单位使用技能。攻击只是创建了一个订单使用指定的单位和给定的目标明确,可以是点或指定单位。
  6. 告诉SC2准备好进入下一场比赛。这仅在非实时模式下有用。
  7. 获取状态返回协议状态机的状态。

安装

所需依赖项

  • 堆栈
  • protoc(来自protobuf包)也必须在您的路径中
  • 如果你想真正运行它,那么你需要安装星际争霸II。

窗户

我想就是这样。

Linux操作系统

强烈建议使用尼克斯。如果没有,请确保您也有可用的zlib头。

雨衣

不知道。有人告诉我!

编译前

由于proto-lens-protoc 0.4.0.1中的一个错误,当名称中有下划线时,枚举生成被中断。因此,必须将sc2-proto中的补丁应用于s2client-proto子模块。

汇编

堆栈构建

运行演示应用程序

首先,启动SC2并手动创建游戏。那么,做吧堆栈运行.

这应该会运行演示机器人,它启动一个游戏,选择可用地图中的第9张地图,并作为神族玩家与随机的中型计算机玩家进行对抗。

设计

sc2小时分为几个包:

图形BTsc2-proto-->sc2-低电平sc2-支持-->sc2-低电平sc2-协议-->sc2hssc2支持-->sc2hssc2-低电平-->sc2hssc2-低级-->sc2hs-demosc2hs-->sc2hs-demo

sc2-原型

sc2-原型是一个围绕SC2 protobuf API描述自动生成的包装器库。

sc2支持

sc2支持包含基本的SC2相关定义,如各种目录,以及一个Template Haskell模块,该模块生成数据类型和函数,将用于引用单位、能力、升级、buff和效果的原始整数转换为更可用的形式。它通过解析stableid.json公司,仅在使用API运行SC2至少一次后创建。因此,它还包括一个备份副本,可能已经过期;但它不应该经常改变。

最终,目标是sc2支持使用从SC2编辑器中提取的余额数据获取的属性来增加此数据,但如何做到这一点当它随每个补丁发生变化时,仍有待解决。

sc2-低电平

sc2-低电平处理启动游戏、管理其进程、连接游戏以及在protobuf API逻辑层进行通信。它还具有一些高级类型,供sc2小时。协议状态机使用Effect建模。

sc2小时

sc2小时网络SC2.Agent模块。这定义了一个效果,代理人,它提供了对低级协议的抽象。目前它只使用Raw接口,但其目标是使用来自功能层接口和UI的数据对其进行扩充。

sc2hs演示

演示应用程序展示了如何创建一个基本的机器人并在游戏中使用它。

贡献

目前的重点是通过将更多的protobuf协议转换为可请求的中的sc2-低电平,并进入代理人效果。那将是一个作出贡献的好地方;然而,其他任何地方的贡献都是非常受欢迎的!😻