久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

紅外遙控貪食蛇的單片機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:212279 發(fā)表于 2017-6-20 11:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用面向?qū)ο蟮乃枷雽懙?br /> 舊版
P0 反接 行控
P1  正接 獨(dú)立鍵盤
P2 正接 紅色點陣
P3 反接 綠色點陣

新版
P0 反接 行控
P1 反接 綠色
P2 正接 紅色

獨(dú)立鍵盤:
K1    重啟游戲
K3    向上
K6    向左   
K7    向下
K8    向右

紅外遙控:
電源    重啟
5    向上
7    向左   
8    向下
9    向右

單片機(jī)源程序如下:

  1. #include "MatrixLED.h"
  2. #include "Snake.h"
  3. #include "Food.h"
  4. #include "KeyboardInput.h"

  5. void StartGame(Snake * snake,Food * food);                                //初始化snake,food

  6. unsigned char UpdateByKeyboard(Snake * snake);                           //鍵盤輸入更新

  7. unsigned char UpdateByInfrared(Snake * snake);                        //根據(jù)紅外遙控輸入更新
  8.                                                                
  9. void UpdateFood(Food * food);                                                        //更新食物

  10. void main(void)
  11. {                 
  12.         int startPeriod = 3000;                                                                //速度
  13.         int minPeriod = 5000;                                                                //初始長度
  14.         int gradient = 50;                                                                        //難度梯度

  15.         Snake snake;                                                                                //蛇對象
  16.         Food food;                                                                                           //食物對象


  17.         StartGame(&snake,&food);                                                        //初始化游戲成員對象

  18.         while (1)
  19.         {                       
  20.                 InitRedMatrix();                                                                   //初始化點陣                               
  21.                 InitGreenMatrix();          

  22.                 //檢測碰撞(包括吃食物),碰到自己返回1,如果輸入到重啟鍵,返回0
  23.                 if (SnakeCollision(&snake, &food) || UpdateByKeyboard(&snake) == 0 /*|| UpdateByInfrared(&snake) == 0*/)
  24.                 {               
  25.                         ShowExplode(500);               
  26.                         StartGame(&snake,&food);
  27.                         continue;
  28.                 }

  29.                 SnakeMove(&snake);                                                                //更新蛇位置

  30.                 UpdateFood(&food);                                                                //更新食物
  31.                                                          
  32.                 UpdateCol();                                                                        //檢查并更新每列數(shù)值

  33.                 ShowMatrix(startPeriod - snake._length * gradient);        //顯示點陣,參數(shù)是周期。
  34.         }
  35. }

  36. void StartGame(Snake * snake, Food * food)
  37. {
  38.         InitSnake(snake);
  39.         InitFood(food);
  40. }          
  41. void UpdateFood(Food * food)
  42. {
  43.         if (!FoodExist(food))                                                        //判斷是否存在食物,沒有就加啊
  44.                 FoodsetPos(food, GetRandomFreePos());
  45.        
  46.         FoodShow(food);                                                                //顯示食物
  47. }

  48. unsigned char UpdateByKeyboard(Snake * snake)
  49. {                 
  50.         unsigned char keyNum = 0;

  51.     keyNum = Key_Scan();                                                                        //掃描鍵盤

  52.         if (IsDirection(GetDirectionFromKey(keyNum)))                         //判斷是否為方向
  53.                 SnakeSetDir(snake, GetDirectionFromKey(keyNum));

  54.         if (OnClickRestartKey(keyNum))                                                       
  55.                 return 0;
  56.         return 1;
  57. }

  58. //食物

復(fù)制代碼

所有資料51hei提供下載:
EngorgeSnake-master.zip (77.54 KB, 下載次數(shù): 6)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 久久久久久免费观看 | 国产精品区二区三区日本 | 日韩视频中文字幕 | 欧美性video 精品亚洲一区二区 | 欧美中文 | 午夜影视| 亚洲欧美日韩一区二区 | 亚洲国产一区在线 | 中文在线播放 | 激情国产 | 国产一区二区三区www | 香蕉视频黄色 | 在线视频99 | 激情欧美日韩一区二区 | 91不卡 | 求毛片 | 中文字幕国产 | 欧美日韩国产精品一区二区 | 亚洲精品久久久久久一区二区 | 国产免费视频 | 中文字幕一区二区三区四区 | 在线观看中文字幕 | 亚洲激情一区二区三区 | 国产日产精品一区二区三区四区 | 日韩欧美精品在线播放 | 国产三级国产精品 | 国产精品久久久久久久久免费桃花 | 91综合在线观看 | 福利精品 | 成人欧美日韩一区二区三区 | 久久一二区 | 久草视频网站 | 久艹网站 | 91视频国产区 | 欧美一级二级视频 | 免费看国产a | 九九精品在线 | 免费观看一级毛片 | 91久久北条麻妃一区二区三区 | 成在线人视频免费视频 |