我的目标是建立一个5x5的图像网格。在下面的代码中,row
,col
和rowcol
被创建为精灵本地的变量,并且newcol
,newrow
和cats
是全局的。 (顺便说一下,才有可能知道哪些变量是局部的,这是全球性的?这很容易忘记或犯错。)克隆网格
的结果只有一个5X1格,如在这里看到。
我不清楚这些语句的执行顺序。 when I start as a clone
在第二次被叫到add_cat
之前或之后被叫到吗?我的试探性结论是事后得到调用,但克隆的全局变量似乎包含事先提供的值。
当我试图用ask
和say
和wait
命令进行调试时,结果变化很大。在一些地方添加这样的暂停可以完全解决问题,从而产生5x5的网格。在其他地方,他们造成了1x5的网格。
主要问题是:如何解决这个问题,使它产生一个5x5网格?
很好的解释,直上我的设置关于Scratch如何工作的几点意见。类似于您的递归解决方案在我的项目中工作。请注意,递归提供的不仅仅是新颖性。我的实际项目需要使用简单的程序方法无法实现的多个分支。这可以通过使用列表作为先进先出的堆栈来完成,但这至少与使用递归一样复杂,并且不太优雅。 –