找回密码
 加入
搜索
楼主: pusofalse

[效率算法] AU3编程 输出螺旋方阵

 火... [复制链接]
 楼主| 发表于 2011-1-15 15:57:55 | 显示全部楼层
回复 5# fy1126


    貌似有些问题,当输入的数是奇数时,会发生数组错误。
而当输入偶数时,会多出一阶,如图:

本帖子中包含更多资源

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

×
 楼主| 发表于 2011-1-15 16:01:06 | 显示全部楼层
三位的代码很精彩,学习了。ceoguang兄,我们的思路如出一辙似的。
发表于 2011-1-15 21:26:48 | 显示全部楼层
本帖最后由 yangdai 于 2011-1-16 07:12 编辑

n年前看到有人手繪矩陣圖作技術分析,我用script寫一個給他。以下代碼存成htm,用ie就可以run
,mouse點擊格子,可以看支撐與壓力


<style>
td {font-size=15px;height=27;valign=middle}
</style>
<script language=vbscript>
  dim   n
  dim   ft(4),c()
  n=25
  redim c(n,n)
  ft(1)=-1  : ft(2)=-1 : ft(3)=0  : ft(4)=0
  x=(n+1)/2 : y=x      : c(x,y)=1
  v=1      : obj=1     : r=0
  ft(obj)=ft(obj)+2
  do while  x<>1   or  y<>1
     select case   obj
            case   1
                   x=x-1
            case   2
                   y=y+1
            case   3
                   x=x+1
            case   4
                   y=y-1
     end    select
     v=v+1  :  r=r+1
     c(x,y)=v
     if  r>=ft(obj) then
         obj=obj+1
         if  obj=5 then obj=1
         ft(obj)=ft(obj)+2
         r=0
     end if
  loop
  cnt="<table border=1 cellpadding=0 cellspacing=0  bordercolor=#FFFFFF" & _
      " bordercolordark=#FFFFFF  bordercolorlight=#008000 id=tab>"
  for  y=n to 1  step -1
       cnt=cnt & "<tr>"
       for x=1  to  n
           select   case  true
              case  x=(n+1)/2  or y=(n+1)/2
                    cnt=cnt & "<td bgcolor=grey>" &  c(x,y)
              case  x=y        or x+y=n+1
                    cnt=cnt & "<td bgcolor=lightblue>" &  c(x,y)
              case  else
                    pass=x*10000+y
                    cnt=cnt & "<td onclick=setc(" & pass & ")>" &  c(x,y)
           end  select
       next
  next
cnt=cnt & "</table>"
document.write "<center>"
document.write cnt
document.write "<input type='hidden' name='px' value=-1100>"
document.write "<input type='hidden' name='py' value=-1100>"
'------------------------------------------------------------------------
sub setc(tt)
cc=tt\10000 -1
rr=tt mod 10000
rr=n-rr
ppx=cint(document.all.px.value)
ppy=cint(document.all.py.value)
for  y=0 to    n-1
      for x=0  to  n-1
          select   case  true
             case  x=y           or (x+y)=n-1
             case  x=(n-1)/2     or y=(n-1)/2
             case  (y-rr=x-cc)   or (x+y=rr+cc) or x=cc  or y=rr
                   document.all.tab.rows(y).cells(x).bgcolor="yellow"
             case  (y-ppy=x-ppx) or (x+y=ppy+ppx)  or x=ppx or y=ppy
                   document.all.tab.rows(y).cells(x).bgcolor="white"
          end  select
      next
next
document.all.tab.rows(rr).cells(cc).bgcolor="red"
document.all.px.value=cc
document.all.py.value=rr
end sub
</script>

本帖子中包含更多资源

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

×

评分

参与人数 1金钱 +50 收起 理由
pusofalse + 50 强大,学习了。

查看全部评分

发表于 2011-1-16 01:03:13 | 显示全部楼层
根本看不明白。下班了 来逛逛论坛。看看源码吧。
发表于 2011-1-16 09:34:12 | 显示全部楼层
学  习  了
发表于 2011-1-16 10:15:30 | 显示全部楼层
牛呀,真牛。。。可是实际有什么应用吗?
发表于 2011-1-16 19:40:23 | 显示全部楼层
回复 3# ceoguang
学习
发表于 2011-1-16 20:39:19 | 显示全部楼层
留名學習學習
发表于 2011-1-16 23:49:42 | 显示全部楼层
看看各位大师是怎么写的?
发表于 2011-1-16 23:50:08 | 显示全部楼层
回复看看例子
发表于 2011-1-17 10:34:40 | 显示全部楼层
留名學習學習
发表于 2011-1-17 11:00:39 | 显示全部楼层
学习学习、谢谢分享!
发表于 2011-1-17 11:07:13 | 显示全部楼层
看看啥内容哈
发表于 2011-1-17 20:47:52 | 显示全部楼层
看一次啊 先不研究了
发表于 2011-1-17 20:58:03 | 显示全部楼层
比较强大 可惜看不懂~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 20:23 , Processed in 0.070018 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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