我需要在Android中的内部递归功能延迟,但处理程序延迟破坏了递归功能

发布于 2025-02-07 01:48:15 字数 859 浏览 1 评论 0原文

我正在使用河内递归算法在Android(Java)中创建河内模拟塔。 每个磁盘都可以立即从源塔转移到目标塔。 当我尝试延迟递归功能以使其移动缓慢时,就会发生问题,因此我可以看到移动它的每一步,但是handler.postdelayed只需打破递归

此代码或其他建议延迟UI更改的任何修复

void hanoi(int disk, int source, int dest, int aux) {

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {

            if(disk ==1){
                autoClick(source,dest);
            }
            else {
                hanoi(disk - 1, source, aux, dest);
                autoClick(source,dest);
                hanoi(disk - 1, aux, dest, source);
            }
        }
    }, 100);}

enter image description here

I'm creating a tower of Hanoi simulation in Android(Java), using the tower of Hanoi recursion algorithm.
every this works fine all the disks instantly move from source to destination tower.
The problem occur when I tried to put a delay inside the recursion Function to make its moves slowly, so I can see moving its every step but Handler.Postdelayed just break the Recursion

Any Fix for this Code Or other Suggestions to Delay the UI Changes

void hanoi(int disk, int source, int dest, int aux) {

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {

            if(disk ==1){
                autoClick(source,dest);
            }
            else {
                hanoi(disk - 1, source, aux, dest);
                autoClick(source,dest);
                hanoi(disk - 1, aux, dest, source);
            }
        }
    }, 100);}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文