在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

算法的學習與貪吃蛇的實現(xiàn)框架

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-09-05 15:07 ? 次閱讀

一. 簡介

將前面幾篇文章介紹的幾個小游戲整合在一起,加入了簡陋的數(shù)字時鐘和圖片顯示功能,合在一起作為一個小項目分享給大家,希望大家喜歡。只需要兩個外設即可實現(xiàn)----顯示屏和紅外控制模塊

二. 功能介紹

作為一個小項目來說,功能還是比較齊全的。 1. 上電開機后,會進行一段開機動畫的加載。 2. 然后是主界面的顯示,一共包括三個部分,時鐘、游戲和相冊。 3. 通過紅外按鍵進行選擇。 4. 時鐘 :一個簡單的時分秒的顯示(#^.^#)。 5. 游戲 :游戲下面又有一個界面顯示,用來選擇對應的游戲,貪吃蛇,俄羅斯方塊和2048,都是一些常規(guī)的游戲。 6. 相冊:一個簡單的二值相冊(經(jīng)過邊緣檢測后的圖像)顯示,包括了我預先存儲的三張圖片。 7. 貪吃蛇:貪吃蛇部分有必要單獨拿出來說說,其中加入了算法部分,利用A*算法,可以自動尋找到食物的位置,并指導貪吃蛇的移動。算法的學習與貪吃蛇結(jié)合也是一個值得學習的點,同時也是一個難點。 以上就是本次小項目全部功能了。

三. 實現(xiàn)框架介紹

這次的設計為裸機程序,所以只能采用前后臺系統(tǒng)的方式來實現(xiàn)。

前臺為我們的應用程序,后外為我們的中斷回調(diào)函數(shù),里面主要用來紅外模塊數(shù)據(jù)的接收,以及時間的產(chǎn)生(貪吃蛇的移動以及俄羅斯方塊的下落)。

前臺程序簡要介紹

以貪吃蛇部分為例,進入到貪吃蛇部分后,就是清屏將上一個部分的顯示清除掉,然后是貪吃蛇的初始化以及使能定時器4,用來記錄數(shù)據(jù),然后就是一個while循環(huán)了。根據(jù)不同的按鍵狀態(tài)調(diào)用不同的函數(shù)。退出這個部分也很簡單,修改當前的狀態(tài),然后break就可以了。其他部分都是如此。

  else if(CurrMode == Snake)  //貪吃蛇游戲    {      LCDDMAFullOn(BackGround);      SnakeInit();      TIM_Cmd(TIM4,ENABLE);      while(1)      {        if(KEYState == KEYLEFT)          DirectionChange(MoveLeft);        else if(KEYState == KEYRIGHT)          DirectionChange(MoveRight);        else if(KEYState == KEYUP)          DirectionChange(MoveUp);        else if(KEYState == KEYDOWN)          DirectionChange(MoveDown);        else if(KEYState == KEYRETURN)        {          CurrIndex = 0;          SnakeDestory();          TIM_Cmd(TIM4,DISABLE);          CurrMode = Main;          break;        }      }    }

2. 后臺程序簡要介紹

本次主要用到了兩個后臺程序,一個是紅外數(shù)據(jù)的接收

void EXTI0_IRQHandler(void){  if(EXTI_GetITStatus(EXTI_Line0) != RESET)  {    uint8_t data;    data = InfraredDataRecv();    if(data == InfraredLeft)        KEYState = KEYLEFT;    else if(data == InfraredRight)        KEYState = KEYRIGHT;    else if(data == InfraredUp)        KEYState = KEYUP;    else if(data == InfraredDown)        KEYState = KEYDOWN;    else if(data == InfraredReturn)        KEYState = KEYRETURN;    delay_ms(10);    /*清除標志位 */    EXTI_ClearITPendingBit(EXTI_Line0);  }}
另外一個是定時器中斷,其作用可以看注釋

void TIM4_IRQHandler(void){    if(TIM_GetITStatus(TIM4,TIM_IT_Update) == SET)   //判斷是否發(fā)生中斷    {
       if(CurrMode == Snake)SnakeGame();//蛇的移動        else if(CurrMode == Tetris)        {            TetrisFlag = 1;   //俄羅斯方塊下落標志        }        else if(CurrMode == Clock)        {DClockFlag=1;//數(shù)字時鐘加一標志        }       TIM_ClearITPendingBit(TIM4,TIM_IT_Update);    //清除中斷標識    }}
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17543
  • 程序
    +關注

    關注

    117

    文章

    3796

    瀏覽量

    81419
  • 數(shù)字時鐘

    關注

    2

    文章

    151

    瀏覽量

    20448

原文標題:STM32小項目分享

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    貪吃蛇

    新手參考資料制作的貪吃蛇游戲,有很多不足,撞自己身體實現(xiàn)不了,還有游戲結(jié)束的Game Over !實現(xiàn)不了,求大神指導
    發(fā)表于 04-11 13:30

    貪吃蛇游戲

    貪吃蛇游戲的下載
    發(fā)表于 03-04 18:24

    貪吃蛇游戲的電路實現(xiàn)

    最近論壇好冷清,在此發(fā)一貼暖暖身,回到正題,大家都玩過“貪吃蛇”游戲,用代碼實現(xiàn)該游戲想必難不倒大神,在網(wǎng)上也有一大堆針對該游戲的代碼實現(xiàn),如果擺脫代碼,用硬件來實現(xiàn)
    發(fā)表于 11-19 17:52

    貪吃蛇游戲

    Labview制作貪吃蛇游戲,值得學習研究
    發(fā)表于 09-07 21:39

    基于51單片機的貪吃蛇游戲設計 精選資料分享

    的理解,編寫程序實現(xiàn)貪吃蛇的有效控制;(2)通過對51單片機硬件的學習,學會運用面包板,獨立按鍵、點陣屏等,完成對完整電路的搭建過程;(3)通過對Proteus仿真軟件的學習
    發(fā)表于 07-16 06:48

    基于51單片機的貪吃蛇游戲 精選資料分享

    1.簡介本設計為一款貪吃蛇游戲,顯示器采用8*8點陣,主控制器采用51單片機,并通過按鍵實現(xiàn)對游戲的操作。2.貪吃蛇算法介紹吃游戲
    發(fā)表于 07-21 06:21

    【FPGA DEMO】Lab 9:貪吃蛇小游戲

    ` 本帖最后由 zhangyue510 于 2021-7-30 16:32 編輯 項目名稱:貪吃蛇小游戲具體要求:在Perf-V實現(xiàn)貪吃蛇小游戲的運行。系統(tǒng)設計:貪吃蛇是一款經(jīng)典游
    發(fā)表于 07-30 15:53

    貪吃蛇游戲設計貪吃蛇收尾基本完成

    電子發(fā)燒友網(wǎng)站提供《貪吃蛇游戲設計貪吃蛇收尾基本完成.rar》資料免費下載
    發(fā)表于 03-24 23:06 ?4次下載

    C語言教程之貪吃蛇游戲的問題

    C語言教程之貪吃蛇游戲的問題,很好的C語言資料,快來學習吧。
    發(fā)表于 04-25 17:07 ?0次下載

    基于labview制作的貪吃蛇

    基于labview制作的貪吃蛇,適合新手學習和研究。
    發(fā)表于 05-09 14:36 ?36次下載

    貪吃蛇游戲(verilog)

    用Verilog編寫的貪吃蛇小游戲,從別人那里搞的,希望對大家學習有幫助。
    發(fā)表于 08-19 15:57 ?51次下載

    貪吃蛇(完美版)

    單片機貪吃蛇
    發(fā)表于 12-20 23:00 ?0次下載

    貪吃蛇開發(fā)

    貪吃蛇的軟硬件開發(fā)流程
    發(fā)表于 04-10 08:53 ?0次下載

    貪吃蛇游戲java源代碼

    貪吃蛇游戲java源代碼
    發(fā)表于 12-27 17:56 ?9次下載

    基于LabVIEW的貪吃蛇游戲源代碼

    基于LabVIEW的貪吃蛇游戲源代碼
    發(fā)表于 04-22 09:27 ?74次下載
    主站蜘蛛池模板: 四虎在线永久免费视频网站 | 伊人黄| 午夜视频在线网站 | 男人的天堂色偷偷 | 天天干天天操天天舔 | 666精品国产精品亚洲 | 成年黄网站免费大全毛片 | 色爱区综合激情五月综合激情 | 国产亚洲情侣久久精品 | 成人欧美一区二区三区黑人3p | 午夜国产精品福利在线观看 | 久久久久久久久久久9精品视频 | 老熟女一级毛片 | 午夜影院欧美 | 日韩免费 | 国产精品一区在线播放 | 欧美aaaav免费大片 | 天堂成人一区二区三区 | 欧美一二 | 边摸边吃奶边做视频叫床韩剧 | 一级做a爰片久久毛片美女图片 | 欧美51| 婷婷激情小说 | 搞逼综合网| 在线观看亚洲一区二区 | 成人午夜小视频手机在线看 | 久久久久青草 | 天天在线天天综合网色 | 欧美三级一级片 | 给我一个可以看片的www日本 | 久久思re热9一区二区三区 | 男人边吃奶边做视频免费网站 | 拍拍拍美女黄色1000视频 | 免费看一级视频 | 手机在线看片福利 | 欧美一区二区三区综合色视频 | 欧美三级小视频 | 一级毛片一级毛片 | 美女色黄一男一女 | 操到喷水 | bt种子搜索在线 |