欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5556|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

STM32和0.96寸oled制作的貪吃蛇游戲源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
前段時(shí)候在家沒(méi)事閑的沒(méi)事干,手里有個(gè)C8T6單片機(jī)和oled,就想著做個(gè)貪吃蛇,以前想著應(yīng)該很復(fù)雜,做完后覺(jué)得只要理解了關(guān)鍵的地方,就很簡(jiǎn)單,就if else if else就完事,哈哈。oled用的是4腳i2c的,基本的操作實(shí)現(xiàn)后發(fā)現(xiàn)最快的游戲速度也不是很快,所以編寫(xiě)了速度選擇部分代碼也沒(méi)用,要是手里有能用spi驅(qū)動(dòng)的7腳oled,應(yīng)該能更快,目前就這樣。我在工程代碼里最開(kāi)始寫(xiě)了這個(gè)貪吃蛇的關(guān)鍵部分和一些其他東西,如下
上傳這個(gè)東東是為了分享一下,說(shuō)不定能幫到別人(實(shí)際是想賺點(diǎn)幣,好下載其他東東,哈哈)。下面是具體的圖,左邊時(shí)游戲區(qū),右邊是得分和游戲所用時(shí)間,控制方向用的是四個(gè)按鍵
   

做的這個(gè)東西所有有關(guān)的工程代碼里都有,oled引腳 按鍵引腳 邏輯判斷什么什么的,我覺(jué)得寫(xiě)的還挺詳細(xì),下面貼一段代碼,全部工程傳到附件。能力有限,代碼寫(xiě)的不怎么好,但是整體是沒(méi)有什么BUG的。OK,完事(希望能賞點(diǎn)幣哈,哈哈)。

單片機(jī)源程序如下:
  1. int snake[20][8];  //用于存放蛇身位置數(shù)據(jù)
  2. int Snakehead[8];  //用于存放蛇頭位置數(shù)據(jù)
  3. int Snaketail[8];  //用于存放蛇尾位置數(shù)據(jù)
  4. int food[8];                          //食物位置數(shù)據(jù)     四個(gè)小格為一個(gè)食物 儲(chǔ)存順序順序?yàn)?上左  上右  下左 下右
  5. void Srand(void);

  6. void mapinit(void);  //初始化地圖
  7. void snakeinit(void);//初始化蛇位置
  8. void creatfoof(void);        //產(chǎn)生食物
  9. void contr(void);   //按鍵控制移動(dòng)方向 定時(shí)器定時(shí)掃描  
  10. void move(void);                //移動(dòng)        
  11. void eat(void);           //吃到食物
  12. void dispaly(void);          //顯示分?jǐn)?shù)和步數(shù)
  13. void out(void);                        //游戲結(jié)束判斷
  14. void start(void);                //
  15. void Speed(void);                //速度選擇  暫時(shí)沒(méi)用到
  16. int up,dowm,left,right;
  17. char txt[10];
  18. int size=1; [attach]242723
  19. int Sped=2;  
  20. u8 adc;  //ADC采集數(shù)據(jù)做隨機(jī)種子
  21. u16 time=0; //所用時(shí)間
  22. int time_flag=0;  //開(kāi)始計(jì)時(shí)表示 在定時(shí)器中計(jì)時(shí)
  23. int main()
  24. {
  25.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);   //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  26.         delay_init();
  27.         LED_Init();
  28.         keyinit();        
  29.         OLED_Init();
  30.         Adc_Init();
  31.         TIM3_Int_Init(200,7199);  //20ms一次
  32.         Srand();
  33.         mapinit();                //初始化地圖
  34.         snakeinit();        //初始化蛇頭位置
  35.         creatfoof();        //創(chuàng)建一個(gè)食物
  36.         up=dowm=left=right=0;            //初始化方向
  37.         while(1)
  38.         {
  39.                 Srand();        
  40.                 move();               
  41.                 eat();               
  42.                 dispaly();
  43.                 out();               
  44. //                Speed();
  45.         }
  46. }
復(fù)制代碼
制作出來(lái)的實(shí)物圖如下:

Screenshot_2020_0705_214232.png (733.63 KB, 下載次數(shù): 91)

Screenshot_2020_0705_214232.png

Screenshot_2020_0705_214306.png (362.41 KB, 下載次數(shù): 81)

Screenshot_2020_0705_214306.png

Screenshot_2020_0705_214241.png (602.75 KB, 下載次數(shù): 86)

Screenshot_2020_0705_214241.png

貪吃蛇.7z

235.78 KB, 下載次數(shù): 175, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 2黑幣 +65 收起 理由
pengxxx + 15 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:691090 發(fā)表于 2020-7-15 16:02 | 只看該作者
請(qǐng)問(wèn)是32的板子嘛?
回復(fù)

使用道具 舉報(bào)

板凳
ID:749782 發(fā)表于 2020-8-4 18:27 | 只看該作者
凌程 發(fā)表于 2020-7-15 16:02
請(qǐng)問(wèn)是32的板子嘛?

是的,f103c8t6
回復(fù)

使用道具 舉報(bào)

地板
ID:346037 發(fā)表于 2020-8-27 16:52 | 只看該作者
最近在學(xué)習(xí)這個(gè)東東。本人深表感謝
回復(fù)

使用道具 舉報(bào)

5#
ID:844192 發(fā)表于 2020-12-15 20:37 | 只看該作者
大神。牛的
回復(fù)

使用道具 舉報(bào)

6#
ID:631741 發(fā)表于 2020-12-16 23:49 | 只看該作者
樓主,有一處bug,隨機(jī)數(shù)會(huì)生成在地圖外面
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表