游戏贪食蛇的蛇身体是怎么写的?

下面是我在书上看见的?但不太懂这里。

图片说明

图片说明

典型的循环数组用法。

用普通的数组计算和访问,如果蛇身长度是n,每次移动要把n个数据都复制一遍。
比如body[0]-body[n-1]表示蛇身的位置, 则计算下一步位置时,
body[0] = body[1]
body[1] = body[2]
.......
body[n-1] = 新的蛇头位置
以此类推。

而用循环数组,只需要改变head和tail指向的位置,并更新蛇头body[head]的位置信息,不用复制剩余的位置数据。
使用的时候,普通数组从位置0开始读取,而循环数组从位置head开始读取,遇到数组边界(0)的下一个,就循环到数组的尾部(图例中的39).