如何实现递归函数

简介: 今天分享一下如何在微信小游戏制作工具中实现递归函数,当前小游戏制作工具是不支持递归函数的,但是我们仍然能够找到方法来实现它。对于很多新手尤其是没有编程基础的小伙伴来讲,可能并不知道什么是递归函数。我们先简单的了解一下它到底是个啥东西。

今天分享一下如何在微信小游戏制作工具中实现递归函数,当前小游戏制作工具是不支持递归函数的,但是我们仍然能够找到方法来实现它。


对于很多新手尤其是没有编程基础的小伙伴来讲,可能并不知道什么是递归函数。我们先简单的了解一下它到底是个啥东西。


它有两个特点,第一个是自己调用自己。也就是说这个函数在执行的过程中会去再次调用自己,再次执行自己的函数逻辑。

如图就是一个递归函数的执行过程,函数中的积木块是自上而下顺序执行的,当执行过程中遇到“调用自己”时就会再次返回到开始的位置重新执行。


从图中可以看出来,这样的递归函数是会无限执行下去的,为了防止它无限的执行下去,我们就需要为它设置一个结束条件,也就是递归函数的第二个特点:必须要有一个结束条件。


好了,这就是递归函数了,它是一个自己调用自己的,必须有结束条件的函数。递归函数在查找算法中应用的比较多,例如消除游戏中图标的查找匹配,寻路算法中的路径查找等等。


在任何一门编程语言中,实现一个递归函数都不难,只要遵循它的两个特点即可。但是在可视化的编程工具中,想要实现一个递归函数就有些困难了,可能是为了防止递归函数出现的各种严重问题,索性就限制了递归的使用。以微信小游戏制作工具为例,它目前并不支持递归函数,但是,我们还是能找到方法来实现。


下面我们就用递归函数实现一个简单的计数功能,将一个数字从 0 开始,每次增加 1, 直到数字增加到 100 结束。这样的一个功能其实完全可以使用一个循环来做,但是这里我们不使用循环,而是使用函数进行递归,相当于每调用一次函数,数字就增加 1 ,一共调用 100 次函数。


首先,我们创建一个全局变量“计数”,用于记录数字的增加。



接着,在积木区域选择“函数”类别,然后点击“新建函数”按钮,创建一个“递归函数”。



为递归函数增加一个“计数变量”的参数,然后增加如下的积木块。



逻辑并不难理解,如果“计数变量”不到 100 的话,就将其增加 1 ,然后继续调用自己,如果计数变量大于等于 100 ,则整个递归函数结束。


为了方便查看结果,我们在场景中增加了一个白色数字,在执行完递归函数后,将白色数字显示为“计数”的值。



如果递归函数正常执行的话,那么最终这个白色数字应该是会显示为 100 的,我们预览一下场景,看一下结果如何。


系统直接给我们弹出了一个提示,明确的告诉了存在递归调用,这个是不允许的。




既然明目张胆的递归是不允许的,那我们试着换个方式,既然不让自己调用自己,那我们能否让函数A 调用 函数B,然后再让 函数B 调用 函数A,让这两个函数之间来回调用实现递归呢?



我们重新创建两个递归函数,一个“递归函数1”,一个“递归函数2”。




接着我们修改一个白色数字的逻辑,使用“递归函数1”。



点击预览场景,又一次看到了这个讨厌的提示。




再一次失败了,看来使用两个函数互相调用仍然会被检查出来存在递归调用。

这里是我做的小游戏,欢迎来玩玩。

精致1010

一个很精致的消除游戏。

小程序

精致点点连线

忙碌生活中的片刻放松。

小程序





相关文章
|
6月前
什么是递归函数?怎样实现递归?
什么是递归函数?怎样实现递归?
|
缓存 算法 搜索推荐
递归函数就这么简单!通俗的Go语言递归指南
递归函数就这么简单!通俗的Go语言递归指南
105 0
|
5月前
|
机器学习/深度学习 C语言
|
5月前
|
Java
java实现斐波那契数列(递归、迭代、流)
java实现斐波那契数列(递归、迭代、流)
|
5月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
108 7
|
11月前
|
算法 C语言
你会使用函数的递归和迭代吗?----------C语言函数学习(4)详解
你会使用函数的递归和迭代吗?----------C语言函数学习(4)详解
125 1
|
5月前
|
C语言
C语言函数递归详解:理解递归的原理与应用
C语言函数递归详解:理解递归的原理与应用
99 0
|
6月前
|
算法 API Python
递归函数:原理与实践
递归函数:原理与实践
|
6月前
|
机器学习/深度学习 算法
加深理解函数递归
加深理解函数递归
|
6月前
|
机器学习/深度学习 编译器 C语言
关于函数递归的基础
关于函数递归的基础
52 5