0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【天启教育M1开发板试用体验】贪吃蛇3

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-17 11:00 次阅读

本文来源电子发烧友社区,作者:刘建华, 帖子地址:https://bbs.elecfans.com/jishu_2310612_1_1.html


前面生成了运动、生成食物的算法。这次增加吃食物的算法:
1、创建生成食物的标志build_food_state,在主程序中判断,如果标志需要创建食物,则生成。如果食物还存在,就不生成食物。
2、吃到食物的判断:如果生成下一个食物的坐标数组与食物的坐标数组相等,则不消除最后尾的块,同时更新生成食物的标志为真。如果没有吃到食物,则消除尾部块。

# 如果加入的方块等于食物,则不删去尾块
  if disp_List[-1] == disp_food:
    buid_food_state = 1
  else:
    del disp_List[0]

整体程序如下:

import os
import tqs1
import tqmain
import tqmath
#value= '1000000,1000000,1000000,1000000,1000000,1000000'
#mylist =[0x08,0x08,0x08,0x08,0x08,0x08]
myItem =[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]]
#tqmain.serial_write_line("start")
state = True
disp_List = [[0,0]]
disp_food = []
time_state = 0
move_state = 0
buid_food_state = 1

def disp_tq():
  global state,myItem
  state = False
  mystr =[]
  for j in range(0,6):
    strit = ''.join(str(i) for i in myItem[j])
    mystr.append(strit)
  print(mystr)
  value = ','.join(mystr)
  tqmain.matri_strfill_display(value)
  state = False
  
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
def move():
  global move_state,myItem,disp_List,disp_food,buid_food_state
  #先把同最前一个灭了
  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])
  # 如果加入的方块等于食物,则不删去尾块
  if disp_List[-1] == disp_food:
    buid_food_state = 1
  else:
    del disp_List[0]

  for item in disp_List:
    myItem[item[0]][item[1]]=1
  if len(disp_food) == 2:
    myItem[disp_food[0]][disp_food[1]] = 1
# 随机生成 坐标 食物
def build_food():
  global disp_List,disp_food,buid_food_state
  disp_food=[]
  disp_food.append(tqmath.random(0, 5))
  disp_food.append(tqmath.random(0, 6))
  if disp_food in disp_List:
    print(disp_food)
  buid_food_state = 0
while True:
  get_key()
  if state == True:
    move()
    if buid_food_state == 1:
      build_food()
    disp_tq()
    os.sleep(0.1)
  else:
    time_state = time_state + 1
    if time_state == 5:
      move()
      if buid_food_state == 1:
        build_food()
      disp_tq()
      time_state = 0
    os.sleep(0.1)

效果见视频

【贪吃蛇4视频演示】详见作者原贴文章

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4791

    浏览量

    96299
收藏 人收藏

    评论

    相关推荐

    点击参与米尔NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了3块价值678元的MYD-LMX9X开发板发起
    的头像 发表于 06-13 08:02 318次阅读
    点击参与米尔NXP i.MX 93<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    免费!NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了2块价值678
    的头像 发表于 05-23 08:01 532次阅读
    免费!NXP i.MX 93<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    M1芯片和M3芯片相差大吗

    M1芯片和M3芯片在性能和应用上确实存在一定的差异。
    的头像 发表于 03-13 16:41 2434次阅读

    M3芯片与M1芯片的比较

    M3芯片与M1处理器相比,在多个方面表现出显著优势。首先,M3芯片在架构上采用了更先进的制程技术,如T8103内核和N5P制程,使其具有更高的性能和更低的功耗。
    的头像 发表于 03-11 18:20 2626次阅读

    M3芯片与M1芯片差别大吗

    M3芯片与M1芯片在多个方面存在显著的差异。首先,M3芯片采用了更先进的制程技术,这使得它在性能上有所提升,特别是在处理复杂任务和多线程应用时表现更为出色。
    的头像 发表于 03-11 16:52 1988次阅读

    M1芯片和M3芯片的区别

    M1芯片和M3芯片都是苹果自家研发的处理器,它们在性能和设计上各有特点。
    的头像 发表于 03-11 16:37 2809次阅读

    M1M2和M3芯片是什么意思

    M1M2和M3芯片都是苹果公司推出的自研处理器芯片,具有不同的特点和发布时间。
    的头像 发表于 03-08 15:51 4617次阅读

    基于51单片机的贪吃蛇游戏设计

    电子发烧友网站提供《基于51单片机的贪吃蛇游戏设计.rar》资料免费下载
    发表于 01-12 10:00 0次下载

    基于51单片机的贪吃蛇设计

    电子发烧友网站提供《基于51单片机的贪吃蛇设计.rar》资料免费下载
    发表于 01-12 09:53 13次下载

    基于51单片机的贪吃蛇设计

    电子发烧友网站提供《基于51单片机的贪吃蛇设计.rar》资料免费下载
    发表于 01-03 10:26 0次下载

    基于51单片机的贪吃蛇游戏设计

    基于51单片机的贪吃蛇游戏设计(仿真+实物)
    发表于 01-02 09:38 2次下载

    基于FPGA的贪吃蛇游戏设计

    食物产生模块完成的任务是:每次初始化就给定一个食物坐标比如(24,10),然后运动的过程中用蛇头坐标跟食物坐标对比是否重合来判断是否吃掉了食物,如果相同食物就被吃掉,然后由随机数产生新的食物坐标。
    的头像 发表于 12-18 16:14 1033次阅读
    基于FPGA的<b class='flag-5'>贪吃蛇</b>游戏设计

    【ELF 1开发板试用1.开箱验货

    。 打开纸盒子,引入眼帘的是 ELF1 开发板,一张纪念卡,一份开箱必读说明书。ELF1 开发板的标准配件包里有:一字螺丝刀、尼龙柱、Type-C转接线、10P杜邦线和网线。 就拿 T
    发表于 11-21 14:20

    基于51单片机的贪吃蛇游戏设计

    电子发烧友网站提供《基于51单片机的贪吃蛇游戏设计.pdf》资料免费下载
    发表于 10-25 10:38 2次下载
    基于51单片机的<b class='flag-5'>贪吃蛇</b>游戏设计

    【LuckFox Pico Plus开发板免费试用】+开发板上手

    LuckFox Pico的试用机会,这款开发板相当于是RV1103的小型评估,引出了所有的IO口,并且带以太网/USB/摄像头等高速接口。下面一起来看一下。
    的头像 发表于 10-16 00:58 3968次阅读
    【LuckFox Pico Plus<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>】+<b class='flag-5'>开发板</b>上手