本文來源電子發燒友社區,作者:劉建華, 帖子地址:https://bbs.elecfans.com/jishu_2309223_1_1.html
【目的】LED陣列實現一個貪吃蛇的游戲
【設計思路】
1、用兩個按鍵來按制兩個方向,方向標志為全局變量move_state。當按鍵A、B按下時,改變LED燈陳列的過行方向。
2、蛇體用LED燈條來展示。LED按隨機產生的方向進行運動。
3、隨機產生食物。如果食物在蛇體之上,再生成一次。
4、成功吃到蛇體時,LED燈條增長一個單位。
5、如果蛇體到了屏外,則游戲結束。
【顯示模塊】
1、創建二維數據,用于控制顯示的緩存: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]]
2、刷新顯示函數:
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)
【LED燈帶行走】
1、創建一個顯示LED的列表disp_List = [[0,0],[0,1],[0,2]]。
2、行走實現,第一步先獲取最后一個LED燈的坐標即disp_list[0],將他熜滅。
3、獲取最前面的一個LED燈坐標即disp_list[-1],根據方向,進行x或y坐標增減,然后再將新的坐標append到dsip_list里面。
4、將最后面的坐標從列表中去除即del disp_list[0]
這期只是實現固定LED燈的行走,LED燈從左上角向右行走,到頭后從第二行開頭繼續行走。
整體程序如下:
import os
import tqs1
import tqmain
#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],[0,1],[0,2]]
move_state = 0
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)
def get_key():
global state
key_value1 = tqs1.key_get_status(2)
if key_value1 == 0:
print("KeyB changed")
state = True
key_value2 = tqs1.key_get_status(1)
if key_value2 == 0:
print("KeyA changed")
state = True
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
x = x+1
if x>5:
x=0
disp_List.append([x,y])
del disp_List[0]
for item in disp_List:
myItem[item[0]][item[1]]=1
while True:
get_key()
move()
disp_tq()
os.sleep(0.5)
-
開發板試用
+關注
關注
3文章
301瀏覽量
2355
發布評論請先 登錄
基于RK3576處理器,米爾RK3576開發板免費試用

搭載OpenHarmony操作系統,視美泰SC-3568HA開發板免費試用

基于RK處理器,創龍TL3562-MiniEVM開發板試用體驗

性能強悍!合眾HZ-RK3568開發板試用體驗

有獎丨米爾 NXP i.MX91開發板免費試用來啦


免費丨米爾 STM32MP257開發板有獎試用

有獎丨米爾 全志T536開發板免費試用

追加名額丨米爾瑞芯微RK3576開發板有獎試用

評論