星际争霸2 AI 强化学习环境部署

news/2024/12/18 3:45:32/

星际争霸2 AI 强化学习环境部署

PySC2是DeepMind开发的星际争霸Ⅱ学习环境(SC2LE)的Python组件。 它封装Blizzard Entertainment的星际争霸Ⅱ机器学习API,提供Python 增强学习环境。

1、安装Pysc2

在CMD 下 使用 pip 自动安装
pip install pysc2
并且安装深度学习组件TensorFlow
pip install TensorFlow

2、安装星际争霸II
安装星际争霸II最新版本,

安装目录可以自定义,比如安装到(D:\Game\StarCraft II\),则需要增加如下环境变量:
在这里插入图片描述

3.下载地图
Blizzard github下载地图,放入(D:\Game\StarCraft II\Maps)目录。

4.启动代理

python -m pysc2.bin.agent –map Simple64

在这里插入图片描述
5.作为玩家启动游戏

python -m pysc2.bin.play –map Simple64、

6、不具备学习能力的AI 代理
PySC2提供了一个在MoveToBeacon小游戏中的简单训练脚本AI。MoveToBeacon小游戏,类似各种即时战略游戏新手教程的第一关,就是控制一个机枪兵不停的移动到指定位置。

class MoveToBeacon(base_agent.BaseAgent):
“”“An agent specifically for solving the MoveToBeacon map.”""

def step(self, obs):
super(MoveToBeacon, self).step(obs)
if _MOVE_SCREEN in obs.observation[“available_actions”]:
player_relative = obs.observation[“screen”][_PLAYER_RELATIVE]
neutral_y, neutral_x = (player_relative == _PLAYER_NEUTRAL).nonzero()
if not neutral_y.any():
return actions.FunctionCall(_NO_OP, [])
target = [int(neutral_x.mean()), int(neutral_y.mean())]
return actions.FunctionCall(_MOVE_SCREEN, [_NOT_QUEUED, target])
else:
return actions.FunctionCall(_SELECT_ARMY, [_SELECT_ALL])

代码结构为:继承BaseAgent定义一个类,实现step函数,参数obs包含了所有的输入信息。首先判断_MOVE_SCREEN控制单位移动指定是否可用,如果不可用则说明还没有选中机枪兵,那么就返回带_SELECT_ALL的_SELECT_ARMY指令(F2)选中所有部队。在可以调用_MOVE_SCREEN时,则查看输入中screen游戏画面中的_PLAYER_RELATIVE部队归属子项,统计出所有部队归属为_PLAYER_NEUTRAL中立单位的位置。再计算这些位置的平均值,得到需要移动到的Beacon的中心点target。最后调用带[_NOT_QUEUED, target]的_MOVE_SCREEN指令,让所选机枪兵立即移动到target位置。不具备学习能力的AI依靠代码设定好的移动路径去完成任务。


http://www.ppmy.cn/news/408498.html

相关文章

coreldraw sp2精简版 x4_coreldraw x4 sp2 精简版

CorelDRAW X4简体中文正式版也是一款比较成熟、稳定的版本,有很多适应主流需求的功能、命令,以最大化地满足包括创意设计、计算机辅助制造、出版等不同行业专业人士和爱好者的使用。通过各式各样、丰富多彩的CorelDRAW 作品,我们能够看到&…

CorelDRAWX4的VBA插件开发(十三)一键转曲(转全部页面)

这里再回头说一下转曲转全部页面, 之前的转曲是没有套循环的,只能转当前页面 Sub 第一个插件()For Each Item In CorelDRAW.ActiveDocument.PagesItem.FindShapes(Type:cdrTextShape).ConvertToCurvesNext End Sub我们把代码稍作修改套上循环 这样子程序就会在每个页面里面去找…

CorelDRAWX4的VBA插件开发(十九)渲染显示开关

有时我们的功能非常的复杂,一次性要执行的功能非常多,所以我们会看到屏幕上的形状在以非常高的速度在变化,而实际上我们并不需要看到这些变化,而CDR程序里面是可以自由控制这个显示的,我们把这种渲染关闭,可以有效加快运行速度,而且可以避免自己花费不必要的注意力,下面开始介绍…

CorelDRAWX4的VBA插件开发(八)更改尺寸与移动

CorelDRAWX4的VBA插件开发(八)更改尺寸与移动 一.更改尺寸 在处理图片的工作中用得比较多的功能就是尺寸与移动. Sub 第一个插件()CorelDRAW.ActiveShape.SetSize 10, 20 End Sub运行 选中某个形状后点击按钮 我们可以看到运行结果很不理想,我要要的是10x20mm的尺寸,但是这个…

CorelDRAWX4的VBA插件开发(十)多文件编程

很多时候有若干个按钮,但是里面有相同的功能,比如上一节中所中用到的修改当前文档的度量单位为毫米这一功能,每一个功能都需要用到这个功能的时候,我们可以把它单独拉出来,放在另一个文件里面,用的时候只需要调用即可,可以有效减少代码量,让代码看起来更整洁. 而且还有一个更好…

CorelDRAWX4的VBA插件开发(十七)一键新建折页参考线

在做印刷品的折页的时候,我们往往需要用到参考线来进行制作,这里就放上一组一键新建带出血的可选几折页的参考线功能 前面是为了方便大家了解程序所以共用一个按钮,到了这里,我们经常要用到面板,按钮有点不够用,所以这里我们新建一个新的按钮来绑定面板功能 Sub 工具面板()U…

CorelDRAWX8安装包下载 全新矢量图形编辑设计工具

CorelDRAW Graphics Suite是一款平面设计软件与矢量图形编辑工具,其应用范围十分广泛,常见于广告设计、插画设计、UI设计、服装设计等领域。CorelDRAW中功能丰富多样的绘图工具和实用的效果工具,让它在矢量图形设计上有更多的优势&#xff0c…

coreldrawx4缩略图显示不出来_CDR缩略图不显示怎么办?CorelDRAW缩略图不显示解决办法 - 优优下载站...

CorelDRAW缩略图不显示解决办法如下: 缩略图问题的主要原因,是因为安装过X4的精简版造成,所以需要先想办法卸载掉X4精简版的缩略图才行 注意:卸载x4精简版缩略图方法有下面几种,反正就是无论如何都要想办法先把X4 精简版缩略图功能卸载掉。 1、从程序菜单里完整卸载X4(如果…