蛇身的移动速度小于单个蛇身长度的时候怎么使蛇身间不互相覆盖,并产生正确的坐标

蛇身的移动速度小于单个蛇身长度的时候如何使蛇身间不互相覆盖,并产生正确的坐标。
比如我蛇身的资源长和宽是20,但蛇的移动速度现在是2;

如果我想为蛇身加长一个单位,那么此时蛇头的位置是x = 100, y = 100,向左,那么新加的这个蛇身的位置就是x = 102,y=100,造成了对蛇头的覆盖,请问这个该如何解决呢?除了加快移动速度外。。。
------解决方案--------------------
是贪吃蛇嘛?
------解决方案--------------------
木有很理解。。。新的身子不都是加在最后面的嘛?一段的宽度是20,新加的身子应该在120,100才对啊,即便是移动了2,那也应该是118,100 怎么会是102.100呢?
------解决方案--------------------
你的算法不对吧,正常的贪吃蛇的逻辑是:
1.在行进方向插入蛇头,并把蛇尾删掉
2.如果吃到苹果,就只插入蛇头不删蛇尾

不会写的话下个开源的看一眼就明白,5分种就能看懂