本文來源電子發燒友社區,作者:劉建華, 帖子地址: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文章
301瀏覽量
2166
發布評論請先 登錄
相關推薦
中軟高科身份證讀取及M1卡讀寫二合一機具開發文檔
中軟高科這款機具除了二代身份證閱讀功能,還可以對M1卡進行讀寫操作,從而實現身份證識讀與M1制卡二合一。
機具照片
開發文檔
發表于 01-04 11:25
有獎丨米爾 全志T536開發板免費試用
米爾與全志合作發布的新品基于全志T536應用處理器的MYD-LT536-GK開發板免費試用活動來啦~~米爾提供了3塊價值750元的MYD-LT536-GK開發板發起試用活動您不僅可以免
![有獎丨米爾 全志T536<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
追加名額丨米爾瑞芯微RK3576開發板有獎試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576開發板發起試用活動您不僅可以
![追加名額丨米爾瑞芯微RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
正點原子fpga開發板不同型號
正點原子作為國內領先的FPGA開發板供應商,其產品線覆蓋了從入門級到高端應用的各個領域。這些開發板不僅適用于學術研究,還廣泛應用于工業控制、通信、圖像處理等多個領域。 1. 入門級開發板
有獎丨米爾 瑞芯微RK3576開發板免費試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576開發板發起試用活動您不僅可以免
![有獎丨米爾 瑞芯微RK3576<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
米爾基于NXP iMX.93開發板的M33處理器應用開發筆記
1.概述本文主要介紹M33核的兩種工程調試開發,第一種方式是通過板子自帶的固件進行開發,第二種方式是使用IAREmbeddedWorkben
![米爾基于NXP iMX.93<b class='flag-5'>開發板</b>的<b class='flag-5'>M</b>33處理器應用<b class='flag-5'>開發</b>筆記](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
點擊參與米爾NXP i.MX 93開發板有獎試用
米爾與NXP合作發布的新品基于NXPi.MX93應用處理器的MYD-LMX9X開發板免費試用活動來啦~~米爾提供了3塊價值678元的MYD-LMX9X開發板發起試用活動您不僅可以免費體
![點擊參與米爾NXP i.MX 93<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
安信可星閃開發板or模組燒錄指導
包含功率放大器PA、低噪聲放大器、TX/RXSwitch、集成電源管理等模塊,支持1M/2M/4M3種帶寬,最大支持12Mbit/s速率。 來看看星閃開發板or模組如何燒錄? 一、軟硬
![安信可星閃<b class='flag-5'>開發板</b>or模組燒錄指導](https://file1.elecfans.com//web2/M00/E0/BD/wKgZomY4o4aAApn5AABlnA-jCHo62.jpeg)
先楫HPM5361EVK開發板,網友測評效果(二)
上海先楫半導體舉辦的HPM5361EVK開發板試用活動圓滿結束,廣大工程師和愛好者們踴躍參與此次試用并提交報告。經過先楫半導體專家組評選,一共產生6名優秀獲獎者。感謝媒體平臺電子工程世界(簡稱
![先楫HPM5361EVK<b class='flag-5'>開發板</b>,網友測評效果(<b class='flag-5'>二</b>)](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
評論