GreedySnake:2020.6.16 第二次更新及踩坑

參考:https://github.com/silence1772/GreedySnake
個人github:https://github.com/okJiang/GreedySnake

更新

  • Point的清除功能Clear()
  • Snake.cpp
    • InitSnake():初始化打印snake
    • move():根據方向移動
    • ChangeDirection():通過鍵盤的上下左右改變蛇的移動方向

踩坑

  • derection前後拼寫錯誤看了幾十分鐘。。。
  • 不知道是兩個字符,寫成了‘●‘,改成“●”就好了
  • queue不能用auto訪問:忘記了queue封裝好了不能訪問內部參數的,改成deque

總結

  • kbhit():判斷鍵盤是否有輸入的函數,有輸入返回1,否則返回0

  • getch():與getchar()功能一樣,但是不在控制檯上顯示輸入的字符

  • 鍵盤↑↓←→的輸入,是兩個字符,所以需要先判斷第一個字符是不是-32。

  		c = getch();
          switch(c){
          case -32:{
              //鍵盤上的上下左右輸入進來有兩個字節,第一個字節的十進制表示爲-32
              c = getch();
              switch(c){
              case 72:
                  if(direction != Direction::DOWN)
                      direction = Direction::UP;
                  break;
              case 80:
                  if(direction != Direction::UP)
                      direction = Direction::DOWN;
                  break;
              case 75:
                  if(direction != Direction::RIGHT)
                      direction = Direction::LEFT;
                  break;
              case 77:
                  if(direction != Direction::LEFT)
                      direction = Direction::RIGHT;
                  break;
              default:
                  break;
              }
              return true;
          }
          case 27:    //ESC的鍵值
              return false;
          default:
              return true;
  • 成果:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章