老师布置了c语言实现智能贪吃蛇的作业,一开始想从之前交过的贪吃蛇小游戏里直接加入一个算法,但由于上次的是由输入w、a、s、d来手动控制蛇的移动,而且蛇不能自己移动,与智能蛇相差甚远,所以不得不从头开始重新思考。
那么第一件要做的事,就是让蛇自己动起来,
首先需要判断蛇头的上下左右的情况,判断是否有自己的身体或墙,然后记录下能走的方向,然后蛇身移动一格,之后检查是否吃到食物和是否死亡。
然后就是如何让他自己知道如何转弯,这就要计算食物的坐标和蛇头坐标的距离最短的方向,然后记录这个方向,之后输入到操控蛇头的函数部分。
最后就是操控移动的函数了,就是让其循环打印一次就清空一次屏幕,再循环中执行转弯,移动,检查等函数部分,然后再打印出来,之后循环结束。
期间,有用到一个sleep函数来控制屏幕的刷新速度,屏幕刷新使蛇在移动时总是一闪一闪的,也只能调节刷新速度了,无法避免。