这几天在做MATLAB的课程设计,因为时间很赶,网上借鉴了Alex的整体框架(文章链接在末尾),改了一个简单的贪吃蛇的小游戏,先来看看总体的效果吧。
游戏比较简单,整个程序也不会很复杂,通过控制上下左右按键来控制贪吃蛇的走位(要想有好成绩一定要有骚走位哦),贪吃蛇吃到食物后会增长一个长度,当贪吃蛇碰到四周的墙壁或者碰到自己的身体的时候,程序就会弹出窗口提示游戏结束,在游戏中还可以通过空格键来暂停程序。所以,作为小课设这是个不错的选择,这里不得不夸一下MATLAB的强大的矩阵计算功能,很多计算都可以直接运用矩阵的算法得出,节约了好多的代码
接下来就是代码模块了:
1.初始设置:初始设置是画出蛇的位置和食物的位置以及进行相关的参数的设置,第三行的坐标轴加了0.5是为了之后墙壁检测的时候方便操作,这在之后会加以说明。
function snake
axis equal %设置坐标轴为对称
axis(0.5+[0, 20, 0, 20]) %加0.5是为了之后的墙壁碰撞检测的方便
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w') %隐藏坐标轴
set(gca, 'color', 'y')
hold on
snakeTop = [5, 5]; %这是蛇头的初始位置
snakeDirect = [1, 0]; %蛇的方向
body = [5, 5 ; 4, 5 ; 3, 5]; %蛇身的初始位置数组
long = 3; %蛇的长度
food = [10, 10]; %食物的初始位置
plotSnake = scatter(gca, body(:, 1