龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

用VB编写Hanoi塔问题动态演示程序[组图](4)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
向左移 For j = (pillarnum(getone) * 4000 - (n * 400) / 2) To (pillarnum(putone) * 4000 - (n * 400) / 2) + stepC Step -stepC Form1.Line (j, i)-(j + n * 400, i + 200), Form1.BackColor, BF Form1.Line

      '向左移

      For j = (pillarnum(getone) * 4000 - (n * 400) / 2) To (pillarnum(putone) * 4000 - (n * 400) / 2) + stepC Step -stepC

        Form1.Line (j, i)-(j + n * 400, i + 200), Form1.BackColor, BF

        Form1.Line (j - stepC, i)-(j - stepC + n * 400, i + 200), , BF

        delay

      Next j

    End If

    '向下移动到third柱子底端

    For k = i To baseCoordinateY(pillarnum(putone)) - 210 - stepC Step stepC

      '把矩形本次移动前的图形擦掉

      Form1.Line ((pillarnum(putone) * 4000 - (n * 400) / 2), k)-((pillarnum(putone) * 4000 + (n * 400) / 2), k + 200), Form1.BackColor, BF

      fixpillar (putone)

      Form1.Line ((pillarnum(putone) * 4000 - (n * 400) / 2), k + stepC)-((pillarnum(putone) * 4000 + (n * 400) / 2), k + stepC + 200), , BF

      delay

    Next k

    '最后在柱子底端再补画一次高度为210的矩形,

    '因为k循环最后一次执行循环体时,k值未必正好等于循环终值baseCoordinateY(pillarnum(putone)) - 210 - stepC,

    '所以要补一个上沿纵坐标为baseCoordinateY(pillarnum(putone)) - 210 - stepC矩形

    Form1.Line ((pillarnum(putone) * 4000 - (n * 400) / 2), k)-((pillarnum(putone) * 4000 + (n * 400) / 2), k + 200), Form1.BackColor, BF

    fixpillar (putone)

    Form1.Line ((pillarnum(putone) * 4000 - (n * 400) / 2), baseCoordinateY(pillarnum(putone)) - 210)-((pillarnum(putone) * 4000 + (n * 400) / 2), baseCoordinateY(pillarnum(putone)) - 210 + 200), , BF

    '更新各柱子最面一个盘子上沿的纵坐标

    baseCoordinateY(pillarnum(getone)) = baseCoordinateY(pillarnum(getone)) + 210

    baseCoordinateY(pillarnum(putone)) = baseCoordinateY(pillarnum(putone)) - 210

End Sub 

精彩图集

赞助商链接