在做游戏(特别是要用地图时),二维数组是很重要的东西。可是scratch没有二维数组,只有列表,怎么办呢?
由于没有二维数组,我们只能通过用列表来模拟二维数组。

这是一个m行n列的二维数组,如果我们把一个二维数组的第二层放在第一层后面,第三层也放在第一层后面……第n层也放在第一层后面,我们就可以得到一个一维数组(也就是说列表)了。

其中,
原来二维数组的第i行j列的数就在一维数组的第(i-1)*n+j个,
一维数组的第k个在原来二维数组的第k/n+1(取整)行k%n列,
总共有n*m个元素。
这样我们就可以用一维数组模拟出二维数组了。
实现
1.初始化

2.删除

3.替换

4.调用
5.查找

拓展
对于m行n列l层的3维数组的第x行y列z层,就是列表中第(z-1)*m*n+(y-1)*n+x个,
列表中第k个,就是原来3维数组的第k%n行k/n%m+1(取整)列k/n/m+1(取整)层,
共有n*m*l个元素

在Scratch中,由于缺乏内置的二维数组,我们可以利用列表来模拟二维数组。通过将每一层二维数组连接成一维数组,可以方便地进行初始化、删除、替换和查找操作。这种模拟方法在创建游戏地图等场景时尤其有用。
84





