本文来源电子发烧友社区,作者:刘建华, 帖子地址:https://bbs.elecfans.com/jishu_2309301_1_1.html
在上一篇的基础之上,增加蛇头转向的功能。
1、按键检测函数,在检测到A按键时,按键标志+1.按键B检测到后按键-1.同时增加越界判断。有按键改变时,更新显示标志。代码如下:
def get_key():
global state,move_state
key_value1 = tqs1.key_get_status(2)
if key_value1 == 0:
move_state = move_state +1
if move_state > 3:
move_state = 0
print("KeyB changed,move_state:" + str(move_state))
state = True
key_value2 = tqs1.key_get_status(1)
if key_value2 == 0:
move_state = move_state -1
if move_state < 0:
move_state = 3
print("KeyA changed,move_state:" + str(move_state))
state = True
2、行走函数。判断行走方向move_state标志,按标志进行xy轴的增加、减少。
def move():
global move_state,myItem,disp_List
#先把同最前一个灭了
fisrt = disp_List[0]
myItem[fisrt[0]][fisrt[1]]=0
if move_state == 0: #向右运动
tail = disp_List[-1]
print(tail)
x=tail[0]
y=tail[1]+1
if(y>6):
y=0
disp_List.append([x,y])
elif move_state == 1:#向下运动
tail = disp_List[-1]
print(tail)
x=tail[0]+1
y=tail[1]
if(x>5):
x=0
disp_List.append([x,y])
elif move_state == 2:#向左运动
tail = disp_List[-1]
print(tail)
x=tail[0]
y=tail[1]-1
if(y<0):
y=6
disp_List.append([x,y])
elif move_state == 3:#向上运动
tail = disp_List[-1]
print(tail)
x=tail[0]-1
y=tail[1]
if(x<0):
x=5
disp_List.append([x,y])
del disp_List[0]
for item in disp_List:
myItem[item[0]][item[1]]=1
3、主函数。为了更快的响应按键与运动,加入了move_time这个标志,如果有按键的事件,就实时更新,如果没有就每500毫秒更新一次,当然这个标志,也可以在后面作为运行速度来进行调节。
while True:
get_key()
if state == True:
move()
disp_tq()
os.sleep(0.1)
else:
time_state = time_state + 1
if time_state == 5:
move()
disp_tq()
time_state = 0
os.sleep(0.1)
经过这一步就可以实现四个方向行走了。
【贪吃蛇3视频演示】详见作者原贴子文章内容。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开发板试用
+关注
关注
3文章
303浏览量
2798
发布评论请先 登录
相关推荐
热点推荐
EVAL - M1 - 101TF评估板:电机控制的理想之选
EVAL - M1 - 101TF评估板:电机控制的理想之选 在电机控制领域,一款性能出色的评估板能为工程师们的设计工作带来极大的便利。今天,我们就来深入了解一下英飞凌的EVAL - M1
免费试用|睿擎派开发板等你来测:提交高质量报告,开发板免费送
者开放第1期开发板免费试用活动。成功入选的体验官将免费获得睿擎派RC3506J开发板一片,在真实项目中深度测试,反馈使用体验。完全免费,只要你有项目、有技术、愿意产出
容辉物联天启 TQN2 开发板|无网通信快速上手指南
很多刚接触天启的小伙伴都会问:容辉物联天启开发板到底怎么用?今天就把使用逻辑一次性讲清楚,让你快速搞定无网场景下的数据通信!先认清:天启开发板是什么?
特点:开箱即用,模块化设计,核心板
发表于 03-25 15:33
有奖丨米尔全志 T153 MINI开发板免费试用来啦
米尔与全志合作发布的新品基于全志T153应用处理器的MYD-YT153MX-MINI开发板免费试用名额来啦~~米尔提供了3套价值399元的MYD-YT153MX-MINI开发板发起试用
探索Eval - M1 - CM610N3评估板:电机驱动应用的理想之选
探索Eval - M1 - CM610N3评估板:电机驱动应用的理想之选 在电机驱动应用的设计领域,拥有一款性能出色且易于评估的开发板至关重要。今天,我们就来详细探讨一下英飞凌(Infineon
有奖丨米尔 瑞芯微RK3506开发板免费试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3506开发板发起试用活动您不仅可以免
基于RK3576处理器,米尔RK3576开发板免费试用
年7月19日 评测数量: 3块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用
: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
基于RK处理器,创龙TL3562-MiniEVM开发板试用体验
数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
性能强悍!合众HZ-RK3568开发板试用体验
月19日 评测数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
【免费试用】开发板评测大赛开启!OH 、RISC-V、Rockchip顶级开发板等你试用~
技术人的狂欢,开发者的盛宴!2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛三大赛
有奖丨米尔 NXP i.MX91开发板免费试用来啦
米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-LMX91开发板发起试用活动您不仅可以免费体
【天启教育M1开发板试用体验】贪吃蛇之二
评论