当前位置: 首页 > news >正文

最流行的网站开发语言北京全网营销推广

最流行的网站开发语言,北京全网营销推广,适合做手机主页的网站,自己的电脑做网站可以吗上一篇写了决策树的基础概念和一些简单例子,本篇将着重在实际案例上进行说明 目录 8. 决策树应用的实际例子 8.1. 方法和过程 8.1.1. 定义行为 8.1.2. 确定属性 8.1.3. 构建决策树 8.1.4. 实施行为 8.1.5. 实时更新 8.2. Python代码 8. 决策树应用的实际例子…

上一篇写了决策树的基础概念和一些简单例子,本篇将着重在实际案例上进行说明

目录

8. 决策树应用的实际例子

8.1. 方法和过程

8.1.1. 定义行为

8.1.2. 确定属性

8.1.3. 构建决策树

8.1.4. 实施行为

8.1.5. 实时更新

8.2. Python代码


8. 决策树应用的实际例子

模拟空战游戏中,AI使用决策树算法,控制多个NPC敌方战机协同攻击玩家。

8.1. 方法和过程

8.1.1. 定义行为

敌方战机可能的行为包括:进攻、防守、掩护、撤退等。

8.1.2. 确定属性

影响决策的属性可能包括:

敌方战机的数量、位置、速度、武器状态

玩家战机的位置、速度、武器状态等

8.1.3. 构建决策树

根据属性构建决策节点,例如:

  • 如果敌方战机数量大于玩家,且敌方战机位置靠近玩家,则选择进攻。
  • 如果敌方战机数量少于玩家,且敌方战机位置分散,则选择掩护和撤退。
  • 如果敌方战机有优势武器,则选择优先使用优势武器进攻。
  • 考虑敌机的武器状态和剩余弹药:在决定使用哪种武器进攻时,应该考虑武器的可用性和剩余弹药。
  • 考虑盟友和敌人的位置:在决定行动时,应该考虑盟友和敌人的相对位置,以避免友军伤害和优先攻击较弱的敌人。
  • 增加撤退逻辑:当敌机健康状态很低时,应该优先考虑撤退而不是进攻。
  • 引入随机性:在决策过程中引入一些随机性,使得敌机的行为更加难以预测。
  • 优化机动规避逻辑:机动规避时,应该考虑玩家的位置和速度,以便更有效地规避攻击。
  • 协同策略
    • 制定敌方战机之间的协同策略,例如:
    • 分配攻击目标,确保每架敌方战机都有明确的攻击对象。
    • 制定掩护策略,保护处于劣势的战机。
    • 制定撤退策略,当战机受损严重时撤退。

8.1.4. 实施行为

根据决策树的结果,敌方战机执行相应的行为。

8.1.5. 实时更新

战场环境是实时变化的,因此需要不断更新属性,并重新进行决策。

8.2. Python代码

 在这个实现中,EnemyFighter类代表敌方战机,具有ID、位置、速度和武器状态等属性。

EnemyFighter类中的health属性用来表示敌方战机的健康状态。decide_action方法现在考虑了更多的因素,包括战机的健康状态、与玩家的距离、敌方和盟友的数量,以及武器的状态。

EnemyFighter类的position属性现在是一个三维坐标。distance_to方法用于计算三维空间中的距离。

EnemyFighter类的evade方法,用于进行机动规避、加速,并快速改变自身所在位置。

decide_action方法现在会在距离目标小于23000时调用evade方法,并执行相应的规避动作。

EnemyFighter类用choose_weapon方法来根据距离选择合适的武器,并且在decide_action方法中考虑了武器的可用性和剩余弹药。

最后,我们模拟了一个战场环境,并让每架敌方战机做出决策。

以下上代码

import math  
import random  class EnemyFighter:  def __init__(self, id, position, speed, weapon_status, health, ammo):  self.id = id  self.position = position  # (x, y, z)  self.speed = speed  self.weapon_status = weapon_status  # 字典,包含武器名称和状态  self.health = health  self.ammo = ammo  # 字典,包含武器名称和剩余弹药  def distance_to(self, other_position):  return math.sqrt((self.position[0] - other_position[0])**2 +  (self.position[1] - other_position[1])**2 +  (self.position[2] - other_position[2])**2)  def choose_weapon(self, distance_to_player):  available_weapons = [weapon for weapon, status in self.weapon_status.items() if status == "可用"]  if not available_weapons:  return None  # 根据距离选择合适的武器  if distance_to_player <= 500:  return "机炮"  elif 500 < distance_to_player <= 5000:  return "近距空空弹"  elif 5000 < distance_to_player <= 23000:  return "中距空空弹"  elif 23000 < distance_to_player <= 100000:  return "远程空空弹"  return None  def evade(self, player_position):  max_evade_distance = 500  evade_direction = (random.uniform(-1, 1), random.uniform(-1, 1), random.uniform(-1, 1))  evade_distance = random.uniform(0, max_evade_distance)  self.position = (  self.position[0] + evade_direction[0] * evade_distance,  self.position[1] + evade_direction[1] * evade_distance,  self.position[2] + evade_direction[2] * evade_distance  )  self.speed *= 1.5  def decide_action(self, player_position, allies, enemies):  if self.health < 30:  return "撤退"  distance_to_player = self.distance_to(player_position)  weapon = self.choose_weapon(distance_to_player)  if distance_to_player < 23000:  self.evade(player_position)  return "机动规避,加速,并快速改变位置"  if weapon:  if self.ammo[weapon] > 0:  return f"使用{weapon}进攻"  else:  return "武器弹药耗尽,寻找补给或撤退"  return "等待时机接近目标或寻找其他敌人"  # 模拟战场环境 
player_position = (5000, 5000, 0)  
enemies = [  EnemyFighter(1, position=(1000, 1000, 0), speed=100, weapon_status="全武器可用", health=100),  EnemyFighter(2, position=(1500, 1500, 0), speed=120, weapon_status="全武器可用", health=80),  EnemyFighter(3, position=(2000, 2000, 0), speed=110, weapon_status="全武器可用", health=60)  
]  
allies = [  EnemyFighter(4, position=(3000, 3000, 0), speed=100, weapon_status="全武器可用", health=100),  EnemyFighter(5, position=(3500, 3500, 0), speed=100, weapon_status="全武器可用", health=90)  
]  # 敌方战机做出决策  
for enemy in enemies:  action = enemy.decide_action(player_position, allies, enemies)  print(f"敌方战机{enemy.id}(位置:{enemy.position},健康:{enemy.health})决定:{action}")

http://www.hengruixuexiao.com/news/6944.html

相关文章:

  • 做视频赚钱的网站有哪些seo教程视频论坛
  • 义乌创源网站建设企业网站推广的形式有哪些
  • 南昌网站建设方案服务seo网站优化培训班
  • 建设部网站158号文件网络销售怎么找客源
  • 网站建设优点百度知道官网入口
  • 亚马逊卖家可以做促销的网站新品牌推广策划方案
  • 什么样的网站利于优化销售平台有哪些
  • 购物网站开发简介网站联盟推广
  • 黄埔区做网站做百度推广的公司电话号码
  • 阿里巴巴企业网站注册专业代写软文
  • 自贡做网站南京seo培训
  • 做网站百度关键排名百度服务中心投诉
  • 无障碍网站建设推广引流哪个软件最好
  • php和mysql web做网站关键词收录查询工具
  • 一级a做爰片视频网站seo短视频网页入口引流
  • 老徐蜂了网站策划书b站不收费网站
  • 哪里找需要网站建设的网址搜索
  • 永嘉网站优化微博推广方式
  • 宜昌seo优化东莞seo公司
  • 征婚交友网站建设贵阳网站建设推广
  • 东莞市58同城招聘网最新招聘百度seo培训班
  • 手机网站建设 广州免费网络推广网址
  • 万网网站空间费中国最新消息
  • 专业的营销网站建设公司排名搜索图片识别出处百度识图
  • 哪家公司建网站最好2022年大事热点新闻
  • 青岛公司做网站网站推广的目的
  • 邢台做移动网站公司电话社交媒体营销三种方式
  • 织梦做的网站后台百度资源
  • 网站详情页链接怎么做哪家网站推广好
  • 基于诗歌网站开发开题报告大连网站建设