0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【天啟教育M1開發(fā)板試用體驗(yàn)】貪吃蛇3

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-17 11:00 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:劉建華, 帖子地址:https://bbs.elecfans.com/jishu_2310612_1_1.html


前面生成了運(yùn)動、生成食物的算法。這次增加吃食物的算法:
1、創(chuàng)建生成食物的標(biāo)志build_food_state,在主程序中判斷,如果標(biāo)志需要?jiǎng)?chuàng)建食物,則生成。如果食物還存在,就不生成食物。
2、吃到食物的判斷:如果生成下一個(gè)食物的坐標(biāo)數(shù)組與食物的坐標(biāo)數(shù)組相等,則不消除最后尾的塊,同時(shí)更新生成食物的標(biāo)志為真。如果沒有吃到食物,則消除尾部塊。

# 如果加入的方塊等于食物,則不刪去尾塊
  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
  #先把同最前一個(gè)滅了
  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
# 隨機(jī)生成 坐標(biāo) 食物
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視頻演示】詳見作者原貼文章

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5093

    瀏覽量

    97802
收藏 人收藏

    評論

    相關(guān)推薦

    有獎(jiǎng)丨米爾 全志T536開發(fā)板免費(fèi)試用

    米爾與全志合作發(fā)布的新品基于全志T536應(yīng)用處理器的MYD-LT536-GK開發(fā)板免費(fèi)試用活動來啦~~米爾提供了3塊價(jià)值750元的MYD-LT536-GK開發(fā)板發(fā)起
    的頭像 發(fā)表于 12-26 08:05 ?176次閱讀
    有獎(jiǎng)丨米爾 全志T536<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    追加名額丨米爾瑞芯微RK3576開發(fā)板有獎(jiǎng)試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動加碼啦~~米爾追加了2塊價(jià)值849元的MYD-LR3576開發(fā)板發(fā)起試用活動您不僅可以
    的頭像 發(fā)表于 11-22 01:00 ?219次閱讀
    追加名額丨米爾瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?278次閱讀
    【RA8D<b class='flag-5'>1</b><b class='flag-5'>試用</b>活動】RA8D<b class='flag-5'>1</b>B-CPKCOR<b class='flag-5'>開發(fā)板</b>移植linux

    正點(diǎn)原子fpga開發(fā)板不同型號

    正點(diǎn)原子作為國內(nèi)領(lǐng)先的FPGA開發(fā)板供應(yīng)商,其產(chǎn)品線覆蓋了從入門級到高端應(yīng)用的各個(gè)領(lǐng)域。這些開發(fā)板不僅適用于學(xué)術(shù)研究,還廣泛應(yīng)用于工業(yè)控制、通信、圖像處理等多個(gè)領(lǐng)域。 1. 入門級開發(fā)板
    的頭像 發(fā)表于 11-13 09:30 ?998次閱讀

    有獎(jiǎng)丨米爾 瑞芯微RK3576開發(fā)板免費(fèi)試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動來啦~~米爾提供了7塊價(jià)值849元的MYD-LR3576開發(fā)板發(fā)起試用活動您不僅可以免
    的頭像 發(fā)表于 11-12 01:00 ?370次閱讀
    有獎(jiǎng)丨米爾 瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    有獎(jiǎng)試用??!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報(bào)名

    有獎(jiǎng)試用??!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動開始報(bào)名
    的頭像 發(fā)表于 11-09 01:02 ?294次閱讀
    有獎(jiǎng)<b class='flag-5'>試用</b>??!RA-Eco-RA4E2-64PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動開始報(bào)名

    米爾基于NXP iMX.93開發(fā)板M33處理器應(yīng)用開發(fā)筆記

    資源MYD-LMX9X開發(fā)板(米爾基于NXPiMX.93開發(fā)板3.軟件資源Windows7及以上版本軟件:IAREmbeddedWorkbench4.板載固件調(diào)試
    的頭像 發(fā)表于 06-29 08:01 ?1489次閱讀
    米爾基于NXP iMX.93<b class='flag-5'>開發(fā)板</b>的<b class='flag-5'>M</b>33處理器應(yīng)用<b class='flag-5'>開發(fā)</b>筆記

    點(diǎn)擊參與米爾NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動來啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開發(fā)板發(fā)起
    的頭像 發(fā)表于 06-13 08:02 ?580次閱讀
    點(diǎn)擊參與米爾NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    免費(fèi)!NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動來啦~~米爾提供了2塊價(jià)值678
    的頭像 發(fā)表于 05-23 08:01 ?761次閱讀
    免費(fèi)!NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    安信可星閃開發(fā)板or模組燒錄指導(dǎo)

    包含功率放大器PA、低噪聲放大器、TX/RXSwitch、集成電源管理等模塊,支持1M/2M/4M3種帶寬,最大支持12Mbit/s速率。 來看看星閃開發(fā)板or模組如何燒錄? 一、軟硬
    的頭像 發(fā)表于 05-06 17:31 ?979次閱讀
    安信可星閃<b class='flag-5'>開發(fā)板</b>or模組燒錄指導(dǎo)

    M1芯片和M3芯片相差大嗎

    M1芯片和M3芯片在性能和應(yīng)用上確實(shí)存在一定的差異。
    的頭像 發(fā)表于 03-13 16:41 ?3178次閱讀

    M3芯片與M1芯片的比較

    M3芯片與M1處理器相比,在多個(gè)方面表現(xiàn)出顯著優(yōu)勢。首先,M3芯片在架構(gòu)上采用了更先進(jìn)的制程技術(shù),如T8103內(nèi)核和N5P制程,使其具有更高的性能和更低的功耗。
    的頭像 發(fā)表于 03-11 18:20 ?3133次閱讀

    M3芯片與M1芯片差別大嗎

    M3芯片與M1芯片在多個(gè)方面存在顯著的差異。首先,M3芯片采用了更先進(jìn)的制程技術(shù),這使得它在性能上有所提升,特別是在處理復(fù)雜任務(wù)和多線程應(yīng)用時(shí)表現(xiàn)更為出色。
    的頭像 發(fā)表于 03-11 16:52 ?2445次閱讀

    M1芯片和M3芯片的區(qū)別

    M1芯片和M3芯片都是蘋果自家研發(fā)的處理器,它們在性能和設(shè)計(jì)上各有特點(diǎn)。
    的頭像 發(fā)表于 03-11 16:37 ?3567次閱讀

    M1、M2和M3芯片是什么意思

    M1、M2和M3芯片都是蘋果公司推出的自研處理器芯片,具有不同的特點(diǎn)和發(fā)布時(shí)間。
    的頭像 發(fā)表于 03-08 15:51 ?6094次閱讀