宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 3651|回复: 0

[原创] 在例程63的基础增加了段判断四方向障碍点代码

[复制链接]
  • TA的每日心情
    开心
    2024-12-9 18:45
  • 签到天数: 124 天

    [LV.7]常住居民III

    admin 发表于 2010-8-17 20:32:04 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    经测试还存在BUG,但目的只是交流思路:本打算想着写段自动过障碍点的,到了这里还在研究算法
    1.    引擎:置随机数种子()
    2.     self.目的坐标.x = 引擎:取随机整数(50,800)
    3.     self.目的坐标.y = 引擎:取随机整数(50,800)
    4.     self.格子.x = 取整( self.坐标.x / 32 ) + 1
    5.     self.格子.y = 取整( self.坐标.y / 32 ) + 1
    6.     --=====================以下判断目的坐标路径中是否有障碍===============
    7.         
    8.         self.起步格子.x = 取整( self.起步坐标.x / 32 ) + 1
    9.         self.起步格子.y = 取整( self.起步坐标.y / 32 ) + 1
    10.         
    11.         self.目标格子.x = 取整( self.目的坐标.x / 32 ) + 1
    12.         self.目标格子.y = 取整( self.目的坐标.y / 32 ) + 1
    13.         
    14.         
    15.         if(self.目标格子.x <=self.起步格子.x) then              --左
    16.             
    17.             if(self.目标格子.y<=self.起步格子.y )then         --左上
    18.             
    19.                 if(self.格子.x~=self.目标格子.x ) then          --X方向判断障碍点
    20.                     for n=self.目标格子.x,math.abs(self.起步格子.x - self.目标格子.x ) do
    21.                         if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
    22.                             self.障碍点格子.x=n
    23.                             self.障碍点格子.y=self.起步格子.y
    24.                             break
    25.                         end
    26.                     end
    27.                 else
    28.                     if(self.格子.y~=self.目标格子.y  ) then    --Y方向判断障碍点            
    29.                         for n=self.目标格子.y,math.abs(self.起步格子.y - self.目标格子.y) do
    30.                             if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
    31.                                 self.障碍点格子.x=self.格子.x
    32.                                 self.障碍点格子.y=n
    33.                                 break
    34.                             end
    35.                         end
    36.                     end                    
    37.                 end
    38.                
    39.             else                                                                                 --左下
    40.                
    41.                 if(self.格子.x~=self.目标格子.x ) then         --X方向判断障碍点
    42.                     for n=self.目标格子.x,math.abs(self.起步格子.x - self.目标格子.x ) do
    43.                         if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
    44.                             self.障碍点格子.x=n
    45.                             self.障碍点格子.y=self.起步格子.y
    46.                             break
    47.                         end
    48.                     end
    49.                 else
    50.                     if(self.格子.y~=self.目标格子.y  ) then    --Y方向判断障碍点            
    51.                         for n=self.起步格子.y,math.abs(self.目标格子.y-self.起步格子.y) do
    52.                             if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
    53.                                 self.障碍点格子.x=self.格子.x
    54.                                 self.障碍点格子.y=n
    55.                                 break
    56.                             end
    57.                         end
    58.                     end                    
    59.                 end
    60.             
    61.             end
    62.         
    63.         else                                                                                      --右
    64.         
    65.             if(self.目标格子.y<=self.起步格子.y )then       --右上
    66.             
    67.                 if(self.格子.x~=self.目标格子.x ) then
    68.                     for n=self.起步格子.x,math.abs(self.目标格子.x - self.起步格子.x) do
    69.                         if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
    70.                             self.障碍点格子.x=n
    71.                             self.障碍点格子.y=self.起步格子.y
    72.                             break
    73.                         end
    74.                     end
    75.                 else
    76.                     if(self.格子.y~=self.目标格子.y  ) then               
    77.                         for n=self.目标格子.y,math.abs(self.起步格子.y-self.目标格子.y) do
    78.                             if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
    79.                                 self.障碍点格子.x=self.格子.x
    80.                                 self.障碍点格子.y=n
    81.                                 break
    82.                             end
    83.                         end
    84.                     end                    
    85.                 end
    86.                
    87.             else                                                                             --右下
    88.                
    89.                 if(self.格子.x~=self.目标格子.x ) then
    90.                     for n=self.起步格子.x,math.abs(self.目标格子.x - self.起步格子.x )do
    91.                         if(Q_全地图数据_路径层[n][self.起步格子.y] == 1) then
    92.                             self.障碍点格子.x=n
    93.                             self.障碍点格子.y=self.起步格子.y
    94.                             break
    95.                         end
    96.                     end
    97.                 else
    98.                     if(self.格子.y~=self.目标格子.y  ) then               
    99.                         for n=self.起步格子.y,math.abs(self.目标格子.y - self.起步格子.y) do
    100.                             if(Q_全地图数据_路径层[self.格子.x][n] == 1) then
    101.                                 self.障碍点格子.x=self.格子.x
    102.                                 self.障碍点格子.y=n
    103.                                 break
    104.                             end
    105.                         end
    106.                     end                    
    107.                 end
    108.             
    109.             end
    110.             
    111.         end
    复制代码
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 20:59 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表