TC官方合作论坛

 找回密码
 立即注册
查看: 1676|回复: 3

[其他] 求大神解答,为什么我在功能定义全局变量,但是这个全局变量在另一个功能函数里还是为0

[复制链接]
发表于 2012-11-17 20:44:11 | 显示全部楼层 |阅读模式

马上加入TC

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

x
空间 通用地图
整型 X,Y,起点x,起点y,终点x,终点y,父节点x,父节点y,子节点x,子节点y //大写X Y为最大方块表
整型[][] 格子
整型[][] F
整型[][] G
整型[][] H
整型[][] 开启表
  
      
功能 逻辑型 按钮0_点击()
    整型 列宽,行高,i=0,x,y
    X=转换.字符型转整型(编辑框.获得文本("编辑框0"),0)
    Y=转换.字符型转整型(编辑框.获得文本("编辑框1"),0)
    格子=整型[X][Y]
    F=整型[X][Y]
   G=整型[X][Y]
    H=整型[X][Y]
    行高=400/Y
    列宽=400/X
表格.设置大小("表格0",X,Y)
    循环(i<X)
        表格.设置行高("表格0",i,行高)
        i=i+1
    循环结束
    i=0
    循环(i<Y)
        表格.设置列宽("表格0",i,列宽)
        i=i+1
    循环结束
    表格.大小("表格0",x,y)
    表格.填充("表格0")
    如果(x==X||y==Y)
        
        
        列表框.插入文本("列表框0","地图校准成功",1)
    否则
        列表框.插入文本("列表框0","地图校准失败",1)
    如果结束
   
   
返回 真
//函数返回语句
功能结束

功能 逻辑型 A星()
    整型 扫描点,下标,最小值,标号,最小值下标
    开启表=整型[X*Y][2]
父节点x=起点x
父节点y=起点y
循环(真)
     下标=0
     扫描点=0
     最小值=0
     下标=0
     最小值下标=0
     G[父节点x][父节点y]=0
循环(扫描点<8)
选择(扫描点)
     条件 0: //左上角
      子节点x=父节点x-1
      子节点y=父节点y-1
      如果(格子[父节点x-1][父节点y-1]==0||父节点x-1>=0||父节点y-1>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+14
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
      如果结束
      
   
     条件 1:        //正上方
  
      子节点x=父节点x-1
      子节点y=父节点y
      如果(格子[父节点x-1][父节点y]==0||父节点x-1>=0||父节点y>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+10
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
   开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
     如果结束
     
     
      条件 2:        //右上方
      子节点x=父节点x-1
      子节点y=父节点y+1
      如果(格子[父节点x-1][父节点y+1]==0||父节点x-1>=0||父节点y+1>=0)
      G[子节点x][子节点y]=G[父节点x][父节点y]+14
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
      如果结束
      
      
      条件 3://左
      子节点x=父节点x
      子节点y=父节点y-1
      如果(格子[父节点x][父节点y-1]==0||父节点x>=0||父节点y-1>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+10
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
      如果结束
      
      
     条件 4://右
     
      子节点x=父节点x
      子节点y=父节点y+1
      如果(格子[父节点x][父节点y+1]==0||父节点x>=0||父节点y+1>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+10
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
      下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
   
     如果结束
     
     
     条件 5://左下
      子节点x=父节点x+1
      子节点y=父节点y-1
      如果(格子[父节点x+1][父节点y-1]==0||父节点x+1>=0||父节点y-1>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+14
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
如果结束
     
     
     
     条件 6://正下
     
      子节点x=父节点x+1
      子节点y=父节点y
      如果(格子[父节点x+1][父节点y]==0||父节点x+1>=0||父节点y>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+10
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
     
     如果结束
     
     
     条件 7://右下
   
      子节点x=父节点x+1
      子节点y=父节点y+1
       如果(格子[父节点x+1][父节点y+1]==0||父节点x+1>=0||父节点y+1>=0)
     G[子节点x][子节点y]=G[父节点x][父节点y]+14
     H[子节点x][子节点y]=(数学.绝对值(终点x-子节点y)+数学.绝对值(终点y-子节点x))*G[子节点x][子节点y]
     F[子节点x][子节点y]=G[子节点x][子节点y]+H[子节点x][子节点y]
     下标=下标+1
     开启表[下标][0]=子节点x
     开启表[下标][1]=子节点y
     
     如果结束
      扫描点=扫描点+1
  选择结束

  标号=下标
  下标=0
     最小值=F[(开启表[0][0])][(开启表[0][1])]
循环(下标<扫描点)
    下标=下标+1
  如果(最小值>F[(开启表[下标][0])][(开启表[下标][1])])
       最小值=F[(开启表[下标][0])][(开启表[下标][1])]
       最小值下标=下标
    如果结束
   循环结束
        子节点x=开启表[最小值下标][0]
        子节点y=开启表[最小值下标][1]
  如果(格子[子节点x][子节点y]==3)
      列表框.插入文本("列表框0","找到终点",1)
      跳出
      跳出
  如果结束
  格子[子节点x][子节点y]=2
  父节点x=子节点x
  父节点y=子节点y
  表格.设置项背景颜色("表格0",子节点x,子节点y,#0000ff)
  循环结束

循环结束


返回 真
功能结束



//空间结束语句
功能 逻辑型 表格0_左键单击()
    int x,y
逻辑型 单选框=单选框.获得状态("单选框0")
逻辑型 单选框1=单选框.获得状态("单选框1")
逻辑型 单选框2=单选框.获得状态("单选框2")
如果(单选框==真)// 障碍
    表格.焦点项("表格0",x,y)
    表格.设置项背景颜色("表格0",x,y,000000)
    格子[x][y]=1
    列表框.插入文本("列表框0",字符串.格式化("%d%d%s",x,y,"设置为障碍"),1)
    如果结束
如果(单选框1==真) // 起点
    表格.焦点项("表格0",x,y)
    表格.设置项背景颜色("表格0",x,y,#ff00ff)
    格子[x][y]=2
    起点x=x
    起点y=y
     列表框.插入文本("列表框0",字符串.格式化("%d%d%s",x,y,"设置为起点"),1)
如果结束
如果(单选框2==真)  // 终点
    表格.焦点项("表格0",x,y)
    表格.设置项背景颜色("表格0",x,y,#008000)
    格子[x][y]=3
    终点x=x
    终点y=y
    列表框.插入文本("列表框0",字符串.格式化("%d%d%s",x,y,"设置为终点"),1)
如果结束
返回 真
功能结束

功能 逻辑型 运行(整型 x,整型 y,整型 设)
    格子[父节点x][父节点y]=设
    选择(设) // 0空白 1 障碍 2起点 3终点4 路径
        条件 0:
       条件 1:
        条件 2:
        条件 3:
        表格.设置项背景颜色("表格0",父节点x,父节点y,#ff0000)
    选择结束
    返回 真
功能结束
功能 逻辑型 热键1_热键()
线程.开启("通用地图.A星","")
返回 真
功能结束

功能 逻辑型 初始化()
热键.注册("热键1")
返回 真
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束

空间结束

回复

使用道具 举报

发表于 2012-11-17 20:49:56 | 显示全部楼层
这么长 你的问题在哪啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-17 20:51:30 | 显示全部楼层
标题哦 , 我在空间开头定义的这些变量 数组,  拿到功能里用,但是都没有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-17 20:52:23 | 显示全部楼层
就象开始的这个X ,Y, . 还是为0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-12 14:49 , Processed in 0.037375 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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