精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

算法的學習與貪吃蛇的實現框架

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

一. 簡介

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

二. 功能介紹

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

三. 實現框架介紹

這次的設計為裸機程序,所以只能采用前后臺系統的方式來實現。

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

前臺程序簡要介紹

以貪吃蛇部分為例,進入到貪吃蛇部分后,就是清屏將上一個部分的顯示清除掉,然后是貪吃蛇的初始化以及使能定時器4,用來記錄數據,然后就是一個while循環了。根據不同的按鍵狀態調用不同的函數。退出這個部分也很簡單,修改當前的狀態,然后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. 后臺程序簡要介紹

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

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

    關注

    0

    文章

    396

    瀏覽量

    17268
  • 程序
    +關注

    關注

    115

    文章

    3719

    瀏覽量

    80356
  • 數字時鐘
    +關注

    關注

    2

    文章

    149

    瀏覽量

    20248

原文標題:STM32小項目分享

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

收藏 人收藏

    評論

    相關推薦

    貪吃蛇

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

    貪吃蛇游戲

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

    貪吃蛇游戲的電路實現

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

    貪吃蛇游戲

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

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

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

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

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

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

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

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

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

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

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

    基于labview制作的貪吃蛇

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

    貪吃蛇游戲(verilog)

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

    貪吃蛇(完美版)

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

    貪吃蛇開發

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

    貪吃蛇游戲java源代碼

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

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

    基于LabVIEW的貪吃蛇游戲源代碼
    發表于 04-22 09:27 ?73次下載