基本贪吃蛇

我们小时候都玩过贪吃蛇游戏,网上的贪吃蛇代码也很多,笔者也试着设计了一下最简单的贪吃蛇,下面让我们一起来看看一只贪吃蛇的成长吧
首先,当然是设计思路,并写出伪代码啦
这里写图片描述
这里写图片描述
我们需要实现以下几个任务
1、随机放置食物
2、打印出贪吃蛇初始状态
3、输入指令,实现贪吃蛇不同方向的移动
4、打印出贪吃蛇操作后的位置
在开始写主要的程序前,我们需要做初步准备
蛇的身体用“X”表示,头用“H”表示,食物用“$”表示,边界用“*”表示,并设定贪吃蛇的初始长度和最大长度
这里写图片描述
直接打印出初始状态
这里写图片描述
我们运用自顶向下,逐步求精的思想
主函数操作如下
这里写图片描述
我们用dx、dy表示坐标的变化,不同的指令dx、dy对应不同的值,坐标变化也不同
这里写图片描述
坐标变化后,需要调用snakemove函数去实现它,使蛇的坐标改变并显示出来
如果蛇吃了食物,那么它的长度要+1,所以需要记录下蛇尾的初始位置,横纵坐标分别用ssnakex,ssnakey表示。
在蛇移动的时候,如果没有吃到食物,那么整个蛇前进一步,此时原来的蛇尾变成空格,所以要在移动之前把原来的蛇尾变成空格,移动后的蛇的第一节(从蛇尾算)对应着原来蛇的第二节,第二节对应原来的第三节,以此类推,将原来蛇的第i+1节的坐标赋给现在蛇的第i节,蛇头为原来的蛇头坐标分别加dx,dy。
这里写图片描述
移动后蛇头的位置分为三种状态
1、碰到墙或者自己的身体则游戏结束
这里写图片描述
2、如果移动后的蛇头位置是空格,那么整个蛇前移,长度不变
这里写图片描述
3、如果碰到食物,蛇的长度+1,原来食物的位置变为蛇头,原来的蛇尾还是蛇尾,此时食物没有了,需要调用put_food函数重新放置食物。
这里写图片描述
以下是需要用到的其他函数
1、随机放置食物
食物必须放在空格区域
这里写图片描述
2、打印当前状态
这里写图片描述

这样一个基本的贪吃蛇就做好啦~