基于matlab的贪吃蛇小游戏分享

《贪食蛇》(也叫贪吃蛇)是1976年推出的一款街机游戏游戏。

《贪食蛇》中玩家控制一条不断移动的蛇,在屏幕上吃掉出现的食物。每吃掉一个食物,蛇的身体就会变长。游戏的目标是尽可能长时间地生存下去,同时避免蛇头撞到自己的身体或屏幕边缘。游戏最初是像素风格,后来发展出了3D版本和多人对战模式。玩家需要灵活操作,利用策略在有限的空间内避免碰撞,挑战高分。

基于此,笔者也弄了一个贪吃蛇小游戏,蛮有趣的,分享给大家。


function snake
set(gca,'XTick',[],'YTick',[],'XColor','none','YColor','none',...
'XLim',[.5,40.5],'YLim',[.5,40.5],'DataAspectRatio',[1,1,1],'Color','k','NextPlot','add')
head=[5,5];body=[5,5;4,5;3,5;2,5];direction=[1,0];food=[10,10];
plotHdl=scatter(gca,[food(1);body(:,1)],[food(2);body(:,2)],120,'w','filled');
set(gcf,'WindowButtonMotionFcn',@snakefcn);
start(timer('ExecutionMode','FixedRate','Period',1/8,'TimerFcn',@snakegame))
function snakefcn(~,~)
xy=get(gca,'CurrentPoint');
direction=[xy(1)-body(1,1),xy(3)-body(1,2)];
direction=direction./norm(direction);
end
function snakegame(~,~)
head=body(1,:)+direction;
head(head>40)=head(head>40)-40;
head(head<1)=head(head<1)+40;
body=[head;body];
if norm(food-head)<1,food=randi(40,[1,2]);else,body(end,:)=[];end
set(plotHdl,'XData',[food(1);body(:,1)],'YData',[food(2);body(:,2)]);
end
end

直接复制到matlab打开,就可以使用。如果觉得有帮助的话,不妨给笔者点一个大大的关注!!!

不过存在一个bug,多次运行,或出现多个食物,多条蛇,影响后续玩耍,不知道,哪个小伙伴能进行改良呢???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值