wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7128|回復: 2
收起左側

c51單片機自制貪吃蛇游戲機 含程序代碼

[復制鏈接]
ID:671091 發表于 2019-12-23 14:54 | 顯示全部樓層 |閱讀模式
制作出來的貪吃蛇游戲機實物圖如下:
IMG_20190420_175150.jpg

原理圖

原理圖


單片機源程序如下:
  1. #include"snake.h"
  2. #include<stdlib.h>
  3. #include"key.h"
  4. #include"display.h"
  5. #include"main.h"
  6. #include"delay.h"
  7. ///////////////////////////////////////////////
  8. ///////////////     貪吃蛇     ////////////////
  9. ///////////////////////////////////////////////


  10. void setDir(u8 *dir_1,u8 *dir_2,u8 value){
  11.         *dir_1 = 0;
  12.         *dir_2 = value;
  13. }

  14. void setHead(u8 *z,u8 dir){
  15.         *z+=dir;
  16.         if(*z == -1)*z = 7;
  17.         else if(*z == 8)*z = 0;
  18. }

  19. void moveSnakeXY(u8 *snakeXY,const u8 num,const u8 XY){
  20.         u8 i = 0;
  21.         while(i<num-1){
  22.                 snakeXY[i] = snakeXY[i+1];
  23.                 i++;
  24.         }
  25.         snakeXY[i] = XY;
  26. }

  27. void changeLED(u8 (*led)[LED_WIDTH],const u8 *x,const u8 *y,u8 num,u8 apx,u8 apy){
  28.         int i = 0;
  29.         cleanLED(led);
  30.         while(i < num){
  31.                  led[y[i]][x[i]] = 1;
  32.                 i++;
  33.         }
  34.         led[apy][apx] = 1;                                                                                                                                                 
  35. }

  36. void randXY(u8 *x,u8 *y,u8 (*led)[LED_WIDTH],u8 t){
  37.         srand(t);
  38.         do{
  39.                  *x = rand()%8;
  40.                 *y = rand()%8;
  41.         }while(led[*y][*x]); //若這個點上面為1,則繼續,直到這個點上面為空
  42.         led[*y][*x] = 1;
  43. }
  44. void showDegree(u8 degree){
  45.         u8 i,j;
  46.         for(i = 0;i<LED_HEIGHT;i++)
  47.                 for(j = 0;j<=degree;j++)
  48.                         setPoint(j,i);       
  49. }
  50. u8 Snake(void){
  51.         #define BLOCKNUM 64        //蛇身數組大小
  52.         u8 degree = 0,snakeNum = 1,dirX = 1,dirY = 0,dirOX,dirOY; //難度等級,當前蛇身長度,方向變量
  53.         u8 LED[LED_HEIGHT][LED_WIDTH];//界面顯示矩陣
  54.         u8 headX = 0,headY = 0,appleX,appleY;        //蛇頭位置變量   食物位置變量
  55.         u8 t,time; //移動速度控制變量
  56.         u8 r = 0;
  57.         //蛇身位置數組
  58.         u8 snakeX[BLOCKNUM];
  59.         u8 snakeY[BLOCKNUM];
  60.         while(1){ //難度選擇
  61.                 showDegree(degree);
  62.                 if(keySelect())
  63.                         if(degree<7)degree++;
  64.                         else degree = 0;
  65.                 else if(keyStart())break;
  66.         }       
  67.         time = 100-degree*10;//延時長度
  68.         cleanLED(LED);//清屏
  69.         LED[headY][headX] = 1;//顯示蛇頭
  70.         //將蛇頭保存到數組第一位
  71.         snakeX[0] = headX;
  72.         snakeY[0] = headY;
  73.         //運動方向初始化
  74.         dirOX = dirX;
  75.         dirOY = dirY;
  76.         //隨機食物出現的位置
  77.         randXY(&appleX,&appleY,LED,t);
  78.         t = 0;
  79.         while(1){
  80.                 /*
  81.                   游戲主循環
  82.                 */
  83.                 display(LED);//顯示       
  84. //                //按鍵操作檢測,防止多余的按鍵判斷,獲取最近一次的方向               
  85.                 if(dirY!=-1 && (keyUP()||keyY()))setDir(&dirX,&dirY,-1);
  86.                 else if(dirY!=1 &&(keyDOWN()||keyA()))setDir(&dirX,&dirY,1);
  87.                 else if(dirX!=-1 &&(keyLEFT()||keyX()))setDir(&dirY,&dirX,-1);
  88.                 else if(dirX!=1 &&(keyRIGHT()||keyB()))setDir(&dirY,&dirX,1);
  89.                
  90.                 //暫停
  91.                 if(keyStart())
  92.                         while(!keyStart())
  93.                                 display(LED);
  94.                                                                 
  95.                 /*
  96.                         每隔一定時間進行移動
  97.                         以下代碼功能為移動判斷與移動操作
  98.                 */
  99.                 r++;//時間種子
  100.                 if(t++ >time){         //間隔性的移動
  101.                         t = 0;
  102.                         if((dirX!=0 && dirOX ==0)||(dirY!=0 && dirOY==0)){//合法方向輸入引用
  103.                                  dirOX = dirX;
  104.                                 dirOY = dirY;
  105.                         }                               
  106.                         setHead(&headX,dirOX);        //按照合法的輸入方向提前運動一次
  107.                         setHead(&headY,dirOY);                       
  108.                         if(headY == appleY && headX == appleX){                //若蛇頭運行的下一位是食物
  109.                                         //數組加長
  110.                                         snakeNum++;
  111.                                          snakeX[snakeNum-1] = appleX;
  112.                                         snakeY[snakeNum-1] = appleY;
  113.                                         //下一個蘋果
  114.                                         randXY(&appleX,&appleY,LED,r);
  115.                         }else if(!LED[headY][headX]){                                //若前方為無障礙物
  116.                                  //前方無障礙
  117.                                 moveSnakeXY(snakeX,snakeNum,headX);
  118.                                 moveSnakeXY(snakeY,snakeNum,headY);
  119.                         }else if(headX == snakeX[0]&& headY == snakeY[0]){//
  120.                                 moveSnakeXY(snakeX,snakeNum,headX);
  121.                                 moveSnakeXY(snakeY,snakeNum,headY);
  122.                         }else {                                //若前方有障礙物體,則觸發蜂鳴器并返回錯誤值                       
  123.                                 return GAMEOVER;
  124.                         }
  125.                         changeLED(LED,snakeX,snakeY,snakeNum,appleX,appleY);//顯示矩陣刷新
  126.                 }
  127.         }
  128.         return GAMEOVER;//游戲結束,返回錯誤信息
  129. }                                                                                                        
復制代碼

所有資料51hei提供下載:
自制貪吃蛇游戲機資料.7z (80.24 KB, 下載次數: 38)


1555753858494.jpeg
1555753874610.jpeg
1555753868443.jpeg
1555753883588.jpeg
Screenshot_20180517-123331.png
Screenshot_20180517-123316.JPG
Screenshot_20180517-122805.png
接線圖.jpg

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1013589 發表于 2022-3-28 08:22 | 顯示全部樓層
天!死亡走線!
(但是還是好強)
回復

使用道具 舉報

ID:977804 發表于 2022-3-28 21:08 來自觸屏版 | 顯示全部樓層
方格點陣感覺比圓點舒服
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
影音先锋2020资源| 亚洲精品一区二区三区在线| 男女爱爱福利视频| caoporn91| 国产熟女高潮视频| 国产精品久久久一区二区三区| 精品久久久久久久人人人人传媒 | 精品福利在线| 精品亚洲成a人片在线观看| 欧美性free免费| 在线观看黄网站| 亚洲精品乱码久久| 狠狠爱免费视频| 久久国产精品免费一区| 91国在线精品国内播放| 亚洲精品大尺度| 欧美性xxxxx| 国产精品毛片无遮挡高清| 日韩精品国产欧美| 日本午夜一区| 9l视频自拍蝌蚪9l视频成人| 激情黄产视频在线免费观看| 黄色软件在线| 九色porn| xfplay先锋影音夜色资源站 | 中文字幕资源网在线观看免费 | 久久不射中文字幕| 精品一级毛片| 日韩08精品| 国产中文在线播放| 1769在线观看| 狠狠操在线视频| 18以下岁禁止1000部免费| 中文天堂网在线www| 91成人国产综合久久精品| 国产又粗又硬又长又爽| 国产女人18毛片水真多18| 免费看黄色一级大片| 91国在线高清视频| 五月天色一区| 久久爱av电影| 国内精品久久久久久久果冻传媒| 国产日韩在线播放| 国产激情视频一区| 91av视频在线播放| 久久久久久国产精品美女| 中文字幕精品在线| 精品亚洲一区二区三区在线播放| 欧美一区二区三区男人的天堂| 色噜噜狠狠成人中文综合 | 黄色一级大片在线免费看国产| 在线观看日韩中文字幕| 青青一区二区三区| 热久久天天拍国产| 色综合咪咪久久网| 成人毛片在线| 天天综合国产| 亚洲女同一区| 欧美啪啪一区| 黄色欧美日韩| 亚洲一级电影| 亚洲美女一区| 小嫩嫩精品导航| 免费永久网站黄欧美| 午夜亚洲视频| 日韩成人精品视频| 看片的网站亚洲| 国产在线精品一区二区三区不卡| 九九视频精品免费| 国产精品系列在线播放| 成人av在线网| 欧美激情综合五月色丁香小说| 国产无一区二区| 综合激情成人伊人| 亚洲高清久久久| 一本大道av伊人久久综合| 日本久久一区二区三区| 欧美视频日韩视频| 91精品国产乱码久久蜜臀| 精品999在线播放| 在线观看91久久久久久| 欧美国产乱视频| 日本精品久久久久影院| 91免费国产网站| 久久草.com| 欧美日韩一级在线| 131美女爱做视频| 手机免费av片| 一本色道综合久久欧美日韩精品| 神马久久久久久久久久久| 美女视频黄免费| 曰批又黄又爽免费视频| 色综合免费视频| 韩国专线一区二三区| 就爱干草视频| 天堂在线中文| av电影院在线看| 91精品一久久香蕉国产线看观看| 免费看成人吃奶视频在线| 欧美88av| 国产精品99久| 国产精品久久久久影院亚瑟| 欧美日韩性生活视频| 欧美一级淫片007| 日日骚久久av| 国产欧美日韩免费| 日本成人黄色免费看| 国产一区二区三区小说| 亚洲一区二区在线视频观看| 中文字幕一区二区人妻在线不卡 | 亚洲精品视频区| 毛片免费不卡| 久久爱.com| 999成人精品视频线3| 日本亚洲免费观看| 国产精品免费视频一区| 欧美午夜精品一区二区三区 | 日本激情视频在线| 色天使在线视频| 男人午夜免费视频| 中文字幕欧美日韩在线不卡| 97影视在线观看| 中文字幕在线观看播放| 欧美视频二区欧美影视| 国产主播精品| 91网址在线看| 欧美日精品一区视频| 中文字幕日本精品| 亚洲sss综合天堂久久| 国产女人18毛片| 极品白嫩少妇无套内谢| 亚洲国产成人精品激情在线| 最近更新在线中文字幕一页| 五月婷婷导航| 国产高清视频色在线www| 天天躁日日躁狠狠躁欧美巨大小说| 日韩一级在线| 中文字幕乱码亚洲精品一区| 在线综合视频播放| 8090成年在线看片午夜| 亚洲一卡二卡三卡四卡无卡网站在线看| 国产成人综合一区| 深夜福利影院在线观看| 日本电影二区| 色久视频在线播放| 欧一区二区三区| 日韩**一区毛片| 亚洲成人免费影院| 久久精品一本久久99精品| 国产伦精品一区二区三区视频免费| 国产日产欧美视频| 欧美黄色一区二区三区| 欧美日本色图| 蜜芽在线免费观看| 九九久久成人| 99re亚洲国产精品| 日韩午夜中文字幕| 国产日韩欧美在线播放| 那种视频在线观看| 日韩精品一区二区在线播放| 78国产伦精品一区二区三区| 黄色网址在线免费观看| 国产精品自拍区| 97久久超碰国产精品电影| 日韩欧美另类在线| 91免费综合在线| the porn av| 午夜视频网站在线观看| wwwwww99| 国产午夜亚洲精品一级在线| 久久精品盗摄| 精品国产91久久久| 欧美一级黄色网| 婷婷精品国产一区二区三区日韩| 国产老熟女伦老熟妇露脸| 亚洲免费不卡视频| 青青青草网站免费视频在线观看| 丁香5月婷婷久久| 国产福利一区二区| 欧美一级黄色片| **亚洲第一综合导航网站| 亚洲综合av在线播放| 国产又大又粗又爽| 成人影院在线观看视频| 亚洲日日夜夜| 日韩精品电影一区亚洲| 欧美日韩在线播放一区| 成人免费福利在线| 捷克做爰xxxⅹ性视频| 国产女18毛片多18精品| 中文字幕在线观看免费视频| 一个人在线视频免费观看www| 岛国av在线播放| 欧美三级不卡| 亚洲r级在线视频| 欧美亚州一区二区三区| 国产freexxxx性播放麻豆| 日韩美女视频网站| 被弄出白浆喷水了视频| 久久99久久99精品免观看软件| 日日噜噜夜夜狠狠视频欧美人| 欧美三级三级三级爽爽爽| 国产欧美精品一区二区三区-老狼| 性生活一级大片| 一区二区三区免费视频播放器| 国产1区在线| 国产精品久久777777毛茸茸| 欧美浪妇xxxx高跟鞋交| 国产高清自拍一区| 国产精品成人无码免费| 青青青视频在线| gogo大尺度成人免费视频| 成人免费高清在线| 成人久久18免费网站麻豆 | 免费观看日韩电影| 欧美刺激午夜性久久久久久久| 精品一区在线播放| 国产又黄又爽又无遮挡| 成人拍拍拍在线观看| 色狼人综合干| 亚洲电影第三页| 亚洲最大福利视频网站| 久久午夜精品视频| 天天撸夜夜操| 欧美偷拍综合| 日韩人体视频一二区| 成人综合色站| 黄色一级视频在线观看| 国产视频三区| 一区二区影院| 91精品麻豆日日躁夜夜躁| 日韩精品欧美一区二区三区| 久久精品视频国产| 在线视频色在线| 1024成人| 日韩av在线最新| 成年人午夜免费视频| 成人小说亚洲一区二区三区 | a级黄色片网站| 最新中文字幕免费| 97影院秋霞午夜在线观看| 国产又黄又大久久| 久久精品国产免费观看| 伊人免费视频二| 可以免费看黄色的网站| 久久密一区二区三区| 67194成人在线观看| 在线免费一区| 亚洲大尺度视频| 久久久久黄色| 一区二区国产视频| 麻豆av一区二区| 91在线视频国产| 日韩av中字| 亚洲日本韩国一区| 国产有色视频色综合| 中文字幕日本视频| 欧美精品日日操| 洋洋成人永久网站入口| 欧美日韩免费精品| 国产女同91疯狂高潮互磨| 国精产品一区二区三区有限公司| 中文字幕亚洲在| 精品乱码一区二区三区| 一级黄色片免费| 成人不卡视频| 色先锋资源久久综合| 高清无码一区二区在线观看吞精| 影音先锋男人每日资源站| 超碰精品在线观看| 在线播放视频一区| wwwwxxxx日韩| 成人免费网址在线| 日韩黄色免费电影| 欧美一区二区.| 波多野结衣亚洲色图| 丝袜国产在线| 国产精品丝袜久久久久久app| 高清一区二区三区视频| 国产精品国产三级国产普通话对白 | 五月天婷婷在线视频| 丁香一区二区三区| 成人亲热视频网站| 最近中文字幕在线免费观看 | 1024在线视频| 国产一区二区中文字幕| 国产玖玖精品视频| 这里只有精品9| 日韩三级不卡| 日韩一级二级三级| 手机看片国产精品| 日韩大片b站免费观看直播| 不卡的电视剧免费网站有什么| 成人一区二区在线| 日本高清视频免费观看| 国内精品视频在线观看| 一区二区三区动漫| 国产又黄又粗又猛又爽的| 午夜av在线播放| 天天影视网天天综合色在线播放 | 亚洲经典在线| 91高潮在线观看| 欧美精品一区二区三区在线四季| 中文天堂在线播放| 成人av婷婷| 亚洲欧美日韩图片| 99久久99久久精品免费看小说.| 国产福利视频在线| 亚洲电影第三页| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| se视频在线观看| 国产一区二区三区av电影| 91日韩久久| 高清av中文在线字幕观看1| 亚洲精品国产偷自在线观看| 欧美激情乱人伦| 国产精品乱码一区二区视频| 中文字幕一区二区三区四区久久| 亚洲国产天堂久久国产91| 中日韩精品一区二区三区| 菠萝蜜视频在线观看www入口| 欧美午夜美女看片| 中文字幕22页| 国产精品ⅴa有声小说| 亚洲视频一二三| 激情综合网俺也去| 国产在线观看黄| 亚洲一区二区三区美女| 欧在线一二三四区| 久热av在线| 亚洲在线成人精品| 一起操在线视频| 香蕉视频在线播放| 欧美性猛交xxxxx水多| 丰满人妻一区二区三区大胸| 最近中文字幕免费mv2018在线| 在线观看日韩电影| 国产熟女高潮一区二区三区| 91精品国产黑色瑜伽裤| 欧美一区二区三区影视| 四虎国产成人精品免费一女五男| 热久久久久久| 中文字幕国产精品| 亚洲精品一区二三区| 99久久综合| 成人a在线视频| 国产香蕉免费精品视频| 丁香另类激情小说| 免费看黄在线看| 男人的天堂在线| 在线欧美一区二区| 精品欧美一区二区久久久| 日韩国产91| 欧美成人激情视频免费观看| 国产激情久久久久久熟女老人av| 欧美在线免费| 国产麻豆一区二区三区在线观看| 蜜桃视频涩涩| 中文字幕不卡的av| 视频免费1区二区三区| 国产亚av手机在线观看| 亚洲黄色在线看| 青青艹在线观看| 亚洲少妇在线| 亚洲一二三区精品| 久青草国产在线| 欧美精选在线播放| 久久久久久久久久久久久久免费看 | 中文字幕在线免费播放| 偷拍与自拍一区| av黄色免费网站| 国产精品久久久久久久久久白浆| 97人人做人人爱| 欧美三级黄视频| 久久视频一区二区| 日本中文字幕观看| 日韩三区免费| 欧美高清视频在线观看| 成人久久在线| 337p粉嫩大胆噜噜噜噜噜91av| 在线免费观看视频一区| 日韩一级av毛片| 色狼人综合干| 国产精品99免视看9| 国产偷窥老熟盗摄视频| 欧美激情一区二区在线| 亚洲一区二区偷拍| 午夜精品久久久久久毛片| 992tv成人免费影院| 国产一级免费黄色片| 欧美国产精品一区二区三区| av不卡中文字幕| 9l视频自拍蝌蚪9l视频成人 | 欧美一区二区三区播放老司机| 久久国产精品免费看| 亚洲麻豆av| 久久久久99精品成人片| 国产精品合集一区二区| 亚洲三级视频在线观看| 日本不卡一区视频|