gpt4 book ai didi

ios - 如何在 2D 游戏 map 上找到最安全/最佳点?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:32 24 4
gpt4 key购买 nike

<分区>

我正在构建一个无状态游戏 AI 原型(prototype),如果有一种方法可以组合多个数据源并决定 2D 中的“最佳”位置,我很感兴趣方格游戏板

示例输入:

  • 一组玩家/威胁 (x,y) 坐标
  • 本回合内可能移动 (x,y) 坐标的数组
  • 一系列陷阱
  • 一系列地形奖励/惩罚
  • 与友好单位/治疗师的距离很近

例如,我的方法是计算与一群玩家的最远距离并将怪物移动到那里(如果受重伤)。我想通过包含来自上述数组的数据来改进这一点。恐怕这真的会使这些方法膨胀 - 是否有更好的方法来分析我提到的数据?

-(void)runAway
{
[self debugMessage];


int bestTileIndex = 0;
int maxDistance = 0;

NSMutableArray* playerLocations = [[MapOfTiles sharedInstance] playerLocations];

NSMutableDictionary* validMoveDistanceToEnemy =[[NSMutableDictionary alloc] initWithCapacity:112];

float sum = 0;

//valid move arrays is an array of arrays of tiles at 1, 2, 3,etc moves away from the origin
if(validMoveArrays.count>0)
{

for(NSArray* reachableTiles in validMoveArrays)
{
for(NSNumber* tileNumber in reachableTiles)
{
sum = 0;

for(NSNumber* playerLocation in playerLocations)
{
sum += [self distanceFromTileIndex:tileNumber.intValue toTileIndex:playerLocation.intValue];
}

[validMoveDistanceToEnemy setObject:@(sum) forKey:tileNumber];
}
}
}

DLog(@"validMoveDistanceToEnemy: %@",validMoveDistanceToEnemy);

NSNumber* distanceToEnemy = nil;
for (NSNumber* key in [validMoveDistanceToEnemy allKeys])
{
distanceToEnemy = [validMoveDistanceToEnemy objectForKey:key];

if(distanceToEnemy.intValue >maxDistance)
{
maxDistance = distanceToEnemy.intValue;
bestTileIndex = key.intValue;
}

}

if(bestTileIndex>tileCountTall*tileCountWide)
{
//out of bounds or some other error
[self stationaryAction];
}else
{
//move to safest tile
[self.actor moveToTileIndex:bestTileIndex];
}


}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com