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

项目-坦克大战学习-人机ai

我们要知道,人机的移动和玩家的移动方式是一样的,所以我们可以将玩家移动代码以及检测碰撞代码移过来,唯一不同的就是人机检测到碰撞后会改变方向继续移动而不是停止

所以我们需要一个随机数使人机检测到碰撞后随机修改方向

 Random rd = new Random();

然后将方向的meiju类型给一个int类型

 enum fangxiang
 {
     Up=1,
     Down=2, 
     Left=3, 
     Right=4//方便随机数设置方向
 }

这样随机数是int类型方便强制类型转换为枚举类型

设置一个方向转换方法

private void gaibianfangxiang()//发生碰撞改变方向
{
  
   fangxiang fx=(fangxiang)rd.Next(1, 5);
    if (fx == Fangxiang)
    {
        fx = (fangxiang)rd.Next(1, 5);//强制类型转换
    }
    Fangxiang = fx;

}

在方法中首先我们定义一个新的方向变量用来存储改变后的方向

   fangxiang fx=(fangxiang)rd.Next(1, 5);//强制类型转换随机数1到5(不包含5)

然后检测转换后的方向与原方向是否相等

  if (fx == Fangxiang)
    {
        fx = (fangxiang)rd.Next(1, 5);//强制类型转换
    }
    Fangxiang = fx;

如果相等就再次调用随机数,反之就将人机方向转换为转换后的方向

将移动固定为true

http://www.lryc.cn/news/452951.html

相关文章:

  • YOLOv11改进 | Conv篇 | YOLOv11引入SKConv
  • 招联2025校招内推
  • 美容院管理创新:SpringBoot系统设计与开发
  • 文心一言 VS 讯飞星火 VS chatgpt (361)-- 算法导论24.3 3题
  • ArkTS 开发中,有两种网络请求
  • 记录一次病毒启动脚本
  • 2019~2023博文汇总目录
  • springboot项目配置部分依赖从私服拉取,部分从阿里云拉取
  • 返回索引对象中各元素的数据类型 pandas.Index.dtype
  • 通过freepbx搭建小型电话系统的过程
  • pdf处理1
  • 区间覆盖(贪心)
  • [rk3588 debain]cpu死锁问题解决
  • CMU 10423 Generative AI:lec18(大模型的分布式训练)
  • 项目级别的配置文件 `.git/config`||全局配置文件 `~/.gitconfig`
  • 【Docker】配置文件
  • 坐标系变换总结
  • 数据在内存中的存储【上】
  • Prometheus之Pushgateway使用
  • Rust Web开发常用库
  • ios内购支付-支付宝APP支付提现
  • 新课发布|鸿蒙HarmonyOS Next商城APP应用开发实战
  • 基于Java,SpringBoot,Vue智慧校园健康驿站体检论坛请假管理系统
  • 【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)
  • c#代码介绍23种设计模式_16迭代器模式
  • 408算法题leetcode--第23天
  • 帝国CMS系统开启https后,无法登陆后台的原因和解决方法
  • 根据视频id查询播放量
  • 初始爬虫11
  • SSY20241002提高组T4题解__纯数论