友情提示:380元/半年,儿童学编程,就上码丁实验室。
上周有朋友留下问题:
怎么让点从左边边缘出来后,跑到右边边缘,或者右边跑到左边?
长点心嘛……哈哈哈哈。
这跟不让点出去有啥区别呀?
不多作解释了,直接上图解答一下哦。看来一些小伙伴还是没看懂。
话说,这就是学STEM学科和普通学科的区别,光会抄是没用的,理解才万岁!
我们会发现,截止到上周,其实简易版的贪吃蛇已经看上去很像了。
区别只是一个点和这个点会不断增长,对不对?
换句话说,我们要把之前的那个“点”变成一条可以延伸的线段。
也就是所有关于snake的点的单一数据变量模块,要变成可以存放多个变量的模块。
有一些朋友动了脑子,说,要用“阵列”来解决这个问题。
没错,我们就是要这样做!
首先,我们要整体修改这个程序里面,原本的x和y的变量,把它们变成可以存放多个数据的阵列。
同时,所有原来读取x,y数据的变量模块,改成读取阵列里面相应索引位置的数据。
首先,在程序的开头位置,创建出snakeX和snakeY的两个横纵坐标数据排列变量,并写入初始值,90和70。
是不是看着跟原来的snakex和snakey的普通变量一样?
但这时候,其实我们多了一个自动产生的数据“索引”,或许你现在还感觉不到它有多重要,日后你就会知道,它其实是站C位的。
然后我们继续调整移动的部分,所有用到之前普通变量的部分都要调整为用阵列替代,这个工作量其实是不小的。因为每一次,都要用到“阵列运算”这个模块。
调整移动部分
这里要注意,当我们使用了阵列后,在数据操作的时候,描述就变了。而snakex和snakey的功能也变了。
其实也不能说是变了,而是他们的功能更贴近于实际需求了,
即,snakex和snakey,是贪吃蛇的当前坐标。
而,snakeX和snakeY,是贪吃蛇的行动轨迹记录!
我们原来程序里面,上面的这一整块,都是用来产生新的坐标的。所以不用改。
只需要在这段代码后面,加入一步,把snakex和snakey最新的数据,添加到阵列里,即可。
这样一来,每按一次键,就会产生一个组新的坐标,而这个坐标,也会自动被保存下来。
调整数据读取部分
相比之前的直接读取,我们现在要把蛇的坐标,从阵列中调取出来。
之前可以控制移动的那个点,可以理解为是蛇头。
而蛇头,其数据其实是阵列中最新的那个数据。
所以,我们要把所有数据读取的部分改为由循环自动索引提取的数据,加以使用。
蛇头显示部分
吃苹果的判断部分
好啦,这样一来基本上调整完毕。
大家可以试一下这个程序的变化。
可能你会发觉跟之前在操作上和感觉上并没有产生变化。
但要知道,这样一来,你的程序在运行时,已经可以记录下蛇移动的全部轨迹了!
这有什么作用呢?
下次见!
请详细理解整个程序的各个部分,如果发生程序报错,是正常的,要仔细确认每条线,每个参数的情况,已经逻辑上存在问题的部分,反复过,反复思考!确保理解了每一步、每一个部分的操作和作用!