利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第三篇“相关决策函数”

本文介绍了如何使用51单片机和HC595芯片在LED点阵上实现贪吃蛇游戏的决策函数,包括改变方向、吃果子后蛇变长以及判断蛇是否咬到自己的函数。通过外部中断配置,实现蛇的移动方向控制。吃果子后,蛇长度增加并生成新的果子。同时,详细说明了判断蛇是否咬到自身的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第三篇“相关决策函数”

我们需要的决策函数有哪些:

在这里插入图片描述

1.改变方向的函数

改变方向示例中只采用了两个按键,因为贪吃蛇是不断朝某一方向运动的,那么相对于蛇运动的方向来看,其实只要两个可以改变的方式:要么向左,要么向右,没可能蛇头反转穿过蛇身运动的。

因此既然我只用这两个按键,那么刚好能使用外部中断,当按下按键时,进入外部中断0或外部中断1

进而根据逻辑判断,改变flag_x和flag_y的值,改变蛇的运动方向。

逻辑判断:

贪吃蛇在平面上运动,将平面分为上下左右,假设当蛇向平面方向上的左运动,那么相对于这个运动方向的左手边即是平面方向的下,右手边即是平面方向上的上

以此类推,只需要两个按键即可操作好蛇的运动方向

1.1外部中断配置;

void EX_INIT()
{
IT0=1;
EX0=1;
IT1=1;
EX1=1;
EA =1;
}

中断服务函数:

void EX1_SER(void) interrupt 0
{
if(flag_y1) //up
{flag_x=-1; //left
flag_y=0;}
else if(flag_y
-1) //down
{flag_x=1; //right

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linxinloningg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值