简易的智能蛇
在完成了贪吃蛇的程序后,便想能不能设计一个程序来‘智能’的操控贪吃蛇,以求获取一个前所未有的最高分。
![]()
首先,智能蛇得会‘自己’动,这或许只用一个循环就行了,但是执行循环的时间太短,我们得用sleep()函数来设置停顿的时间,来使其看起来像是‘自动’的。其次,写一个函数,来判断蛇可以向那几个方向移动,并且找出从那一个方向移动的距离最短,向那个方向移动。
![]()
![]()
最后,只要将printf(“\033[2J”)放在最后进行清屏,就可以使智能蛇看起来真正像是‘自己’动了。
这样,一个简单的智能蛇就完成了,但是这程序不够完整,智能蛇极易死,蛇身大多只能增长到20,蛇就死亡了。
一个长度为5的障碍物,若放在中间,会使得蛇会极易被困死,最后的蛇身长度大幅度减小,但若放在地图边缘,与墙紧密相接,那就影响不太大。
优化后的智能蛇
若要提高蛇的生存率,则要进行模拟,模拟蛇按照原先的路径吃掉食物后情况,判断是否会把自己围死,倘若是这样,则放弃原路,选取一条新路行动,以求获取高分数。