我想用人工神经网络玩Tic-tac-toe.我对网络的配置如下:对于9个字段中的每个字段,我使用2个输入神经元.当然,我有18个输入神经元.对于每个场,我有1个输入神经元用于一个玩家1和1个神经元用于一个玩家2.除此之外,我有1个输出神经元,它给出了当前电路板位置的评估.输出值越高,玩家1的位置越好.玩家2的位置越低,玩家2的位置越好.
但我的问题是:我怎么能编码神经网络?我的想法是使用Array [1-18]作为输入神经元.此数组的值是输入权重.我将使用循环遍历数组.每当有神经元被激活时,我都会将权重加到输出值上.所以输出值是激活的输入神经元的权重之和:
Output = SUM(ActivatedInputNeurons)
Run Code Online (Sandbox Code Playgroud)
你认为这是一种编程网络的好方法吗?你有更好的想法吗?
我希望你能帮助我.提前致谢!
有没有人知道(或可以建议)为RaceTrack铅笔纸游戏的AI算法?
因为你在每个步骤中有9个可能的选择,并且你需要至少看6-10步才能确定一个好的策略,即使你因为与边界相交而排除了一些选择,暴力也会变得非常昂贵.
目前我正在尝试为每个选择分配一些质量值,以决定排除哪些选择 - 但我还不知道如何分配这样的质量值的良好规则.
我正在最终幻想战术中实施一个基于小网格,基于回合制的战略.
您对我如何接近目标选择,运动和技能选择过程有什么想法吗?
我正在考虑将决定断开,但所有这3个决定都在很大程度上是耦合的.(例如,我无法决定在哪里移动,除非我知道我将要攻击谁,以及我将使用的技能范围有多少,反之亦然,我无法决定攻击者,除非我知道有多少人将其攻击将带我到达每个目标)
我想转向一个统一的系统,但尝试使用像Killzone 1 AI这样的方式使用的潜在野外研究的东西让我陷入局部最大值.
===更新1
我目前正在尝试使用潜在的字段/影响图来生成我做出决策的数据.
我不知道如何处理拥有许多技能,以及不会造成伤害而是减少buff/debuff或改变世界的技能.
其他人建议使用目前在Go游戏中使用的蒙特卡罗树搜索.
我相信我的演员将使用的空间并不好,因为游戏中的许多动作都不会导致你可以攻击和影响世界的位置(我在一个比最终幻想战术更大的世界)
在最终的幻想策略中它可能会成功应用,虽然分支因子比9x9 Go大得多(据我所知)
===
提前谢谢,Xtapodi.
ps.1 - 一个问题是,要准确地知道敌人需要多远才能找到他,因为虽然敌人在附近,但是一个无法通行的悬崖可能将我们分开,需要4个回合才能绕过.或者更糟糕的是,一个单位正阻挡着让我们说桥的方式,所以实际上没有办法接触到他.
我一直在寻找一种强大的寻路方法,我正在开发基于平台游戏的游戏,A*看起来像是最好的方法.我注意到有一个关于Godot中AStar实现的演示.然而,它是为基于网格/磁贴的游戏编写的,我无法适应平台,其中Y轴受到重力的限制.
我找到了一个非常好的答案,描述了A*如何应用于Unity中的平台游戏.我的问题是......是否可以在Godot中使用AStar来实现上述答案中描述的相同内容?如果不使用内置的AStar框架,可以做得更好吗?在GDscript中它是如何工作(有或没有AStar)的一个非常简单的例子是什么?
虽然我已经发布了100点奖金(它已经过期),但我仍然愿意发布另外100点赏金并奖励它,等待回答这个问题.
PS:如果你在这个问题的正文中看到一些你觉得不合适的东西,需要注意或澄清......不要贬低我的投票!展示一些诚信并发表评论.你所做的一切都在伤害那些投票给我的其他人,并且实际上对这个问题的答案感兴趣.
我试图在我写的一个简单的游戏中实现Q-learning.该游戏基于玩家必须"跳跃"以避免迎面而来的盒子.
我设计了两个动作系统; jump并且do_nothing状态是距下一个区块的距离(划分和覆盖以确保没有大量状态).
我的问题似乎是我的算法实现没有考虑"未来的奖励",所以它最终在错误的时间跳跃.
这是我对Q学习算法的实现;
JumpGameAIClass.prototype.getQ = function getQ(state) {
if (!this.Q.hasOwnProperty(state)) {
this.Q[state] = {};
for (var actionIndex = 0; actionIndex < this.actions.length; actionIndex++) {
var action = this.actions[actionIndex];
this.Q[state][action] = 0;
}
}
return this.Q[state];
};
JumpGameAIClass.prototype.getBlockDistance = function getBlockDistance() {
var closest = -1;
for (var blockIndex = 0; blockIndex < this.blocks.length; blockIndex++) {
var block = this.blocks[blockIndex];
var distance = block.x - this.playerX;
if (distance >= 0 && (closest === -1 || distance …Run Code Online (Sandbox Code Playgroud) 我一直在研究这种人工智能方法.int如果一堵墙阻挡了他通往玩家的路径,它基本上可以为敌人提供每个方向.这在大多数情况下不起作用.有时敌人会经历无法穿过的裂缝.其他时候它会被卡在有明显空隙的墙上.我会附上我的代码,但如果它看起来效率太低或者没有解决问题的方法,我并不反对改变我的方法.我只是想知道这些事情是如何正常完成的,这样我就能以更好的(和工作!)方式实现它.
我的代码:
public void update(ArrayList<Wall> walls, Player p){
findPlayer(p.getX(), p.getY());
boolean isCollision = false;
System.out.println(isCollision);
//if movement straight towards the player is blocked, move along the walls
for(Wall w : walls){
if(Helper.isBoundingBoxCollision((int)(x + vectorToPlayer.getDX() * SPEED), (int)(y + vectorToPlayer.getDY() * SPEED), width, height, w.getX(), w.getY(), w.width, w.height)){
isCollision = true;
if(Math.abs(vectorToPlayer.getDX()) > Math.abs(vectorToPlayer.getDY())){
if(vectorToPlayer.getDX() > 0)
WALL_COLLISION = 3;
else
WALL_COLLISION = 1;
}
else if(Math.abs(vectorToPlayer.getDX()) < Math.abs(vectorToPlayer.getDY())){
if(vectorToPlayer.getDY() > 0)
WALL_COLLISION = 0;
else
WALL_COLLISION = 2; …Run Code Online (Sandbox Code Playgroud) 问候所有,
我正处于我的一个爱好项目的设计阶段.我将开发一款3D空战游戏.(受HAWX启发).但我想知道AI如何为敌人的工艺品工作?我猜,他们不像FPS游戏那样沿着路径(在图表上找路径)移动.我可以使用什么样的算法来进行敌人的工艺运动?我可以使用任何AI库吗?
注意:我使用irrlicht引擎,C++作为我的开发环境.
我正在寻找在游戏中有用的人工智能算法的C和C++实现.我最感兴趣的一些是强化学习算法,遗传算法和神经网络.然而,任何其他人都很有趣.
我发现dlib.net它有一些非常迷人的机器学习算法,但这些似乎并不特别适合游戏.
我可以使用的许可证是Boost软件许可证,Zlib/Libpng许可证和公共域.任何属于这些许可证的图书馆的任何建议都将受到高度赞赏.
c++ algorithm artificial-intelligence machine-learning game-ai
我在网格宇宙中工作 - 对象仅存在于二维矩阵中的整数位置.
一些术语:
广场 - 一个离散的位置.每个正方形都有一个int x和int y坐标,没有两个正方形具有相同的x和y对.
相邻:如果x或y坐标的差值大小不大于1,则正方形X与另一个正方形Y相邻.更简单地说,所有正方形立即在N,NE,E,SE,S,SW中,W和NW方向相邻.
Legend:
'?' - Unknown Traversibility
'X' - Non Traversable Square
'O' - Building (Non Traversable)
' ' - Traversable Square
Run Code Online (Sandbox Code Playgroud)
问题:
鉴于以下一般情况:
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ? ? O O ? ? ?
? ? ? O O ? ? ?
? ? ? ? ? ? ? ? …Run Code Online (Sandbox Code Playgroud) game-ai ×10
algorithm ×4
a-star ×1
c++ ×1
gdscript ×1
godot ×1
java ×1
path-finding ×1
q-learning ×1